如何整合 springboot + mybatis-plus(系列一)
Posted 石头StoneWang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何整合 springboot + mybatis-plus(系列一)相关的知识,希望对你有一定的参考价值。
如何整合 springboot + mybatis-plus(系列一)
背景
整合 springboot + mybatis-plus,其实就是整合 springboot + mybatis + mybatis-plus,本来 mybatis-plus 就能自动包含 mybatis
步骤
非常简单,
-
用 IDEA 新建项目,选择 Spring Initializr 的项目, Custom 填入 https://start.aliyun.com/,利用阿里的开发的模板进行创建
-
勾选 lombok, Spring Web, MyBatis Plus Framework 进行创建即可
注意,勾选 MyBatis Plus Framework 即可,不需要和 MyBatis Framework 两个同时勾选
-
添加 jdbc 的依赖,比如 mysql的
毕竟 IDEA 向导建Project的过程不知道你用什么类型的库,所以这个需要自己自行加入
-
配置连接
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
-
建表
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;
-
写 model 类
@Data public class MpUser { private Integer id; private Short age; private Byte gender; private Date createTime; private Date updateTime; }
-
写 Mapper 接口,注意继承 BaseMapper 并填入泛型,泛型对应的 model 类
@Mapper @Repository public interface MpUserMapper extends BaseMapper<MpUser> { }
注意,写上 @Mapper 注解就不需要写扫描包路径的配置,我一直绝对的写个字串的包路径一点都不优雅. 另外写 @Repository 的目的是让 IDEA 不要提示找不到Bean注入(实际存在),只写 @Repository 留 @Mapper 是不行的
-
写 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>
以上是关于如何整合 springboot + mybatis-plus(系列一)的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot:Mybatis整合PostgreSQL
企业分布式微服务云SpringCloud SpringBoot mybatis (十三)Spring Boot整合MyBatis