Mybatis分为三层,Dao层、Service层、Controller层等
这里我直接是在bysj里面建立三个文件夹 分别代表这三个层
今天只做了userDoctor的一个全局查询所以这里只展示这一个 后续接着更新
首先搭建环境就不在这里讲了 可以在csdn查到很多,建好一个项目以后导入了依赖以后。
- 在mode建立实体类UserDoctorController
- 在mapper里面建一个接口为userDoctorMapper 设立方法
- (目前实现的搜索比较简单,所以直接使用xml方法进行写)在resources里面创建一个mapper 注意这里要一一对应 尽量名字对应不要出错,检查字母 sql语句是在xml写
- 如果查询搜索比较复杂可以在services作为中间层的情况下继续处理 比如注册的时候,需要查询是否有人注册,这样你可以select原来的表有么有注册人填写的id或者name 然后返回一个1 或者0 去service到service里面处理,service只处理和转发数据 不操作数据 多条数据筛选的时候 给某一个搜索框赋值为0的时候可以进行判断 这样就可以进行动态sql搜索
这里同样粘一下代码
UserDoctorController
package bysj.bysj.controller;
import bysj.bysj.mapper.UserDoctorMapper;
import bysj.bysj.model.UserDoctor;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@CrossOrigin(originPatterns = "*", methods = { RequestMethod.GET, RequestMethod.POST, RequestMethod.DELETE })
public class UserDoctorController {
@Autowired
private UserDoctorMapper userDoctorMapper;
@GetMapping("getUserDoctorList")
public List<UserDoctor> getUserDoctorList (@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
return userDoctorMapper.findDoctorList();
}
@GetMapping("getUserDoctorTotal")
public Integer getUserDoctorList () {
return userDoctorMapper.findDoctorTotal();
}
}
UserDoctorMapper
package bysj.bysj.controller;
import bysj.bysj.mapper.UserDoctorMapper;
import bysj.bysj.model.UserDoctor;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@CrossOrigin(originPatterns = "*", methods = { RequestMethod.GET, RequestMethod.POST, RequestMethod.DELETE })
public class UserDoctorController {
@Autowired
private UserDoctorMapper userDoctorMapper;
@GetMapping("getUserDoctorList")
public List<UserDoctor> getUserDoctorList (@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
return userDoctorMapper.findDoctorList();
}
@GetMapping("getUserDoctorTotal")
public Integer getUserDoctorList () {
return userDoctorMapper.findDoctorTotal();
}
}
UserDoctor
package bysj.bysj.model;
import lombok.Data;
import java.util.Date;
@Data
public class UserDoctor {
private Integer user_id;
private String user_name;
private String password;
private String phonenumber;
private Integer age;
private String sex;
private String avatar;
private String status;
private Date register_time;
private String prove;
private String basic_skill;
private String special_skill;
}
resources/mapper/UserDoctorMapper.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">
<!-- namespace 指明 接口的全类名 -->
<mapper namespace="bysj.bysj.mapper.UserDoctorMapper">
<select id="findDoctorList"
resultType="bysj.bysj.model.UserDoctor">
select * from user_doctor
</select>
<select id="findDoctorTotal"
resultType="java.lang.Integer">
select count(*) from user_doctor
</select>
</mapper>
我项目的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>bysj</groupId>
<artifactId>bysj</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>bysj</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<!--Mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- lombok:自动对model层进行处理-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
<!--<!– springboot分页插件 –>-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<!-- JUnit测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.4.RELEASE</version>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/libs-snapshot</url>
</pluginRepository>
</pluginRepositories>
</project>
加上application.yml文件
server:
port: 8085
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3305/bysj?useUnicode=true&characterEncoding=utf-8
username: root
password: 123456
main:
allow-circular-references: true
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: bysj.bysj.model