mybatisxml中标签
时间: 2025-01-10 16:26:24 浏览: 40
### MyBatis XML配置标签使用方法
#### 映射文件结构概述
MyBatis 的映射文件通常以 `<mapper>` 作为根元素,该元素内可以包含多个子元素用于定义 SQL 查询和其他操作。通过这种方式,开发者能够清晰地组织和管理数据库交互逻辑。
#### 基本标签介绍
##### `select` 标签
此标签用来执行查询操作并返回结果集。可以通过设置参数类型以及指定返回的结果形式来增强灵活性。
```xml
<select id="findUserById" parameterType="int" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
</select>
```
##### `insert`, `update`, 和 `delete` 标签
这些标签分别对应于数据插入、更新及删除的操作。同样支持传入参数,并可通过动态 SQL 实现更复杂的功能。
```xml
<insert id="addUser" parameterType="com.example.User">
INSERT INTO users (name, age) VALUES (#{name}, #{age})
</insert>
<update id="modifyUserName" parameterType="map">
UPDATE users SET name=#{newName} WHERE id=#{userId}
</update>
<delete id="removeUser" parameterType="java.lang.Integer">
DELETE FROM users WHERE id=#{id}
</delete>
```
##### 动态SQL标签 (`if`, `choose`, `when`, `otherwise`)
为了构建更加灵活多变的 SQL 语句,在 MyBatis 中提供了多种条件判断标签,允许根据实际需求组合不同的 SQL 片段。
```xml
<select id="searchUsers" parameterType="map" resultType="com.example.User">
SELECT * FROM users
<where>
<if test="name != null">AND name LIKE CONCAT('%', #{name}, '%')</if>
<if test="minAge != null and maxAge != null">
AND age BETWEEN #{minAge} AND #{maxAge}
</if>
</where>
</select>
```
##### 结果映射 (`resultMap`)
当实体对象字段名称与数据库列名不一致时,可利用 resultMap 进行自定义转换关系,确保正确填充 Java 对象属性值[^3]。
```xml
<resultMap id="userResultMap" type="com.example.User">
<id property="id" column="user_id"/>
<result property="username" column="login_name"/>
</resultMap>
<select id="getUserInfo" resultMap="userResultMap">
SELECT user_id, login_name FROM users WHERE id = #{id}
</select>
```
阅读全文
相关推荐

















