MybatisPlus
SSH:Spring+Struts2+Hibernate
SSM: Spring+springmvc+mybatis
1. 概述
•MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
•官网:https://mybatis.plus/ 或 https://mp.baomidou.com/
依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.4.0</version>
</dependency>
2. 快速入门
SpringBoot 整合 MyBatis-Plus,并实现根据Id查询功能。
①数据库环境准备
②创建SpringBoot工程,引入MyBatis-Plus起步依赖
③编写DataSource相关配置
④编写mapper
⑤测试
2.1 数据库环境准备
2.2 创建SpringBoot工程,引入MyBatis-Plus起步依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- mysql 驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
<!-- lombok ,自动生成get,Set 方法-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatisplus起步依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
</dependencies>
1,在IDEA的插件中安装Lombok插件:settings-->plugins>搜索lombok然后安装重启IDEA
2,在依赖中引入lombok依赖:
<!-- lombok ,自动生成get,Set 方法-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
3,在实体中使用相关的注解:帮我们减化开发
2.3 编写DataSource相关配置
# datasource
spring:
datasource:
url: jdbc:mysql:///mp
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
2.4 编码
编写mapper
/**
* 使用mp定义Mapper,需要让Mapper接口继承 BaseMapper接口。
*/
public interface UserMapper extends BaseMapper<User> {
}
实体类
@TableName("tb_user") // 指定表名
@Data
public class User {
private Long id;
private String userName;
private String password;
private String name;
private Integer age;
private String email;
启动类增加 @MapperScan 注解
@MapperScan("com.ithe.mp.mapper")
@SpringBootApplication
public class MybatisPlusSpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusSpringbootApplication.class, args);
}
}
2.5 测试
@SpringBootTest
@RunWith(SpringRunner.class)
class UserMapperTest {
@Autowired
private UserMapper userMapper;
/**
* 根据id查询
*/
@Test
public void testSelectById() {
User user = userMapper.selectById(1L);
System.out.println(user);
}
}
3. CRUD
3.1 添加
3.1.1 方法
@Test
public void testInsert() {
User user = new User();
//user.setId(6L);
user.setUserName("itcast");
user.setPassword("ithe");
int count = userMapper.insert(user);
System.out.println(count);
}
3.1.2 说明1, 实体类上的注解 @TableField
1) @TableField("user_name") 指定映射关系
实体类的属性名和数据库的字段名自动映射:
* 名称一样
* 数据库字段使用_分割,实体类属性名使用驼峰名称
否则需要使用 @TableField("user_name") 指定映射关系
2) 忽略某个字段的查询和 插入
@TableField(exist = false)
3) 设置id生成策略:AUTO 数据库自增
@TableId(type = IdType.AUTO)
select * from tb_user
select id,user_name tb_user
update set user_name=? from tb_user where age=19
delete from tb_user wehre age>18
主键生成策略的介绍:
AUTO 数据库ID自增
INPUT 用户输入ID
ID_WORKER 全局唯一ID,Long类型的主键 雪花算法,推荐使用
ID_WORKER_STR 字符串全局唯一ID
UUID 全局唯一ID,UUID类型的主键 默认的
NONE 该类型为未设置主键类型
3.1.3 说明2, 配置
mybatis-plus:
global-config:
db-config:
# 表名前缀
table-prefix: tb_
# id生成策略 数据库自增
id-type: auto
configuration:
# 日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3.1.5 具体使用如下
/**
* 实体类的属性名和数据库的字段名自动映射:
* 1. 名称一样
* 2. 数据库字段使用_分割,实体类属性名使用驼峰名称
*/
@TableName("tb_user")
@Data
public class User {
//设置id生成策略:AUTO 数据库自增
@TableId(type = IdType.AUTO)
private Long id;
//@TableField("user_name")
private String userName;
private String password