整合 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 { }
注意,写上 @Mapper 注解就不需要写扫描包路径的配置,我一直绝对的写个字串的包路径一点都不优雅. 另外写 @Repository 的目的是让 IDEA 不要提示找不到Bean注入(实际存在),只写 @Repository 留 @Mapper 是不行的
-
写 Junit 测试类, 新建的Project有个现成的 XxxxTests,直接拿来改一下即可
@SpringBootTest class MybatisPlusDemoApplicationTests { @Autowired private MpUserMapper mpUserMapper; @Test void test() { List 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参考:
com.baomidou
mybatis-plus-boot-starter
3.4.2
mysql
mysql-connector-java
8.0.26