MyBatis XML映射文件通过select、insert、update标签实现数据库操作。1. select标签用于查询,id对应接口方法名,parameterType指定参数类型,resultType或resultMap定义返回结果,#{}防止SQL注入;字段与属性不一致时可用resultMap映射。2. insert标签执行插入,useGeneratedKeys配合keyProperty可回填自增主键,或用selectKey获取非自增主键。3. update标签用于更新数据,结合set和if实现动态字段更新,避免多余逗号。建议统一使用#{}传参,复杂映射用resultMap,灵活更新用动态SQL。

在 MyBatis 中,XML 映射文件是操作数据库的核心部分,它通过 SQL 语句与 Java 接口方法绑定,实现数据的持久化。下面详细说明 select、insert、update 标签的基本用法和常见配置。
作用:执行 SELECT 查询语句,将结果映射为 Java 对象或集合。
常用属性:
示例:
<select id="selectUserById" parameterType="int" resultType="com.example.User">
SELECT * FROM users WHERE id = #{id}
</select>
说明:#{id} 是预编译占位符,防止 SQL 注入;resultType 指定返回类型为 User 实体类。
若字段名与属性名不一致,可使用 resultMap 显式映射:
<resultMap id="UserResultMap" type="com.example.User">
<id property="id" column="user_id"/>
<result property="name" column="user_name"/>
<result property="email" column="user_email"/>
</resultMap>
<p><select id="selectUserByName" parameterType="string" resultMap="UserResultMap">
SELECT user_id, user_name, user_email FROM users WHERE user_name LIKE #{name}
</select></p>作用:执行 INSERT 语句,向数据库添加新记录。
常用属性:id、parameterType。
示例:
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO users (user_name, user_email)
VALUES (#{name}, #{email})
</insert>
如果需要返回自增主键,可通过以下方式获取:
<insert id="insertUser" parameterType="com.example.User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO users (user_name, user_email)
VALUES (#{name}, #{email})
</insert>
说明:useGeneratedKeys="true" 表示使用数据库自增主键,keyProperty="id" 将生成的主键值赋给对象的 id 属性。
也可使用 <selectKey> 获取主键(适用于不支持自增的数据库):
<insert id="insertUser" parameterType="com.example.User">
<selectKey keyProperty="id" resultType="int" order="BEFORE">
SELECT NEXTVAL('user_seq')
</selectKey>
INSERT INTO users (user_id, user_name, user_email)
VALUES (#{id}, #{name}, #{email})
</insert>
注意:order="BEFORE" 表示先执行 selectKey 获取 ID,再执行插入。
作用:执行 UPDATE 语句,修改已有记录。
示例:
<update id="updateUser" parameterType="com.example.User">
UPDATE users
SET user_name = #{name}, user_email = #{email}
WHERE user_id = #{id}
</update>
该语句会根据传入的 User 对象更新对应字段。通常 update 返回值为 int 类型,表示影响的行数。
可结合动态 SQL 实现条件更新(只更新非空字段):
<update id="updateUserSelective" parameterType="com.example.User">
UPDATE users
<set>
<if test="name != null">user_name = #{name},</if>
<if test="email != null">user_email = #{email},</if>
</set>
WHERE user_id = #{id}
</update>
<set> 标签会自动处理多余的逗号,避免语法错误。
编写 XML 映射文件时,注意以下几点:
#{} 包裹,安全且高效。useGeneratedKeys 或 <selectKey>。<set> 和 <if> 可实现灵活的条件更新。基本上就这些,掌握这几个标签的写法,就能应对大多数数据库操作场景。
以上就是Mybatis中的xml映射文件如何编写 select、insert、update标签用法详解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号