MyBatis在Oracle中插入数据并返回主键的问题解决
2017-08-30 16:42
639 查看
引言: 在MyBatis中,希望在Oracle中插入数据之时,同时返回主键值
环境:MyBatis 3.2 ,
oracle,
spring 3.2
mybatis 中的sql语句
1)要点是这里使用了selectKey来定义返回新生成的PrimaryKey,这个情况仅仅适用于Oracle。
2)需要注意的地方是在Java代码中使用Integer类型,但是在MyBatis的映射文件中,使用java.math.BigDecimal类型,否则会报类型转换或者不匹配的错误。
3)还需要注意的是在mapper接口中不能使用@Param("")绑定传入实体参数这样会主键会绑定到新建的实体中。
其他比如MySQL或者SQLServer的情况适用于以下情况:
<insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id">
insert into ss_test(id,password) values(#{id}, #{password})
</insert>
MySQL就一般比较稳定不会出现oracle出现的各种情况。
这是比较常用的返回主键的方法。
环境:MyBatis 3.2 ,
oracle,
spring 3.2
mybatis 中的sql语句
<insert id="insertTest" parameterType="com.igool.rpc.db.model.thrift.SspTest"> <selectKey keyProperty="id" resultType="int" order="BEFORE"> select S_TEST.NEXTVAL from dual </selectKey> insert into ss_test(id,password) values(#{id}, #{password}) </insert>
1)要点是这里使用了selectKey来定义返回新生成的PrimaryKey,这个情况仅仅适用于Oracle。
2)需要注意的地方是在Java代码中使用Integer类型,但是在MyBatis的映射文件中,使用java.math.BigDecimal类型,否则会报类型转换或者不匹配的错误。
3)还需要注意的是在mapper接口中不能使用@Param("")绑定传入实体参数这样会主键会绑定到新建的实体中。
其他比如MySQL或者SQLServer的情况适用于以下情况:
<insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id">
insert into ss_test(id,password) values(#{id}, #{password})
</insert>
MySQL就一般比较稳定不会出现oracle出现的各种情况。
这是比较常用的返回主键的方法。
相关文章推荐
- MyBatis在Oracle中插入数据并返回主键的问题解决
- MyBatis在Oracle中插入数据并返回主键的问题解决
- MyBatis在Oracle中插入数据并返回主键的问题解决
- MyBatis与Oracle,MySql,SqlServer插入数据返回主键方式
- 【MyBatis框架点滴】——mybatis插入数据返回主键(mysql、oracle)
- 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
- 在基于Mybatis持久层框架,使用数据库事务时,插入一条数据后,无法返回主键ID的问题研究
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
- 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
- jdbc:mysql和oracle插入一条数据返回主键
- Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法
- Entity Framework 插入数据 解决主键非自增问题
- Mybatis+MySQL插入数据后返回主键
- Mybatis_插入数据后返回主键ID_返回数据字段与类中字段相对应
- 如何使用myBatis在数据库中插入数据并返回主键
- mybatis如何获取oracle新插入数据记录的主键?
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- Oracle插入日期数据常见的2个问题和解决方法