JdbcTemplate下访问Oracle数据库插入数据时返回序列增长的主键
2014-06-03 10:06
405 查看
最近由于 使用的是Spring下的JdbcTemplate 来操作Oracle数据库,主键使用的是序列,但是一般的query和update虽然都能执行INSERT操作语句,但是在碰到需要返回主键ID的情况下时就没办法了。然后百度和Google了很多资料,有的方法完全不行,特别是百度排前面的一些资料。可能是版本问题吧。
环境:
Spring 3.1.2
Oracle 9/10g
首先是写SQL语句:
然后最好后面不要加分号(;),碰到过加了分号反而不能运行的情况。
然后给要插入的Bean创建好并赋值:
然后执行下面的代码
上面的那个 new String[]{"TEST_ID"} 就是表示要返回的值的表的列名。JdbcTemplate 就使用你们自己的方法获取就可以了。
环境:
Spring 3.1.2
Oracle 9/10g
首先是写SQL语句:
INSERT INTO TEST (TEST_ID, TEST_NAME) VALUES (SEQ_TEST.NEXTVAL, :testName)
然后最好后面不要加分号(;),碰到过加了分号反而不能运行的情况。
然后给要插入的Bean创建好并赋值:
Test test = new Test(); test.setTestName("Test");
然后执行下面的代码
JdbcTemplate jt = *******; NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jt); GeneratedKeyHolder generatedKeyHolder = new GeneratedKeyHolder(); SqlParameterSource paramSource = new BeanPropertySqlParameterSource(test); namedParameterJdbcTemplate.update(sql, paramSource, generatedKeyHolder, new String[]{"TEST_ID"}); Number number = generatedKeyHolder.getKey(); // 返回的主键 Long id = number.longValue();
上面的那个 new String[]{"TEST_ID"} 就是表示要返回的值的表的列名。JdbcTemplate 就使用你们自己的方法获取就可以了。
相关文章推荐
- JdbcTemplate下访问Oracle数据库插入数据时返回序列增长的主键
- JdbcTemplate下访问Oracle数据库插入数据时返回序列增长的主键
- spring JdbcTemplate下访问Oracle数据库插入数据时返回序列增长的主键
- DB2 插入数据并返回自增长主键
- 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
- JDBC Insert语句插入Oracle数据库返回数据主键
- JDBC Insert语句插入Oracle数据库返回数据主键
- Web开发——如何使JDBC插入数据的时候返回自动增长的主键值
- JDBC Insert语句插入Oracle数据库返回数据主键
- 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
- ibatis插入数据后返回自增长的主键
- mysql+mybatis插入一条数据后返回主键ID
- Ibatis插入数据返回主键Id
- JDBC 插入数据返回数据主键
- mysql插入一条数据之后(ID为自动增长列),返回该条数据的ID
- jdbc:mysql和oracle插入一条数据返回主键
- mysql 插入数据失败防止自增长主键增长的方法
- mybatis与mysql插入数据返回主键
- mysql 插入数据失败防止自增长主键增长的方法
- ORACLE数据库中为每个数据表建立序列字段插入值的触发器的SQL脚本