MybatisPlus的使用

Love The Way You Lie 2022-12-31 06:19 342阅读 0赞

MybatisPlus项目使用

  • 前言
    • 实例

前言

Mybatis-Plus是一个Mybatis的增强工具,它在Mybatis的基础上做了增强,却不做改变。我们在使用Mybatis-Plus之后既可以使用Mybatis-Plus的特有功能,又能够正常使用Mybatis的原生功能。我们在项目使用mybatisplus能够减少比较大的工作量。

实例

一、引入maven依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <!-- 加载jdbc连接数据库 -->
  6. <dependency>
  7. <groupId>org.springframework.boot</groupId>
  8. <artifactId>spring-boot-starter-jdbc</artifactId>
  9. </dependency>
  10. <!-- 加载mybatis jar包 -->
  11. <dependency>
  12. <groupId>com.baomidou</groupId>
  13. <artifactId>mybatis-plus-boot-starter</artifactId>
  14. <version>3.3.2</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>mysql</groupId>
  18. <artifactId>mysql-connector-java</artifactId>
  19. <scope>runtime</scope>
  20. </dependency>
  21. <dependency>
  22. <groupId>org.projectlombok</groupId>
  23. <artifactId>lombok</artifactId>
  24. <version>1.18.10</version>
  25. <scope>compile</scope>
  26. </dependency>

二、加入yml配置

  1. server:
  2. port: 8082
  3. spring:
  4. datasource:
  5. driverClassName: com.mysql.cj.jdbc.Driver
  6. type: com.zaxxer.hikari.HikariDataSource
  7. url: jdbc:mysql://localhost:3306/test_mybatis?serverTimezone=Asia/Shanghai
  8. username: root
  9. password: 123456
  10. hikari:
  11. read-only: false
  12. #客户端等待连接池连接的最大毫秒数
  13. connection-timeout: 60000
  14. #允许连接在连接池中空闲的最长时间(以毫秒为单位)
  15. idle-timeout: 60000
  16. #连接将被测试活动的最大时间量
  17. validation-timeout: 3000
  18. #池中连接关闭后的最长生命周期
  19. max-lifetime: 60000
  20. #最大池大小
  21. maximum-pool-size: 60
  22. #连接池中维护的最小空闲连接数
  23. minimum-idle: 10
  24. #从池返回的连接的默认自动提交行为。默认值为true
  25. auto-commit: true
  26. #如果您的驱动程序支持JDBC4,我们强烈建议您不要设置此属性
  27. connection-test-query: SELECT 1
  28. #自定义连接池名称
  29. pool-name: myHikarCp

三、创建数据表

  1. CREATE TABLE `t_user` (
  2. `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
  3. `name` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名',
  4. `age` int NOT NULL DEFAULT '0' COMMENT '年龄',
  5. PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户表';

四、创建对应xml和对象

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DT 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.yin.demo.dao.TestMapper" >
  4. <resultMap id="BaseResultMap" type="com.yin.demo.bean.entity.User" >
  5. <result property="id" column="id" jdbcType="INTEGER"/>
  6. <result property="name" column="name" jdbcType="VARCHAR"/>
  7. <result property="age" column="age" jdbcType="SMALLINT"/>
  8. </resultMap>
  9. </mapper>
  10. @Data
  11. @TableName("t_user")
  12. public class User {
  13. @TableId(value = "id", type = IdType.AUTO)
  14. private Long id;
  15. private String name;
  16. private Integer age;
  17. }

五、创建mapper文件

  1. @Mapper
  2. public interface TestMapper extends BaseMapper<User> {
  3. }

六、service的创建

  1. public interface BaseService<T> extends IService<T> {
  2. /**
  3. * 分页查询
  4. *
  5. * @param entity 实体对象
  6. * @param pageNo 页码
  7. * @param pageSize 每页显示条数,默认20
  8. * @return com.baomidou.mybatisplus.core.metadata.IPage<T> 分页对象
  9. */
  10. IPage<T> page(T entity, Integer pageNo, Integer pageSize);
  11. /**
  12. * 分页查询
  13. *
  14. * @param entity 实体对象
  15. * @param pageSize 起始页,默认每页显示条数20
  16. * @return com.baomidou.mybatisplus.core.metadata.IPage<T> 分页对象
  17. */
  18. default IPage<T> page(T entity, Integer pageSize) {
  19. return this.page(entity, 1, pageSize);
  20. }
  21. }
  22. public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M, T> implements BaseService<T> {
  23. @Override
  24. public IPage<T> page(T entity, Integer pageNo, Integer pageSize) {
  25. return this.page(new Page<>(pageNo, pageSize), new QueryWrapper<>(entity));
  26. }
  27. }
  28. public interface TestService extends BaseService<User>{
  29. }
  30. @Service
  31. public class TestServiceImpl extends BaseServiceImpl<TestMapper, User> implements TestService {
  32. }

七、controller的创建

  1. @RestController
  2. @RequestMapping("/mybatis")
  3. public class TestController {
  4. @Resource
  5. private TestService testService;
  6. @GetMapping()
  7. public List<User> getData(){
  8. LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
  9. return testService.list(queryWrapper);
  10. }
  11. @PostMapping()
  12. public Boolean saveData(@RequestBody User user){
  13. return testService.save(user);
  14. }
  15. }

测试类:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,342人围观)

还没有评论,来说两句吧...

相关阅读