1. 다음 데이터 테이블을 준비합니다
CREATE TABLE `student` ( `id` varchar(32) NOT NULL, `gender` varchar(32) DEFAULT NULL, `age` int(12) DEFAULT NULL, `nick_name` varchar(32) DEFAULT NULL, `name` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 여러 개의 테스트 데이터를 삽입합니다
프로젝트의 전체 패키지 구조는 그림과 같습니다
1. Maven 종속성을 가져옵니다.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <mysql-connector-java.version>8.0.11</mysql-connector-java.version> <commons-lang3.version>3.7</commons-lang3.version> <fastjson.version>1.2.47</fastjson.version> <mybatis-plus-boot-starter.version>3.3.0</mybatis-plus-boot-starter.version> <mybatis-plus-generator.version>3.3.0</mybatis-plus-generator.version> <druid.version>1.1.14</druid.version> <lombok.version>1.18.0</lombok.version> <dubbo-spring-boot-starter.version>2.0.0</dubbo-spring-boot-starter.version> <swagger.version>2.9.2</swagger.version> <swagger-bootstrap-ui.version>1.9.6</swagger-bootstrap-ui.version> </properties> <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mysql依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql-connector-java.version}</version> </dependency> <!--阿里巴巴fastjosn依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <!--阿里巴巴数据库连接池依赖--> <!-- Druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <!-- MyBatis增强工具--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus-boot-starter.version}</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>${mybatis-plus-generator.version}</version> </dependency> <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency> <!--swagger-ui--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>${swagger-bootstrap-ui.version}</version> </dependency> </dependencies>
2. 구성 파일 application.yml
server: port: 8083 logging: config: classpath:logback-spring.xml #日志 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://IP:3306/school?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false username: root password: root druid: max-active: 100 initial-size: 10 max-wait: 60000 min-idle: 5 #设置单个文件最大上传大小 servlet: multipart: max-file-size: 20MB mybatis-plus: mapper-locations: classpath*:mapper/*.xml global-config: db-column-underline: true #开启驼峰转换 db-config: id-type: uuid field-strategy: not_null refresh: true configuration: map-underscore-to-camel-case: true #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句便于调试
3. 나중에 디버깅 인터페이스를 용이하게 하기 위해 swagger 구성
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * swagger文档,项目启动后,浏览器访问:http://localhost:8083/swagger-ui.html */ @Configuration @EnableSwagger2 public class ApiSwagger2 { @Bean public Docket createRestBmbsApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("users") .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.congge.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("后端相关API") .version("1.0") .build(); } }
4을 추가합니다. 모든 데이터를 쿼리하는 메소드
import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; @Data public class Student { @TableField("id") private String id; @TableField("name") private String name; @TableField("gender") private String gender; @TableField("age") private int age; @TableField("nick_name") private String nickName; }
6. Mybatis 레이어, SQL 파일 작성
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.congge.entity.Student; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface StudentMapper extends BaseMapper<Student> { List<Student> queryAll(); }
7. 비즈니스 구현 클래스
이 비즈니스 구현에서는 mybatis 메소드와 mybatis-plus 메소드를 동시에 사용할 수 있습니다. 필요에 따라 선택하고 결합할 수 있습니다.
<?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="com.congge.dao.StudentMapper"> <select id="queryAll" resultType="com.congge.entity.Student"> select * from student </select> </mapper>
8. 테스트 인터페이스 추가
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.congge.dao.StudentMapper; import com.congge.entity.Student; import com.congge.service.StudentService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service public class StudentServiceImpl implements StudentService { @Resource private StudentMapper studentMapper; @Override public List<Student> queryAllStudent() { QueryWrapper<Student> queryWrapper = new QueryWrapper(); List<Student> students = studentMapper.selectList(queryWrapper); return students; //return studentMapper.queryAll(); } @Override public List<Student> getByName(String name) { QueryWrapper<Student> queryWrapper = new QueryWrapper(); queryWrapper.like("name",name); return studentMapper.selectList(queryWrapper); } public Student getById(String id) { QueryWrapper<Student> queryWrapper = new QueryWrapper(); queryWrapper.like("id",id); return studentMapper.selectOne(queryWrapper); } }
9. 수업 시작
@RestController public class StudentController { @Autowired private StudentService studentService; @GetMapping("/getAll") public List<Student> getAll(){ return studentService.queryAllStudent(); } @GetMapping("/getByName") public List<Student> getByName(@RequestParam String name){ return studentService.getByName(name); } @GetMapping("/getById") public Student getById(@RequestParam String id){ return studentService.getById(id); } }
다음으로 프로젝트를 실행하고 테스트를 수행합니다
10. 스웨거 인터페이스
두 개의 인터페이스를 무작위로 테스트하고 테스트 중인 모든 학생의 데이터 인터페이스를 얻을 수도 있습니다
위 내용은 SpringBoot가 mybatis+mybatis-plus를 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!