IDEA Maven+SpringMVC+Mybatis HTML+Ajax MySql Tomcat登錄Demo(三)

IDEA Maven+SpringMVC+Mybatis HTML+Ajax MySql Tomcat登錄Demo(二)

  • 開發工具:IDEA
  • 前端技術:HTML+JQuery+Ajax
  • 後端技術:Maven+SpringMVC+MyBatis
  • 數據庫:MySql

本節內容記錄了Model數據層面的記錄,MyBatis的配置

一、IDEA操作Mysql數據庫建表

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

二、MyBatis的配置

1.配置依賴,在pom.xml中繼續增加依賴
 <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.10.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.10.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.10.3</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
        
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
2.web.xml增加配置解決中文返回亂碼問題:
<!--GET解決需要設置tomcat-->
    <!--POST解決中文亂碼問題-->
    <filter>
        <filter-name>characterFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>characterFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
3.在resource下配置mybatis-config.xml文件

需注意:

  1. *配置中解決了駝峯命名轉換的問題;
  2. *property name="url"的配置;
  3. *可配置多個environment,用方便生產測試的切換。

在這裏插入圖片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 根標籤 -->
<configuration>

    <settings>
        <!-- goods_id ==> goodsId 駝峯命名轉換 -->
        <setting value="true" name="mapUnderscoreToCamelCase"/>
    </settings>

    <!-- 環境,可以配置多個,default:指定採用哪個環境 -->
    <environments default="test">
        <!-- id:唯一標識 -->
        <environment id="test">
            <!-- 事務管理器,JDBC類型的事務管理器 -->
            <transactionManager type="JDBC"/>
            <!-- 數據源,池類型的數據源 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!--&amp;=&-->
                <property name="url"
                          value="jdbc:mysql://127.0.0.1:3306/chenxhtest?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>

        <!--生產-->
        <!-- id:唯一標識 -->
        <environment id="pro">
            <!-- 事務管理器,JDBC類型的事務管理器 -->
            <transactionManager type="JDBC"/>
            <!-- 數據源,池類型的數據源 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!--&amp;=&-->
                <property name="url"
                          value="jdbc:mysql://127.0.0.1:3306/chenxhtest?useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>

    </environments>
    <mappers>
        <mapper resource="mappers/springmvc_user.xml"/>
    </mappers>
</configuration>

4、創建mappers文件夾,配置管理數據操作。
在這裏插入圖片描述
springmvc_user.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="springmvcUser">
    <select id="findAll" resultType="com.bruce.chen.entity.SpringmvcUser">
        select * from springmvc_user order by id desc
    </select>

    <select id="findByName" parameterType="String" resultType="com.bruce.chen.entity.SpringmvcUser">
        select * from springmvc_user u where u.uname =  #{value}
    </select>

    <select id="findById" parameterType="java.util.Map" resultType="com.bruce.chen.entity.SpringmvcUser">
        select * from springmvc_user u where u.id between #{min} and #{max} order by id desc
    </select>

    <insert id="insertUser" parameterType="com.bruce.chen.entity.SpringmvcUser" useGeneratedKeys="true">
        insert into springmvc_user(uname,upwd)
        values (#{uname},#{upwd})
        <selectKey resultType="Integer" keyProperty="id" order="AFTER">
            select last_insert_id()
        </selectKey>
    </insert>

    <update id="update" parameterType="com.bruce.chen.entity.SpringmvcUser">
        UPDATE springmvc_user
        SET
            uname = #{uname},
            upwd = #{upwd}
        WHERE
            id = #{id}
    </update>
</mapper>

配置就基本結束了

三、開發數據操作模塊並JUNIT測試

在這裏插入圖片描述

1、添加測試Junit4依賴
  <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
2、創建MyBatisUtils

首先SqlSessionFactory 需要全局唯一,所以Utils使用會更方便。

package com.bruce.chen.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.Reader;

public class MyBatisUtils {

    private static SqlSessionFactory sqlSessionFactory = null;

    static {
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
            throw new ExceptionInInitializerError(e);
        }
    }

    public static SqlSession openSqlSession() {
        //默認SqlSession會自動提交事務數據
        //設置false代表關閉自動提交,改爲手動提交事務數據
        return sqlSessionFactory.openSession(false);
    }

    public static boolean closeSqlSession(SqlSession sqlSession) {
        if (sqlSession != null) {
            sqlSession.close();
            return true;
        }
        return false;
    }

}
3、創建實體類
3.1對應賬戶存儲數據表實體類SpringmvcUser.java
package com.bruce.chen.entity;

public class SpringmvcUser {

    private int id;
    private String uname;
    private String upwd;


    public SpringmvcUser(String uname, String upwd) {
        this.uname = uname;
        this.upwd = upwd;
    }

    public SpringmvcUser(int id, String uname, String upwd) {
        this.id = id;
        this.uname = uname;
        this.upwd = upwd;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpwd() {
        return upwd;
    }

    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }

    @Override
    public String toString() {
        return "SpringmvcUser{" +
                "id=" + id +
                ", uname='" + uname + '\'' +
                ", upwd='" + upwd + '\'' +
                '}';
    }
}

3.2對應前端接口實體類 User.java
package com.bruce.chen.entity;

public class User {

    private String uname;
    private String upwd;

    public User() {
    }

    public User(String uname, String upwd) {
        this.uname = uname;
        this.upwd = upwd;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpwd() {
        return upwd;
    }

    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }

    @Override
    public String toString() {
        return "User{" +
                "uname='" + uname + '\'' +
                ", upwd='" + upwd + '\'' +
                '}';
    }
}

3.3對應前端交互返回實體類 Response.java
package com.bruce.chen.entity;

public class ResponseData {

    private String rescode;
    private String resdesc;
    private String ext;

    public ResponseData() {
    }

    public ResponseData(String rescode, String resdesc, String ext) {
        this.rescode = rescode;
        this.resdesc = resdesc;
        this.ext = ext;
    }

    public String getRescode() {
        return rescode;
    }

    public ResponseData setRescode(String rescode) {
        this.rescode = rescode;
        return this;
    }

    public String getResdesc() {
        return resdesc;
    }

    public ResponseData setResdesc(String resdesc) {
        this.resdesc = resdesc;
        return this;
    }

    public String getExt() {
        return ext;
    }

    public ResponseData setExt(String ext) {
        this.ext = ext;
        return this;
    }

    @Override
    public String toString() {
        return "ResponseData{" +
                "rescode='" + rescode + '\'' +
                ", resdesc='" + resdesc + '\'' +
                ", ext='" + ext + '\'' +
                '}';
    }
}

4.單例測試各操作的數據庫action

MyMybatisTest .java

package com.bruce.chen.test;

import com.bruce.chen.entity.SpringmvcUser;
import com.bruce.chen.utils.MyBatisUtils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.Reader;
import java.sql.Connection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MyMybatisTest {

    @Test
    public void testSqlSessionFactory() throws IOException {
        //讀取配置文件
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");

        //初始化SqlSessionFactory,同事解析mybatis-config.xml
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        System.out.println("加載成功");

        //創建SqlSession對象,SqlSession是JDBC擴展類
        SqlSession sqlSession = null;
        try {
            sqlSession = sqlSessionFactory.openSession();
            Connection connection = sqlSession.getConnection();
            System.out.println(connection);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (sqlSession != null) {
                //mybatis-config.xml配置的type不同 close也不同
                //type="POOLED"  close則將回收到連接池中
                //typr="UNPOOLED" close調用底層Connection。close關閉連接
                sqlSession.close();
            }
        }

    }

    @Test
    public void testSession() {
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtils.openSqlSession();
            Connection connection = sqlSession.getConnection();
            System.out.println("connection=" + connection);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (sqlSession != null) {
                MyBatisUtils.closeSqlSession(sqlSession);
            }
        }

    }


    @Test
    public void testSelectAllSession() {
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtils.openSqlSession();
            Connection connection = sqlSession.getConnection();
            List<SpringmvcUser> datas = sqlSession.selectList("springmvcUser.findAll");
            for (SpringmvcUser data : datas) {
                System.out.println("datas=" + data.toString());
            }
            System.out.println("connection=" + connection);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (sqlSession != null) {
                MyBatisUtils.closeSqlSession(sqlSession);
            }
        }


    }

    @Test
    public void testSelectByName(){
        SqlSession sqlSession=null;
        try {
            sqlSession = MyBatisUtils.openSqlSession();
            SpringmvcUser springmvcUser = sqlSession.selectOne("springmvcUser.findByName","88");
            System.out.println(springmvcUser);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(sqlSession!=null){
                sqlSession.close();
            }
        }
    }

    @Test
    public void testSelectByIdBetween(){
        SqlSession sqlSession=null;
        try {
            sqlSession = MyBatisUtils.openSqlSession();
            Map<String, String> map = new HashMap<String,String>();
            map.put("min","0");
            map.put("max","2");
            List<SpringmvcUser> springmvcUser = sqlSession.selectList("springmvcUser.findById",map);
            for (SpringmvcUser user : springmvcUser) {
                System.out.println(user.toString());

            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(sqlSession!=null){
                sqlSession.close();
            }
        }
    }

    @Test
    public void testInsertUser(){
        SqlSession sqlSession=null;
        try {
            sqlSession = MyBatisUtils.openSqlSession();
            SpringmvcUser user = new SpringmvcUser("88","88");
            int num = sqlSession.insert("springmvcUser.insertUser",user);
            sqlSession.commit();
            System.out.println(num+"  id="+user.getId());
        }catch (Exception e){
            if(sqlSession!=null){
                sqlSession.rollback();
            }
            e.printStackTrace();
        }finally {
            MyBatisUtils.closeSqlSession(sqlSession);
        }
    }


    @Test
    public void updateUser(){
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtils.openSqlSession();
            System.out.println("-------------");
            SpringmvcUser user = sqlSession.selectOne("springmvcUser.findById",2);
            System.out.println(user.toString());
            user.setUpwd("1234567890");
            int num =  sqlSession.update("springmvcUser.update",user);
            System.out.println(num);
            System.out.println("-------");
            sqlSession.commit();
        }catch (Exception e){
            sqlSession.rollback();

        }finally {
            MyBatisUtils.closeSqlSession(sqlSession);
        }
    }

}

5.創建登錄數據查詢工具

LoginDataHelper.java

package com.bruce.chen.utils;

import com.bruce.chen.entity.SpringmvcUser;
import com.bruce.chen.entity.User;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class LoginDataHelper {


    public static String checkUserName(User user) {
        SqlSession sqlSession = null;
        SpringmvcUser springmvcUser = null;
        try {
            sqlSession = MyBatisUtils.openSqlSession();
            springmvcUser = sqlSession.selectOne("springmvcUser.findByName", user.getUname());
            System.out.println(springmvcUser.toString());
        } catch (Exception e) {
            sqlSession.rollback();
            e.printStackTrace();
        } finally {
            MyBatisUtils.closeSqlSession(sqlSession);
            if (springmvcUser == null) {
                return "02";
            }
            if (springmvcUser.getUpwd().equals(user.getUpwd())) {
                return "00";
            }
            return "01";
        }
    }


    public static boolean registerUser(User user) {
        SpringmvcUser user1 = null;
        SqlSession session = null;
        int num = 0;
        try {
            session = MyBatisUtils.openSqlSession();
            System.out.println(user.getUname()+user.getUpwd());
            user1 = new SpringmvcUser(user.getUname(), user.getUpwd());
            num = session.insert("springmvcUser.insertUser", user1);
            session.commit();
        } catch (Exception e) {
            session.rollback();
            e.printStackTrace();
        } finally {
            MyBatisUtils.closeSqlSession(session);
            if (num == 1) {
                return true;
            } else {
                return false;
            }
        }

    }

    public static List<SpringmvcUser> squeryAllUser() {
        SqlSession sqlSession = null;
        SpringmvcUser springmvcUser = null;
        List<SpringmvcUser> list = null;
        try {
            sqlSession = MyBatisUtils.openSqlSession();
            list = sqlSession.selectList("springmvcUser.findAll");
            for (SpringmvcUser user : list) {
                System.out.println(user.toString());
            }
        } catch (Exception e) {
            sqlSession.rollback();
            e.printStackTrace();
        } finally {
            MyBatisUtils.closeSqlSession(sqlSession);
            return list;
        }
    }


}

6.創建完善各功能控制器

完善loginh.js

$(function () {
    $("#register").click(function () {
        console.log("註冊處理");
        var uname = $("#uname").val();
        var upwd = $("#upwd").val();
        var sendMsg = {
            uname: uname,
            upwd: upwd
        };
        console.log("登錄處理請求信息:" + JSON.stringify(sendMsg));
        $.ajax({
            "url": "/ajaxRegister",
            "type": "POST",
            contentType: "application/json",
            "data": JSON.stringify(sendMsg),
            "dataType": "json",
            "success": function (json) {
                console.log("success 返回數據=" + json);
                var rescode = json.rescode;
                var resdesc = json.resdesc;
                if (rescode == 00) {
                    alert(resdesc);
                } else {
                    alert(rescode + " " + resdesc);
                }
            },
            "error": function (xmlhttp, errorText) {
                console.log(xmlhttp);
                console.log(typeof xmlhttp.status);
                switch (xmlhttp.status) {
                    case 404:
                        alert("未找到URL資源");
                        break;
                    case 405:
                        alert("無效請求方式");
                        break;
                    case 500:
                        alert("服務器內部錯誤");
                        break;
                    default:
                        alert("異常");
                        break;
                }
                ;
            }

        });
    }),

        $("#login").click(function () {
            alert("1111111");
            var uname = $("#uname").val();
            var upwd = $("#upwd").val();
            var sendMsg = {
                uname: uname,
                upwd: upwd
            };
            console.log("登錄處理請求信息:" + JSON.stringify(sendMsg));
            $.ajax({
                url: "/loginAjax",
                type: "POST",
                contentType: "application/json",
                dataType: "json",
                data: JSON.stringify(sendMsg),
                success: function (json) {
                    var resCode = json.rescode;
                    var resDesc = json.resdesc;
                    var ext = json.ext;
                    if (resCode == 00) {
                        alert("登錄成功");
                    } else {
                        alert(resCode + resDesc);
                    }
                },
                error: function (xmlhttp, errorText) {

                }

            });
        }),

        $("#select").click(function () {
            console.log("登錄處理");
            // alert("login");
            console.log("查詢");
            var uname = $("#uname").val();
            var upwd = $("#upwd").val();
            var sendMsg = {
                uname: uname,
                upwd: upwd
            };
            console.log("請求信息:" + JSON.stringify(sendMsg));
            $.ajax({
                "url": "/ajaxSelect",
                "type": "POST",
                "contentType": "application/json",
                "data": JSON.stringify(sendMsg),
                "dataType": "json",
                "success": function (json) {
                    console.log("success 返回數據=" + JSON.stringify(json));
                    var rescode = json.rescode;
                    var resdesc = json.resdesc;
                    var ext = JSON.parse(json.ext);
                    console.log("success 返回數據=" + ext);
                    if (rescode == 00) {
                        alert("查詢成功");
                        var content = "";
                        for (var i = 0; i < ext.length; i++) {
                            console.log(ext[i]);
                            console.log(ext[i].uname);
                            content += ext[i].id + " ";
                            content += ext[i].uname + " ";
                            content += ext[i].upwd + " ";
                            content += "<br>";
                        }
                        $("#content").html(content);
                    } else {
                        alert(rescode + resdesc)
                    }
                },
                "error": function (xmlhttp, errorText) {
                    console.log(xmlhttp);
                    console.log(typeof xmlhttp.status);
                    switch (xmlhttp.status) {
                        case 404:
                            alert("未找到URL資源");
                            break;
                        case 405:
                            alert("無效請求方式");
                            break;
                        case 500:
                            alert("服務器內部錯誤");
                            break;
                        default:
                            alert("異常");
                            break;
                    }
                    ;
                }

            });
        })

})

LoginControl.java

package com.bruce.chen.control;

import com.bruce.chen.entity.ResponseData;
import com.bruce.chen.entity.SpringmvcUser;
import com.bruce.chen.entity.User;
import com.bruce.chen.utils.LoginDataHelper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;

@Controller
public class LoginControl {

    /**
     * 設置 請求方式 POST對應PostMapping;GET對應GetMapping
     * @return
     */
    @ResponseBody
    @PostMapping(value = "/loginAjax", produces = {"application/json;charset=UTF-8"})
    public ResponseData login(@RequestBody User user, HttpServletResponse response) {
        System.out.println(user.toString());
        String resCode = LoginDataHelper.checkUserName(user);
        System.out.println(resCode);
        String resDesc = "";
        switch (resCode) {
            case "00":
                resDesc = "登錄成功";
                break;
            case "01":
                resDesc = "密碼錯誤";
                break;
            case "02":
                resDesc = "無此賬號,請確認賬號填寫";
                break;
            default:
                break;
        }
        return new ResponseData(resCode, resDesc, "");
    }

    @PostMapping(value = "/loginForm")
    @ResponseBody
    public String select(User user) {
        System.out.println(user.toString());
        String resCode = LoginDataHelper.checkUserName(user);
        System.out.println(resCode);
        String resDesc = "";
        switch (resCode) {
            case "00":
                resDesc = "登錄成功";
                break;
            case "01":
                resDesc = "密碼錯誤";
                break;
            case "02":
                resDesc = "無此賬號,請確認賬號填寫";
                break;
            default:
                break;
        }
        return "登錄成功,跳轉首頁";
    }



    @GetMapping("/view")
    public ModelAndView showView() {
        ModelAndView modelAndView = new ModelAndView("/index.html");
        return modelAndView;
    }
}

SelectControl.java

package com.bruce.chen.control;

import com.bruce.chen.entity.ResponseData;
import com.bruce.chen.entity.SpringmvcUser;
import com.bruce.chen.utils.LoginDataHelper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class SelectControl {

    private static ObjectMapper MAPPER = new ObjectMapper();

    @PostMapping(value = "/fromSelect")
    @ResponseBody
    public String selctFromBackString() {
        List<SpringmvcUser> list = LoginDataHelper.squeryAllUser();
        if (list == null) {
            return "無數據";
        }
        StringBuilder stringBuilder = new StringBuilder();
        for (SpringmvcUser user : list) {
            stringBuilder.append("<h1>" + user.getId() +"  "+ user.getUname() +"  "+ user.getUpwd()+"  " + "</h1>");
        }
        return stringBuilder.toString();
    }


    @PostMapping(value = "/ajaxSelect", produces = {"application/json;charset=UTF-8"})
    @ResponseBody
    public ResponseData selctAjaxBackJson() {
        List<SpringmvcUser> list = LoginDataHelper.squeryAllUser();
        if (list == null) {
            return new ResponseData("er", "無數據", "");
        }
        try {
            System.out.println(new ResponseData("00", "查詢成功", MAPPER.writeValueAsString(list)).toString());
            return new ResponseData("00", "查詢成功", MAPPER.writeValueAsString(list));
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return new ResponseData("er", "系統異常", "");
    }

}

RegisterControl.java

package com.bruce.chen.control;

import com.bruce.chen.entity.ResponseData;
import com.bruce.chen.entity.User;
import com.bruce.chen.utils.LoginDataHelper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class RegisterControl {

    @PostMapping(value = "/fromRegister")
    @ResponseBody
    public String fromRegisterBackString(User user) {
        boolean a =LoginDataHelper.registerUser(user);
        if(a){
            return user.getUname()+"註冊成功";
        }
        return user.getUname()+"註冊失敗";
    }


    @PostMapping(value = "/ajaxRegister", produces = {"application/json;charset=UTF-8"})
    @ResponseBody
    public ResponseData registerAjaxBackJson(@RequestBody User user) {
        boolean a =LoginDataHelper.registerUser(user);
        if(a){
            return new ResponseData("00", "註冊成功", "");
        }
        return new ResponseData("er", "註冊失敗", "");
    }

}

源碼地址:https://github.com/BruceXuheng/MavenSpringMVCMyBatisLoginDemo

一些問題和解答:

1.java.lang.NoClassDefFoundError類報錯
答:看下依賴之後是否導入
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章