MyBatiesPlus入门
非常适用于单表之间的操作
demo的代码链接
链接:https://pan.baidu.com/s/1jh4tTgVll-5kKe1b12Aoug
提取码:goih
1.快速入门
- 新建maven工程,pom依赖导入
当不为SpringBoot项目时单独导入MP依赖
<!‐‐SpringBoot起步依赖‐‐>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter</artifactId>
</dependency>
<!‐‐SpringBoot测试依赖‐‐>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐test</artifactId>
<scope>test</scope>
</dependency>
<!‐‐简化代码的工具包,使用@Data注解省略实体类中的get、set方法‐‐>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!‐‐mybatis‐plus的springboot支持‐‐>
<!‐‐当不为SpringBoot项目时单独导入依赖‐‐>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis‐plus‐boot‐starter</artifactId>
<version>3.1.0</version>
</dependency>
<!‐‐mysql驱动‐‐>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql‐connector‐java</artifactId>
<version>8.0.11</version>
</dependency>
- 编写application.properties配置文件,最好使用yaml文件
spring.application.name = yh-MP
spring.datasource.driver‐class‐name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mpdemo?useUnicode=true&characterEncoding=UTF‐
8&serverTimezone=Asia/Shanghai&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
# Logger Config
logging.level.root: debug
- 编写pojo实体类
@Data:lombok的注解,使用它可以省略getter/setter方法。
@NoArgsConstructor: 生成无参构造 方法
@AllArgsConstructor:生成所有参数构造 方法,参数顺序与属性定义顺序一致。
@TableName:指定表名
@TableId:指定主键名
@TableField:指定列名:注意:当某属性在表字段中没有时需要设置属性exist = false,否则会报错
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User {
@TableId("ID")
private Long id;
@TableField("USER_NAME")
private String userName; //驼峰命名,则无需注解
@TableField("PASSWORD")
private String password;
@TableField("NAME")
private String name;
@TableField("AGE")
private Integer age;
@TableField("EMAIL")
private String email;
@TableField("BIRTHDAY")
private LocalDateTime birthday;
}
数据库建表sql如下
‐‐ 创建测试表
CREATE TABLE `tb_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_name` varchar(20) NOT NULL COMMENT '用户名',
`password` varchar(20) NOT NULL COMMENT '密码',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`birthday` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
‐‐ 插入测试数据
insert into `tb_user`(`id`,`user_name`,`password`,`name`,`age`,`email`,`birthday`) values
(1,'zhangsan','123456','张三',18,'test1@itcast.cn','2019‐09‐26 11:42:01'),
(2,'lisi','123456','李四',20,'test2@itcast.cn','2019‐10‐01 11:42:08'),
(3,'wangwu','123456','王五',28,'test3@itcast.cn','2019‐10‐02 11:42:14'),
(4,'zhaoliu','123456','赵六',21,'test4@itcast.cn','2019‐10‐05 11:42:18'),
(5,'sunqi','123456','孙七',24,'test5@itcast.cn','2019‐10‐14 11:42:23');
- 编写Mapper接口
UserMapper接口需要继承MP提供的BaseMapper< T >接口。
此处为BaseMapper< User>
public interface UserMapper extends BaseMapper<User> {
}
- 编写SpringBoot启动类,添加MapperScan注解,指定mapper接口的扫描包。
@MapperScan("cn.itcast.mp.mapper") //设置mapper接口的扫描包
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
- 通过Service层对Mapper进行调用完成单表的CRUD。
2.常见配置
- configLocations配置:加载自己的mybatis的xml配置
mybatis‐plus.config‐location = classpath:mybatis‐config.xml
- mapperLocations配置:当mpper的xml文件不和map