引言
接触到一个需求为,向数据库中添加一条数据时,同时要向另一张关系中间表添加数据,这就要求第一次添加时要返回数据库生成的主键 id 提供给在添加关系表时使用
正文
xml 编写插入 sql 语句时,主要使用<insert>
标签,为了实现添加完成后返回数据库生成的自增主键 id,主要使用useGeneratedKeys、keyColumn、keyProperty 这三个属性。例如:
<insert id="insert" parameterType="" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
</insert>
此时便可正常返回主键 id。
小贴士:
在 xml 中编写语句时,可以使用<sql>
标签将常用的 sql 语句提取出来,如查询字段、查询对应的表等。在使用时用<include>
标签指明 refid=‘id’ 即可。例如:
<sql id="tableSql">
company
</sql>
<select id="getByCode" resultMap="baseResultMap">
select
<include refid="baseColumnList"/>
from
<include refid="tableSql"/>
where code = #{code , jdbcType=VARCHAR}
and purchaser_id = #{purchaserId , jdbcType=BIGINT}
and is_deleted = 0
limit 1
</select>
收获
更加熟练使用 mybatis 面对复杂情景的使用