来详细讲解一下“MyBatis 核心配置文件及映射文件详解”的攻略。
MyBatis 核心配置文件
MyBatis 核心配置文件是 MyBatis 使用的基本配置文件,用于配置数据库连接、事务管理等基本信息。下面是 MyBatis 核心配置文件的配置选项:
属性配置
MyBatis 核心配置文件的属性配置包括以下信息:
- environment(必须配置):设置数据库的环境。在多数据源的情况下可以配置多个 environment。
- properties(可选配置):属性配置,可用于配置驱动等信息。在配置多数据源时可以用它来动态切换数据库驱动等信息。
- typeAliases(可选配置):类型别名。用于简化参数和返回值类型的定义。
- typeHandlers(可选配置):类型处理器。用于自定义 MyBatis 与 JDBC 之间的类型转换。
- plugins(可选配置):插件。可以自定义 MyBatis 的操作行为和扩展功能。
设置数据源
数据源是连接数据库的重要信息,它位于 environment 部分,使用以下代码段进行配置:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
其中 <transactionManager>
标签用于设置事务管理器,<dataSource>
标签用于设置数据源。这里的数据源类型是 POOLED,表示使用自动替换策略的连接池。
配置 mappers
配置 mappers 是 MyBatis 的另一个重要配置,用于指定 SQL 语句的映射。MyBatis 可以使用基于 XML 文件或注解的方式来配置 mappers。
基于 XML 文件方式配置 Mappers
基于 XML 文件方式配置 mappers 的代码段如下:
<mappers>
<!-- 基于 XML 文件方式配置 Mapper -->
<mapper resource="com/example/mapper/StudentMapper.xml"/>
</mappers>
其中的 <mapper>
标签指定了 XML 文件的位置。
基于注解方式配置 Mappers
基于注解方式配置 mappers 的代码段如下:
@Mapper
public interface StudentMapper {
@Select("SELECT * FROM student WHERE id = #{id}")
Student selectStudentById(int id);
}
其中 @Select
注解指定了 SQL 语句。同时需在 MyBatis 核心配置文件中启用注解扫描,以扫描 Mapper 接口中的注解信息:
<configuration>
<mappers>
<package name="com.example.mapper"/>
</mappers>
</configuration>
MyBatis 映射文件
MyBatis 映射文件用于将 SQL 语句映射到 Java 方法上。下面是 MyBatis 映射文件的基本结构:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.StudentMapper">
<resultMap id="studentResultMap" type="Student">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
<result column="gender" property="gender"/>
</resultMap>
<select id="selectStudentById" resultMap="studentResultMap">
SELECT * FROM student WHERE id = #{id}
</select>
</mapper>
其中 namespace
属性指定了映射文件映射的 Mapper 接口类,resultMap
标签用于定义结果集映射结构,select
标签用于定义行级映射和 SQL 插入语句。
示例
下面是一个简单的 MyBatis 示例,查询一个学生的信息:
创建映射文件
先编写一个映射文件 StudentMapper.xml
,用来映射 SQL 语句到 Java 方法:
<!-- StudentMapper.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.StudentMapper">
<resultMap id="studentResultMap" type="Student">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
<result column="gender" property="gender"/>
</resultMap>
<select id="selectStudentById" resultMap="studentResultMap">
SELECT * FROM student WHERE id = #{id}
</select>
</mapper>
创建 DAO 接口
接着创建一个 DAO 接口 StudentMapper.java
,这里的 Mapper 注解用于将接口映射到映射文件上:
// StudentMapper.java
@Mapper
public interface StudentMapper {
Student selectStudentById(int id);
}
其中的 selectStudentById
方法映射了映射文件中的 selectStudentById
SQL 语句。
测试
最后,我们在测试类中调用 DAO 接口的方法,查询学生的信息:
@SpringBootTest
class DemoApplicationTests {
@Autowired
private StudentMapper studentMapper;
@Test
void contextLoads() {
Student student = studentMapper.selectStudentById(1);
System.out.println(student);
}
}
这样,我们就完成了一个简单的 MyBatis 使用示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis 核心配置文件及映射文件详解 - Python技术站