欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JDBC获得oracle数据库主键值

程序员文章站 2022-05-14 09:49:42
在实际的应用过程中 会出现一些业务需求 插入一条记录 获得其主键值 也就是oracle中的序列 在JdbcTemplate 模板类中 可以定义一个方法 执行非查询语句(增删改) 之后 返回主键值 public class JdbcTemplate { private Connection conn; ......

 

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

在jdbctemplate 模板类中 可以定义一个方法 执行非查询语句(增删改) 之后 返回主键值

public class jdbctemplate {

 private connection conn; //连接对象

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

private resultset rs; //结果集对象

 

public int notquerygetkey(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;
 }

 }