`
- 浏览:
133883 次
- 性别:
- 来自:
北京
-
使用JdbcTemplate取得插入Oracle记录的主键值
以下内容都是引自网上其他的说法,下面的说法很容易误导人的,要获得主键,首先应该先把主键能插入,显然代码里面有显示插入主键的值,初步判断是利用了触发器,插入数据时,将事先建好的序列插入进去,关于如何利用序列插入则很简单的,再次不多说了。
所以我说明下:如果创建了触发器处理了,以下方法都没有问题。如果没有,则必须利用序列显式插入主键的值,
使用JdbcTemplate取得插入Oracle记录的主键值 在使用spring的过程中经常遇到获取插入数据的主键值,在使用jdbc时我们可能已经会使用了,但是在spring的jdbcTemplate中也有相关的方法:
第一种方法:
public int getKey1(User user){
int i = 0;
final String name = user.getUserName();
final String password = user.getPassword();
final int age = user.getAge();
KeyHolder keyHolder = new GeneratedKeyHolder();
final String sql = "insert into tb_user(user_name,password,age) values(?,?,?)";
jdbcTemplate.update(new PreparedStatementCreator(){
public PreparedStatement createPreparedStatement(Connection conn)
throws SQLException {
PreparedStatement ps = conn.prepareStatement(sql,new String[]{"user_id"});
ps.setString(1, name);
ps.setString(2, password);
ps.setInt(3, age);
return ps;
}
}, keyHolder);
i = keyHolder.getKey().intValue();
return i;
}
第二种方法:
public int getKey2(User user){
//这里withTableName("tb_user")面是 表名,usingGeneratedKeyColumns("user_id")表字段主键
SimpleJdbcInsert insertActor = new SimpleJdbcInsert(jdbcTemplate.getDataSource()).withTableName("tb_user").usingGeneratedKeyColumns("user_id");
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("user_name", user.getUserName());
parameters.put("password", user.getPassword());
parameters.put("age", user.getAge());
Number newId = insertActor.executeAndReturnKey(parameters);
return newId.intValue();
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
使用Spring的JdbcTemplate调用Oracle的存储过程
Spring JdbcTemplate调用Oracle存储过程输出游标结果集实现增删改查
SpringMvc+JdbcTemplate+oracle的小项目实例,自己也是初学java,摸索着做的一个登陆,注册小程序,带服务器和客户端验证.
Spring jdbcTemplate调用Oracle存储过程返回List集合
简单的jdbcTemplate预编译、回调等
JDBCTemplate的使用很简单 只要在ApplicationContext文件里定义一个jdbcTemplate节点 POJO获得注入后可以直接执行操作 不需要继承什么基类
JdbcTemplate使用就是JdbcTemplate的使用 再说两遍JdbcTemplate使用就JdbcTemplate的使用 20字够了
jdbcTemplate分页彻底解决,使用游标滚动jdbcTemplate分页彻底解决,使用游标滚动
1. Oracle 存储过程分页 2. Java 调用 Oracle 存储过程 3. Flex 分页
使用Spring的JdbcTemplate实现分页功能
spring mvc框架 jdbcTemplate 里面有查询,删除,修改,增加操作。 jdbcTemplate dataSOURCE
Spring的JdbcTemplate插入操作返回主键ID的方法 - - ITeye技术网站
之 常用 增删改查》,本文继续介绍 JdbcTemplate 调用数据库的存储过程,虽然 Mysql 也有存储过程,但是为了尽可能的多覆盖一点,本文选择调用 Oracle 的存储过程,其它数据库也是同理。 1)execute 方法:能执行...
本网站使用JDBC模板JDBCTemplate,和数据库连接池DBConnectionPool。我还附上了数据库的建表的截图,新手很容易上手,我使用的是oracle数据库,如果您是其他的数据库,只需要修改一下配置文件就可以了,代码不需要...
本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到MyEclipse中进行调试运行,注意默认编译器是JDK1.6。
配制Spring事务和JdbcTemplate使用 配制Spring事务和JdbcTemplate使用
Spring框架中jdbcTemplate 的使用
很基础的spring JDBCtemplate 的使用,包括不使用JDBCtemplate 和使用JDBCtemplate两种方法对比。
简单介绍如何使用Spring Boot使用JdbcTemplate与MySQL进行数据库操作