下面我将就“Mybatis全局配置及映射关系的实现”的完整攻略进行详细讲解。
1. 全局配置
1.1. 配置文件
在Mybatis中,全局配置是通过mybatis-config.xml文件来管理的,具体的配置内容包括:
- properties:定义全局属性,类似于Java的System.getProperties()方法。
- settings:定义Mybatis运行时的行为属性,例如开启缓存等。
- typeAliases:定义类型别名,使得XML配置文件中参数的定义更加简洁。
- typeHandlers:定义Java类型和JDBC类型之间的转换,使得Java对象和数据库中对应字段的不同类型之间的转换。
- objectFactory:定义对象工厂,用于创建数据查询返回的POJO对象。
- plugins:定义插件,用于拦截Mybatis相关的核心对象进行扩展和修改。
- environments:定义环境,即定义数据库连接池信息、数据源信息等全局性配置信息。
- databaseIdProvider:定义数据库厂商标识,用于配置不同数据库的SQL语句,例如Oracle和MySQL的分页语法不同。
- mappers:定义映射器,即定义SQL语句和Java方法之间的关系。
1.2. 示例
一个示例的mybatis-config.xml文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 属性配置 -->
<properties resource="mybatis.properties">
<property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="jdbc.url" value="jdbc:mysql://localhost:3306/test"/>
<property name="jdbc.username" value="root"/>
<property name="jdbc.password" value="123456"/>
</properties>
<!-- 插件配置 -->
<plugins>
<plugin interceptor="com.company.interceptor.MyInterceptor">
<property name="interceptorProperties" value="propertyValue"/>
</plugin>
</plugins>
<!-- 环境配置 -->
<environments default="development">
<environment id="production">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 映射器配置 -->
<mappers>
<mapper resource="com/company/mapper/MyMapper.xml"/>
</mappers>
</configuration>
在该配置文件中,可以看到定义了properties、plugins、environments和mappers四个全局配置。
2. 映射关系
2.1. SQL映射文件
Mybatis中的SQL映射文件是持久化操作的关键,它将SQL语句和Mapper接口中的方法进行关联,让Mapper接口更好的与SQL语句进行对应。
在SQL映射文件中,一般至少包含以下信息:
- namespace:标识该Mapper接口,要求唯一。
- resultType:定义查询结果,对应Java对象。
- parameterType:定义参数类型,即Java对象。
- SQL语句:定义CRUD操作的SQL语句。
2.2. 示例
一个示例的SQL映射文件如下:
<?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.company.mapper.MyMapper">
<select id="getAllUsers" resultType="com.company.pojo.User">
SELECT * FROM user;
</select>
<select id="getUserById" parameterType="int" resultType="com.company.pojo.User">
SELECT * FROM user WHERE id = #{id};
</select>
<insert id="addUser" parameterType="com.company.pojo.User">
INSERT INTO user VALUES (#{id}, #{name}, #{password}, #{age});
</insert>
<update id="updateUser" parameterType="com.company.pojo.User">
UPDATE user SET name = #{name}, password = #{password}, age = #{age} WHERE id = #{id};
</update>
<delete id="deleteUser" parameterType="int">
DELETE FROM user WHERE id = #{id};
</delete>
</mapper>
在该SQL映射文件中,定义了一个标识为com.company.mapper.MyMapper的Mapper接口,以及getAllUsers、getUserById、addUser、updateUser和deleteUser五个CRUD操作的SQL语句。
总结
本文详细讲解了Mybatis全局配置及映射关系的实现,包括全局配置文件mybatis-config.xml的配置和SQL映射文件的定义。同时,本文提供了两个示例,帮助读者更好的理解Mybatis的使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis全局配置及映射关系的实现 - Python技术站