MyBatis
什么是 MyBatis
,以及如何在 SpringBoot
中使用 Mybatis
MyBatis
什么是 MyBatis
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 消除了几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索。MyBatis 可以使用简单的 XML 或注解进行配置,并将原生信息映射成数据库记录。
MyBatis
的主要作用
- 将 SQL 查询语句与 Java 代码分离,提高代码的可读性和可维护性。
- 提供 SQL 语句的动态生成,方便进行复杂查询。
- 提供映射关系配置,自动将 SQL 查询结果映射为 Java 对象
MyBatis
的组成部分
*Mapper .class
*Mapper.class
是一个 **== 接口 == **,它定义了一些方法,这些方法对应于数据库操作,如查询、插入、更新和删除。这些方法的名称和参数将被用来生成 SQL 语句
例如:
1 | public interface UserMapper { |
*Mapper.xml
*Mapper.xml
文件是一个 XML
文件,它提供了 *Mapper.class
接口方法和 SQL
语句之间的映射。在这个文件中,你可以定义 SQL
语句,以及如何将结果集映射到 Java
对象。
例如,你可能有一个 UserMapper.xml
文件,如下所示
1 | <mapper namespace="com.wcx.blog.BlogBackend.mapper.UserMapper"> |
<select>
元素的 id 属性对应于 UserMapper 接口中的方法名
resultType 属性指定了结果集应该映射到哪个 Java 类(实体类)
SQL 语句则定义在 <select>
元素的文本内容中。
MyBatis
的应用
动态 SQL
动态 sql
:根据不同的条件和情况,在运行时生成或修改的 SQL 语句。
传递一个 map
类型的参数:
1 | Map<String, Object> params = new HashMap<>(); |
1 | # Mapper.xml 映射文件 根据参数params中的值选择sql语句或者添加条件 |
结果映射
- 将 resultType 的值设定为一个自定义的实体类
- MyBatis 会将查询结果自动映射成为这个实体类的对象
1 | <select id="getUsersByCondition" parameterType="map" resultType="com.wcx.blog.BlogBackend.po.User"> |
MyBatis
配置文件
application 配置文件
1 | # 通过在application.yml文件中设置mybatis.mapper-locations属性来指定MyBatis的XML映射文件的位置。 |
主类配置
1 |
|