MyBatis插入后主键回填
2017-04-14 17:58
666 查看
如果数据库是支持自增量的(MySQL或者SQLServer,,如果oracle有一个触发器自动添加主键也可以!!!):
假如有个实体类author<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType=”book”> insert into Author (username,password,email,bio) values (#{username},#{password},#{email},#{bio}) </insert>
那么在插入时传入的这个author对象的id会被赋值为这行数据的id
keyProperty,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中
useGeneratedKeys,这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段
oracle如果有一个触发器自动添加主键也可以!!!
),默认值:false。
下面给出几个方法:
①在没有给这个表的主键设置触发器的情况下(没有主键触发器):
<insert id="insertBook1" parameterType="book"> <selectKey keyProperty="id" resultType="int" order="BEFORE"> select sq_xulie.nextval from dual </selectKey> insert into book (id,title)values(#{id},#{title}) </insert>
分析:
1.
<selectKey>标签中的语句会先被执行,
2. select语句把查询到的id放入book对象中
3. 再执行下面的insert语句,这样取id的时候就有值了
②如果这个表的主键有设置触发器或者是自增量:
<insert id="insertBook" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="book"> insert into book (title)values(#{title}) </insert>
相关文章推荐
- MyBatis+MySQL 返回插入的主键ID
- Mybatis如何在插入操作后获取主键的ID值
- mybatis 插入操作,insert_获取非自增主键的值
- MyBatis在insert插入操作时返回主键ID的配置
- Mybatis+Mysql返回插入的主键ID
- Mybatis-插入语句返回ID主键
- MyBatis+MySQL 返回插入的主键ID
- 详解Java MyBatis 插入数据库返回主键
- MyBatis + MySQL返回插入成功后的主键id
- Mybatis执行批量插入返回数据库主键列表
- Mysql+Mybatis 批量插入返回主键
- MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
- Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法
- mybatis主键回填的几种方式
- mybatis 通用mapper返回插入主键
- MyBatis+MySQL 返回插入的主键ID
- 表主键自增长Mybatis插入数据报错
- MyBatis Insert返回主键和批量插入
- MyBatis在insert插入操作时返回主键ID的配置
- mybatis如何获取oracle新插入数据记录的主键?