什么是mybatis-plus?
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
官网此处
特点
快速入门使用
一、创建数据库
表
代码语言:javascript复制DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT '主键ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id)
);
数据
代码语言:javascript复制DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 19, 'test1'),
(2, 'Jack', 21, 'test2'),
(3, 'Tom', 29, 'test3'),
(4, 'Sandy', 22, 'test4'),
(5, 'Cat', 23, 'test5');
二、创建一个springboot项目
用IDE工具
选择web跟lombok插件
三、导入mybatis-plus 需要的依赖
代码语言:javascript复制 <!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
使用mybatis-plus可以节省大量代码 不可以同时导入mybatis和mybatis-plus
四、连接数据库
配置文件
代码语言:javascript复制spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=1234
#mysql 8 以上用com.mysql.cj.jdbc.Driver 需要增加时区 serverTimezone=GMT+8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
五、创建pojo类和dao接口
代码语言:javascript复制@Data
//无参构造
@NoArgsConstructor
//有参构造
@AllArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
dao接口
代码语言:javascript复制public interface UserMapper extends BaseMapper<User> {
//Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能
}
源码里的注释
我们编写测试类测试一下
我们可以看到为我们生成了很多方法
我们可以看到selectList的参数是一个Wrapper(条件构造器 根据传入的条件查询) 我们不需要条件 所以直接传入null即可
源码
测试类
代码语言:javascript复制@SpringBootTest
class MybatisPlusApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
List<User> list = userMapper.selectList(null);
for (User user:list) {
System.out.println(user);
}
}
}