今天使用Mybatis时,把数据库切换成Oracle,以前都是DB2和Mysql。
本来以为改个配置文件就没问题了,
结果发现Oracle中建表的的主键自增不能像DB2和Mysql一样来个Identity自增。
Oracle自增必须得配一个sequence。
造成了配置文件修改。
插入操作
对于自增主键的表,插入可以不配置插入的主键列。否则是必须的。
获取主键
插入语句之前配置:主要是针对Sequence主键而言,插入前必须指定一个主键值给要插入的记录。Oracle、DB2亦如此,方法是在插入语句标签<insert....>之前配置上:
<insert id="AltName.insert" parameterType="AltName">
<selectKey resultType="long" keyProperty="id">
SELECT SEQ_TEST.NEXTVAL FROM DUAL
</selectKey>
insert into
altname(primaryName,alternateName,type)values(#{primaryName},#{alternateName},#{type})
</insert>
插入语句之后配置:蛀牙是针对自增主键的表而言,这类表在插入时不需要主键,而是在插入过程自动获取一个自增的主键。比如MySQL
<insert id="AltName.insert" parameterType="AltName">
<selectKey resultType="long" keyProperty="id">
SELECT LAST_INSERT_ID()
</selectKey>
insert into
altname(primaryName,alternateName,type)values(#{primaryName},#{alternateName},#{type})
</insert>
当然,是否需要配置<selectKey>根据情况,只要能保证记录有主键即可。一旦配置了<selectKey>,就可以在执行插入操作时获取到新增记录的主键。
注意:如果没有配置<selectKey>那么保存后的对象的主键依旧为null.
分享到:
相关推荐
主要介绍了mybatis insert返回主键代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了 Mybatis返回插入主键id的方法,在文章底部给大家补充了Mybatis中insert中返回主键ID的方法,非常不错,需要的朋友可以参考下
按照mp的官网介绍,使用mp的insert方法,对于自增的数据库表,mp会把主键写入回实例的对应属性。但实际操作起来,却没有主键。 entity 类设置如下: @TableName(value = "USERINFO") public class UserInfo { /**...
主要介绍了MyBatis在insert插入操作时返回主键ID的配置的相关资料,需要的朋友可以参考下
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数。这篇文章主要介绍了MyBatis中insert操作返回主键的方法,需要的朋友可以参考下
主要介绍了Mybatis批量插入数据返回主键的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
spring-boot+tk.mybatis通用mapper
主要介绍了详解Java MyBatis 插入数据库返回主键,有兴趣的可以了解一下。
MyBatis Generator, How To Generate KeyColumn And KeyProperty Attributes 配置: 生成后Insert: <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="---" useGeneratedKeys="true...
主要介绍了Mybatis 中的insertOrUpdate操作,代码简单易懂,非常不错需要的的朋友参考下
Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'); 到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用...
Mybatis自定义插件生成...通过拦截器拦截Mybatis的insert语句,通过自定义注解获取到主键,并为该主键赋值雪花ID,插入数据库中。 2、技术架构 项目总体技术选型 SpringBoot2.1.7 + Mybatis + Maven3.5.4 + Mysql + lom
Mybatis插入数据返回自增主键 Mybatis插入数据以后只会返回影响的数据库行数,如果是插入一条数据成功则返回1,失败返回零,插入多条返回插入成功的数量。 通过注解或者xml配置无法直接返回自增的主键。Mybatis插入...
主要介绍了使用mybatis-plus的insert方法遇到的问题及解决方法(添加时id值不存在异常),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
本文给大家分享MyBatis批量插入(insert)数据操作知识,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
支持自动增加的数据库 例如,MySQL,使用 useGeneratedKeys="true...<insert id="insertStudent" parameterType="Student" useGeneratedKeys="true"> insert into stu_tbl(name,age) values(#{name},#{age}) </insert>
主要给大家介绍了关于mybatis插入与批量插入返回ID的原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mybatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
IntelliJ IDEA 集成Mybatis插件,insert、update、query生成 主键查询生成XXXById
这里需要说明一点,如果要操作的表没有主键字段,则生成的xml中只有insert,没有select、update、delete,因为这三种操作都与主键有关,如deleteByPrimaryKey(Long id)、selectByPrimaryKey(Long id)、...