MyBatis的Mapper映射文件的语法及其常见元素属性的配置和使用
时间: 2024-03-09 20:50:07 浏览: 79
MyBatis的Mapper映射文件是用于定义SQL语句和映射关系的XML文件,其中包含了许多常用的元素和属性,以下是Mapper映射文件的语法及其常见元素属性的配置和使用:
1. 定义Mapper命名空间
```xml
<mapper namespace="com.example.mapper.UserMapper">
```
用于定义Mapper接口的命名空间,指定了Mapper接口的完全限定名。
2. 定义查询语句
```xml
<select id="getUserById" parameterType="int" resultType="com.example.entity.User">
SELECT * FROM user WHERE id = #{id}
</select>
```
- `id`:用于指定查询语句的唯一标识符。
- `parameterType`:用于指定查询语句的参数类型。
- `resultType`:用于指定查询语句的返回值类型。
3. 定义插入语句
```xml
<insert id="insertUser" parameterType="com.example.entity.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user(name, age) VALUES (#{name}, #{age})
</insert>
```
- `useGeneratedKeys`:用于指定是否返回自动生成的主键。
- `keyProperty`:用于指定返回的主键值要设置到哪个属性中。
4. 定义更新语句
```xml
<update id="updateUser" parameterType="com.example.entity.User">
UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
</update>
```
5. 定义删除语句
```xml
<delete id="deleteUserById" parameterType="int">
DELETE FROM user WHERE id = #{id}
</delete>
```
6. 定义结果集映射
```xml
<resultMap id="userMap" type="com.example.entity.User">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
</resultMap>
```
- `id`:用于指定结果集映射的唯一标识符。
- `type`:用于指定结果集映射的Java类型。
- `<id>`:用于指定主键字段的映射关系。
- `<result>`:用于指定普通字段的映射关系。
7. 使用参数
```xml
<select id="getUserByName" parameterType="java.lang.String" resultType="com.example.entity.User">
SELECT * FROM user WHERE name = #{name} AND age = #{age}
</select>
```
在SQL语句中使用`#{}`占位符来表示参数,参数名可以和JavaBean的属性名相同。
8. 使用动态SQL语句
```xml
<select id="getUserList" parameterType="com.example.entity.User" resultMap="userMap">
SELECT * FROM user
<where>
<if test="name != null and name != ''">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
```
在SQL语句中使用`<if>`、`<choose>`、`<when>`、`<otherwise>`、`<where>`、`<foreach>`等标签来动态生成SQL语句。
以上是Mapper映射文件的常见元素属性的配置和使用,通过这些元素和属性,我们可以自由地编写和组合SQL语句,实现各种复杂的数据访问操作。
阅读全文