如何整合 springboot + mybatis-plus(系列一)

有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

导读:本篇文章讲解 如何整合 springboot + mybatis-plus(系列一),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

如何整合 springboot + mybatis-plus(系列一)

背景

整合 springboot + mybatis-plus,其实就是整合 springboot + mybatis + mybatis-plus,本来 mybatis-plus 就能自动包含 mybatis

步骤

非常简单,

  1. 用 IDEA 新建项目,选择 Spring Initializr 的项目, Custom 填入 https://start.aliyun.com/,利用阿里的开发的模板进行创建

  2. 勾选 lombok, Spring Web, MyBatis Plus Framework 进行创建即可

    注意,勾选 MyBatis Plus Framework 即可,不需要和 MyBatis Framework 两个同时勾选

  3. 添加 jdbc 的依赖,比如 mysql的

    毕竟 IDEA 向导建Project的过程不知道你用什么类型的库,所以这个需要自己自行加入

  4. 配置连接

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.username=xxx
    spring.datasource.password=xxx
    spring.datasource.url=jdbc:mysql://localhost:3306/mp
    
    # 打印 mybatis 日志( logging.level. 后的包名,改成自己的 XxxMapper.java 所在的包)
    logging.level.com.wyf.test.mybatisplusdemo.mapper=debug
    mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
    
  5. 建表

    CREATE TABLE `mp_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
      `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '姓名',
      `age` smallint(6) NOT NULL COMMENT '年龄',
      `gender` tinyint(255) NOT NULL COMMENT '性别',
      `create_time` datetime NOT NULL COMMENT '创建时间',
      `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
    
  6. 写 model 类

    @Data
    public class MpUser {
        private Integer id;
        private Short age;
        private Byte gender;
        private Date createTime;
        private Date updateTime;
    }
    
  7. 写 Mapper 接口,注意继承 BaseMapper 并填入泛型,泛型对应的 model 类

    @Mapper
    @Repository
    public interface MpUserMapper extends BaseMapper<MpUser> {
    }
    

    注意,写上 @Mapper 注解就不需要写扫描包路径的配置,我一直绝对的写个字串的包路径一点都不优雅. 另外写 @Repository 的目的是让 IDEA 不要提示找不到Bean注入(实际存在),只写 @Repository 留 @Mapper 是不行的

  8. 写 Junit 测试类, 新建的Project有个现成的 XxxxTests,直接拿来改一下即可

    @SpringBootTest
    class MybatisPlusDemoApplicationTests {
        @Autowired
        private MpUserMapper mpUserMapper;
    
        @Test
        void test() {
            List<MpUser> mpUsers = mpUserMapper.selectList(null);
            for (MpUser mpUser : mpUsers) {
                System.out.println(mpUser);
            }
        }
    }
    

至此,整合完毕

补充

1、实验结果,如果表名和实体类的名字不同,比如 MpUser 的表名叫做 t_user,则必须在 MpUser 类上加 @TableName(“t_user”)

2、可以看见,引入 mybatis-plus-boot-starter 即可,不需要将 mybatis 的 starter 的依赖引入。pom参考:

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.2</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.26</version>
</dependency>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/135188.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!