MyBatis在Oracle中插入数据的返回值
2017-03-31 15:30
363 查看
在使用MyBatis做持久层时,insert和update语句默认返回影响行数。可从MyBatis源码中得到证实,如下。
但很多情况下,我们希望在插入数据得到刚刚插入数据的主键。这时我们需要配置下selectKey,如下。
selectKey元素通常包含这三个属性:
1. keyProperty:selectKey语句结果应该被设置的目标属性。
2. resultType:返回的结果类型。MyBatis允许任何简单类型用作主键的类型,包括字符串。
3. order:可以被设置为BEFORE或AFTER。如果设置为BEFORE,那么它会首先生成主键、设置keyProperty后执行插入语句。如果设置为AFTER,那么先执行插入语句,然后再生成主键。
public int update(Statement statement) throws SQLException { PreparedStatement ps = (PreparedStatement) statement; ps.execute(); int rows = ps.getUpdateCount(); Object parameterObject = boundSql.getParameterObject(); KeyGenerator keyGenerator = mappedStatement.getKeyGenerator(); keyGenerator.processAfter(executor, mappedStatement, ps, parameterObject); return rows; }
但很多情况下,我们希望在插入数据得到刚刚插入数据的主键。这时我们需要配置下selectKey,如下。
<insert id="insert" parameterType="com.foo.model.TokenDO" > <selectKey resultType="java.lang.Long" keyProperty="oid" order="BEFORE"> SELECT FN_GETSEQUENCE(22) as oid FROM dual </selectKey> insert into AC.AC_FUND_TOKEN (OID, TOKEN, STATE, NUMS, CREATE_DATE, UPDATE_DATE) values (#{oid,jdbcType=BIGINT}, #{token,jdbcType=VARCHAR}, #{state,jdbcType=INTEGER}, #{nums,jdbcType=INTEGER}, sysdate, sysdate) </insert>
selectKey元素通常包含这三个属性:
1. keyProperty:selectKey语句结果应该被设置的目标属性。
2. resultType:返回的结果类型。MyBatis允许任何简单类型用作主键的类型,包括字符串。
3. order:可以被设置为BEFORE或AFTER。如果设置为BEFORE,那么它会首先生成主键、设置keyProperty后执行插入语句。如果设置为AFTER,那么先执行插入语句,然后再生成主键。
相关文章推荐
- oracle+ mybatis 插入数据时返回插入uuid
- MyBatis在Oracle中插入数据并返回主键的问题解决
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
- MyBatis在Oracle中插入数据并返回主键的问题解决
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
- MyBatis在Oracle中插入数据并返回主键的问题解决
- 【MyBatis框架点滴】——mybatis插入数据返回主键(mysql、oracle)
- MyBatis与Oracle,MySql,SqlServer插入数据返回主键方式
- MyBatis在Oracle中插入数据并返回主键的问题解决
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
- MyBatis返回插入的数据主键
- mybatis 插入时返回刚插入记录的主键值 (Oracle作为数据库)
- mybatis 插入数据时返回主键
- mybatis3.1插入oracle返回自增主键
- mybatis 插入一条数据返回相应数据ID
- jdbc:mysql和oracle插入一条数据返回主键
- MyBatis插入数据之后返回插入记录的id
- Mybatis_插入数据后返回主键ID_返回数据字段与类中字段相对应
- Mybatis+MySQL插入数据后返回主键
- MyBatis第三种方式,xml和接口的结合,以及如何获得插入数据的返回参数、传入空的参数