SpringBoot(五)整合Mybatis-Plus

整合Mybatis-Plus

导入依赖

<!--mybatis-plus启动器-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>
​
    <!-- 数据库驱动 -->
<dependency>
    <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.27</version>
 </dependency>

安装Lombok插件

配置编码

  • 配置application.yaml文件

    spring:
      #配置数据库
      datasource:
        # 配置连接数据库信息
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
        username: root
        password: 123456
    ​
    mybatis-plus:
      # 配置MyBatis日志
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    ​
        #全局配置
      global-config:
        db-config:
          #配置统一的主键策略为自增,如果不设置默认为雪花算法
          id-type: auto
          # 设置实体类所对应的表的统一前缀,为实体类所对应的表名设置默认的前缀
          table-prefix: t_
    ​
      #配置mapper映射文件路径,名字要和mapper接口名字一致 这是默认路径不写也行
      mapper-locations: classpath*:/mapper/**/*.xml
    ​
      #配置类型别名所对应的包
      type-aliases-package: com.yka.boot02mybatis_plus.pojo
    ​
      # 扫描通用枚举的包
      type-enums-package: com.yka.boot02mybatis_plus.enums

  • 创建一个config包创建配置类,添加@MapperScan` 注解,扫描 Mapper 文件夹 添加@Configuration注解**

    @Configuration //告诉SpringBoot这是一个配置类 == spring配置文件
    @MapperScan("com.yka.boot02mybatis_plus.mapper")//扫描接口包 在当前配置类(spring.xml)中填写注解最合适
    //配置mapper接口的扫描配置
    //由mybatis-spring提供,可以将指定包下所有的mapper接口创建代理实现类
    //并将这些动态代理作为IOC容器的bean管理,接口就可以自动装配了,直接可以调用接口中的方法
    public class MyConfig {
    }
  • 编写实体类 User.java(此处使用了 Lombok 简化代码)

    @Data//自动提供get set方法、tosString方法,equals方法
    @AllArgsConstructor//有参构造器
    @NoArgsConstructor//无参构造器
    @TableName("user")//绑定表 yaml文件中设置了全局配置这里可以不用注解了 yaml文件配置文件中:db-config:table-prefix: t_
    public class User {
        private Long id;
        private String name;
        private Integer age;
        private String email;
    }
  • 编写 Mapper 包下的 UserMapper接口

  • 1.BaseMapper<T>

    说明:

    • 通用 CRUD 封装BaseMapper 接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器

    • 泛型 T 为任意实体对象

    • 参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键

    • 对象 Wrapper 为条件构造器

    MyBatis-Plus中的基本CRUD在内置的BaseMapper中都已得到了实现,因此我们继承该接口以后可以直接使用。

    本次演示的CRUD操作不包含参数带有条件构造器的方法,关于条件构造器将单独在一个章节进行演示。BaseMapper中提供的CRUD方法:

  • // 在对应的Mapper上面继承基本的类 BaseMapper,就能直接用BaseMapper接口里面的sql语句了
    //MyBatis-Plus中的基本CRUD在内置的BaseMapper中都已得到了实现,因此我们继承该接口以后可以直接使用。
    @Repository // 代表持久层
    public interface UserMapper extends BaseMapper<User> {
    // 所有的CRUD操作都已经编写完成了
    // 你不需要像以前的配置一大堆文件了!
    ​
        @Select("select * from user where id = #{id}")
        public User selById(Integer id);
    ​
    }

测试查询

  • 编写一个测试类MyBatisPlusTest.java

    @SpringBootTest
    public class MyBatisPlusTest {
        @Resource
        private UserMapper userMapper;
    ​
        /**
         * 测试查询所有数据
         */
        @Test
        void testSelectList(){
            //通过条件构造器查询一个list集合,若没有条件,则可以设置null为参数
            List<User> users = userMapper.selectList(null);
            users.forEach(System.out::println);
        }
    }
  • 控制台打印查询结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值