1.DAO获取数据层,从数据库获取数据
import mybatisdemo.Pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface MapperUser {
@Select("select name,age from person where name=#{name}")
List<User>select(String name);
}
2.Service数据逻辑处理。我当时难以理解的点是用什么样的的形式返回自定义的返回值。
还有自定义状态码。最后想到使用全局变量aum拿到数据,再进行逻辑处理。将处理后的结果返回值再return回去交给控制层返回结果集。状态码同样使用全局变量,根据不同的逻辑处理结果赋值不同状态码。最后再定义一个状态码返回方法getCode。返回状态码全局变量code的具体值
import mybatisdemo.Mapper.MapperUser;
import mybatisdemo.Pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ServiceA {
@Autowired
private MapperUser mapper;//数据变量
Integer aum;//年龄变量
String xum;//姓名变量
String code;//返回代码变量
public List<User> listMapper(String name){
List<User> empList = mapper.select(name);
empList.stream().forEach(emp->{
aum=emp.getAge();
xum=emp.getName();
});
return empList;
}
public String getMessage (){
if (aum <18){
String msg= "玩家:"+xum+"未成年禁止入内";
code="M01";
return msg;
}else {
String msg ="欢迎玩家"+xum+"进入游戏";
code="M02";
return msg;
}
}
public String getCode(){
return code;
}
}
3.控制层,前端请求name通过依赖注入交给service。service通过
List<User> empList = mapper.select(name);
再交给Dao层进行条件查询。
import mybatisdemo.Pojo.Result;
import mybatisdemo.Pojo.User;
import mybatisdemo.service.ServiceA;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class Controller {
@Autowired
private ServiceA serviceA;
@RequestMapping("/heloo")
public Result list(String name) {
List<User> users = serviceA.listMapper(name);
String msg=serviceA.getMessage();
String code= serviceA.getCode();
Result result = new Result(code,home,users);
return result;
}
}
4.结合第三步,定义统一响应结果类,将状态码code,返回值msg,数据结果集users响应返回给前端。下述代码是统一响应结果类Result和Spring Boot结合Mybatis配置数据库代码
package mybatisdemo.Pojo;
public class Result {
private String code;
private String msg;
private Object data ;
public Result() {
}
public Result(String code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
@Override
public String toString() {
return "Result{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}
5.数据库配置
spring.application.name=MyBatisDemo
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mysql2
spring.datasource.username=root
spring.datasource.password=123