以下是XML映射文件的基本结构和一些常用元素:
1. <mapper> 元素
映射文件的根元素是 <mapper>,用于定义命名空间和包含映射规则和SQL语句。
<mapper namespace="com.example.mapper.UserMapper">
<!-- 映射规则和SQL语句 -->
</mapper>
namespace 属性指定了映射器接口的全限定名,与Java中的映射器接口一致。
2. <resultMap> 元素
<resultMap> 用于定义查询结果集的映射规则。
<resultMap id="userResultMap" type="com.example.model.User">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="password" property="password"/>
</resultMap>
id 属性指定了结果集映射规则的唯一标识,type 属性指定了映射到的Java对象类型。<id> 和 <result> 元素分别定义了主键和普通字段的映射规则。
3. <select>、<insert>、<update>、<delete> 元素
分别用于定义查询、插入、更新和删除操作的SQL语句。
<select id="getUserById" resultMap="userResultMap" parameterType="java.lang.Long">
SELECT * FROM users WHERE id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.model.User">
INSERT INTO users(username, password) VALUES (#{username}, #{password})
</insert>
<update id="updateUser" parameterType="com.example.model.User">
UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}
</update>
<delete id="deleteUser" parameterType="java.lang.Long">
DELETE FROM users WHERE id = #{id}
</delete>
这些元素的 id 属性对应于映射器接口中的方法名称,resultMap 属性指定了查询结果集的映射规则,parameterType 属性指定了方法参数的类型。
4. 动态SQL
MyBatis支持动态SQL,可以在映射文件中使用 <if>、<choose>、<when>、<otherwise> 等元素构建动态SQL语句,以根据条件拼接不同的SQL片段。
<select id="getUsers" resultMap="userResultMap">
SELECT * FROM users
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="password != null">
AND password = #{password}
</if>
</where>
</select>
在这个例子中,<where> 元素用于包装条件语句,<if> 元素根据条件判断是否拼接对应的SQL片段。
这些是MyBatis映射文件的基本元素和结构。通过合理使用这些元素,你可以定义灵活且强大的数据映射规则和SQL语句,实现数据库操作的自定义和优化。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7006/MyBatis