<insert useGeneratedKeys="true" keyProperty="id" keyColumn="id" ></insert>
# useGeneratedKeys需要数据库本身支持字段自增的
<insert id="insertUser" parameterType="com.xxxx.User">
<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
select userinfo_seq.nextval from dual --"userinfo_seq"为你创建的自增序列名称
</selectKey>
insert into userinfo(id,name,age) values(#{id},#{name},#{age})
</insert>
/*
注意:
1> mybatis实现Oracle主键返回自增值,与MySQL、SQL server不同,insert标签中不需要useGeneratedKeys属性和KeyProperty属性
2>需要在insert标签中,使用selectKey标签,并指明:
①KeyProperty="你需要自增的字段名称"
②order="BEFORE" 表示在insert语句执行前,获取到自增序列,组装到#{id}中,使用到insert语句中,并同时使mybatis获取到该自增序列
3>insert语句中,需要显式的写出字段的字段,如 id,并在values中,使用#{id}
*/
/*
insert方法返回的是影响表数据的行数,单条插入,成功,则返回1,失败,则返回0
获取的自增数值会被mybatis自动组装到实体类对象中,通过"对象.getId()"获取
*/
// 注解方式
@SelectKey(
before = true,
resultType = Integer.class,
keyProperty = "id",
statement = "select userinfo_seq.nextval from dual"
)
@Insert("insert into userinfo(id,name,age) values(#{id},#{name},#{age})")
int insertUser(User user);
标签:insert,自增,relevant,blog,Oracle,自增字,userinfo,Mybatis,id
From: https://www.cnblogs.com/wuzimeimei/p/17203145.html