
你的意思应该是用oracle数据库的序列自动生成的主键id,那么
第一种方法:你可以在插入主键的时候用序列生成,就是为主键id赋值xxx_seqnextval,这个序列是你创建的这个table的序列
第二种方法:你可以按照楼上说的,用主键映射,当然对于mysql这种有自增主键和oracle这种用序列的需要不同的设置,楼上代码
很清楚,不做赘述。
第三种方法:有人说不用添加主键,能够自动生成,这个方法我没有尝试过,只记得在navicat
for
mysql
不写主键可以自动计算生成的,楼主可以尝试下。
那个返回值1并不是主键,而是插入数据库的记录的条数。主键是自动赋值在对象中的。
比如对象User,属性id为主键,name,age
User user = new User();
usersetName("test");
usersetAge(16);
调用mybatis的insert(user);返回值是1,该条记录的主键通过usergetId();即可获取。
在XML中使用useGeneratedKeys和keyProperty
ibatis是可以直接返回自增主键值的,mybatis是不可以的
你可以按照这种步骤得到
sqlSessioninsert(getNameSpace() + "insertDomain", domain);
int key = domaingetKey();
useGeneratedKey 设置为true, keyProperty为自增主键名称
对于支持自动生成主键的数据库(如SQL Server),可以采用以下方式
<insert id="xxx" parameterType="yyy" useGeneratedKeys="true" keyProperty="id">
</insert>
对于不支持自动生成主键(如Oracle),可以采用以下方式
<insert id="xxx" parameterType="yyy">
<selectKey keyProperty="id" resultType="long" order="BEFORE">
select my_seqnextval from dual
</selectKey>
</insert>
以上就是关于mybatis 怎么插入数据库全部的内容,包括:mybatis 怎么插入数据库、mybatis 为什么得不到返回的主键、Mybatis 怎么返回insert插入的主键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)