概述
MyBatis Plus是基于MyBatis的增强工具,旨在简化持久层开发,提供了更方便、高效的数据库操作方式。本篇技术长博文将详细介绍如何在Spring Boot应用中使用MyBatis Plus,包括基本配置、CRUD操作等,通过实际的代码示例帮助读者更好地掌握这一工具的使用。
1.ORM介绍
1、ORM(Object Relational Mapping,对象关系映射)是为了解决面向对象与关系数据库存在的互不匹配现象的一种技术。
2、ORM通过使用描述对象和数据库之间映射的元数据将程序中的对象自动持久化到关系数据库中。
3、ORM框架的本质是简化编程中操作数据库的编码。
2.MyBatis-Plus介绍
1、MyBatis是一款优秀的数据持久层ORM框架,被广泛地应用于应用系统。
2、MyBatis能够非常灵活地实现动态SQL,可以使用XML或注解来配置和映射原生信息,能够轻松地将Java的POJO(Plain Ordinary Java Object,普通的Java对象)与数据库中的表和字段进行映射关联。
3、MyBatis-Plus是一个 MyBatis 的增强工具,在 MyBatis 的基础上做了增强,简化了开发。
4. 创建Spring Boot项目
首先,在IDE中创建一个新的Spring Boot项目,确保已包含Web依赖。
5.添加依赖
<!-- MyBatisPlus依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!-- mysql驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- 数据连接池 druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>
</dependencies>
6. 配置MyBatis Plus
在应用的配置文件(application.properties
或application.yml
)中配置数据库连接信息和MyBatis Plus。
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
server.port=8088
7. 添加@MapperScan注解
@SpringBootApplication
@MapperScan("cn.yu.mapper")
public class MpdemoApplication {
public static void main(String[] args) {
SpringApplication.run(MpdemoApplication.class, args);
}
}
8. Mybatis CRUD注解
下面是MyBatis中常见的CRUD(Create, Read, Update, Delete)操作的注解及其用途:
注解 | 说明 | 示例 |
---|---|---|
@Insert | 用于插入数据,映射到数据库的INSERT操作。 | @Insert("INSERT INTO users(id, name) VALUES(#{id}, #{name})") |
@Select | 用于查询数据,映射到数据库的SELECT操作。 | @Select("SELECT * FROM users WHERE id = #{id}") |
@Update | 用于更新数据,映射到数据库的UPDATE操作。 | @Update("UPDATE users SET name = #{name} WHERE id = #{id}") |
@Delete | 用于删除数据,映射到数据库的DELETE操作。 | @Delete("DELETE FROM users WHERE id = #{id}") |
@Results | 定义查询结果集中字段与Java对象的映射关系。 | @Results({ @Result(property = "id", column = "id"), @Result(property = "name", column = "name") }) |
@Result | 定义单个字段与Java对象属性的映射关系。 | @Result(property = "id", column = "id") |
@Param | 用于传递参数到SQL语句中,可以指定参数名称以在SQL语句中引用。 | @Select("SELECT * FROM users WHERE name = #{name} AND age = #{age}") List getUsersByNameAndAge(@Param("name") String name, @Param("age") int age); |
@ResultsMap | 定义查询结果集中字段与Java对象的映射关系,与@Results类似,但可以在XML中重用。 | @ResultsMap("userResultMap") |
@ResultMap | 引用在XML文件中定义的结果映射,用于复用结果映射规则。 | @ResultMap("userResultMap") |
@InsertProvider | 指定一个动态SQL提供者方法,用于生成INSERT语句。 | @InsertProvider(type = UserSqlProvider.class, method = "insert") |
@SelectProvider | 指定一个动态SQL提供者方法,用于生成SELECT语句。 | @SelectProvider(type = UserSqlProvider.class, method = "select") |
@UpdateProvider | 指定一个动态SQL提供者方法,用于生成UPDATE语句。 | @UpdateProvider(type = UserSqlProvider.class, method = "update") |
@DeleteProvider | 指定一个动态SQL提供者方法,用于生成DELETE语句。 | @DeleteProvider(type = UserSqlProvider.class, method = "delete") |
请注意,以上只是MyBatis中一些常见的CRUD注解和用法示例,实际使用时可能还会根据具体情况添加其他注解或配置。同时,动态SQL提供者方法的使用可以让您根据需要生成不同的SQL语句,使MyBatis更加灵活和适应多样化的查询需求。
9.CRUD操作
10. MybatisPlus注解
以下是MyBatis-Plus中常见的CRUD(Create, Read, Update, Delete)操作的注解及其用途:
注解 | 说明 | 示例 |
---|---|---|
@TableName | 标识实体类对应的数据库表名。 | @TableName("user") |
@TableId | 标识主键字段,可以指定主键生成策略等。 | @TableId(value = "id", type = IdType.AUTO) |
@TableField | 标识实体类属性与数据库表字段的映射关系。 | @TableField(value = "name", condition = SqlCondition.LIKE) |
@Insert | 插入数据,对应数据库的INSERT操作。 | @Insert("INSERT INTO user(id, name) VALUES(#{id}, #{name})") |
@SelectById | 根据ID查询数据,对应数据库的SELECT操作。 | @SelectById |
@SelectOne | 查询单条数据,对应数据库的SELECT操作。 | @SelectOne |
@SelectList | 查询列表数据,对应数据库的SELECT操作。 | @SelectList |
@UpdateById | 根据ID更新数据,对应数据库的UPDATE操作。 | @UpdateById |
@DeleteById | 根据ID删除数据,对应数据库的DELETE操作。 | @DeleteById |
上述注解是MyBatis-Plus中用于进行CRUD操作的核心注解。除了以上列出的注解,MyBatis-Plus还提供了更多的注解和功能,如分页查询、条件构造器等,以便于更便捷地进行数据库操作。
请注意,MyBatis-Plus是对MyBatis的增强,提供了更多的功能和便利性,使得数据库操作更加简洁和高效。在实际使用中,您可以根据具体的业务需求,选择适合的注解和功能来完成CRUD操作。
总结
本文详细介绍了如何在Spring Boot应用中使用MyBatis Plus来简化持久层开发。通过配置数据库连接信息,并利用MyBatis Plus提供的便捷注解,读者可以轻松实现CRUD操作,从而大大提升开发效率。通过学习本文内容,你可以更好地掌握MyBatis Plus的基本使用方法,为持久层开发提供更加便捷的解决方案。