JDBC获得oracle数据库主键值

2019-02-17 01:49:37来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

 

在实际的应用过程中 会出现一些业务需求 插入一条记录 获得其主键值 也就是oracle中的序列

在JdbcTemplate 模板类中 可以定义一个方法 执行插入数据(insert)语句 之后 返回主键值

 

public class JdbcTemplate {

 private Connection conn; //连接对象

private PreparedStatement ps;//预编译语句对象

private ResultSet rs; //结果集对象

 

public int insertGetKey(String sql,Object[] par,String[] keyname){ 

//第一个参数 执行的sql语句,第二个参数sql语句需要的参数数组,第三个要查询的主键值的列名数组
try {
conn=DBUtil.getConnection(); //获得连接对象
ps=conn.prepareStatement(sql,keyname);

//第一个参数sql语句 第二个string数组中存放要获取主键值的列名

if(par!=null){  //sql参数数组不为null
    for(int i=0;i<par.length;i++){          
    if(par[i] instanceof Date){              
     Date d=(Date)par[i];  
   ps.setTimestamp(i+1, new Timestamp(d.getTime()));  //日期类型特殊 处理
  }else{
   ps.setObject(i+1, par[i]);   //设置参数
      }
   }
}
ps.executeUpdate(); //执行sql语句
rs=ps.getGeneratedKeys(); //返回主键值的结果集


if(rs.next()){
return rs.getInt(1);  //返回主键值
}


} catch (SQLException e) {
e.printStackTrace(); //异常处理
   }finally{
DBUtil.close(conn, rs, ps); //释放资源
   }
return 0;
 }

 }

 

 

 

 


原文链接:https://www.cnblogs.com/java888/p/10370463.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java中食之无味弃之可惜的数组

下一篇:Java PDF页面设置——页面大小、页边距、纸张方向、页面旋转