JDBC获得oracle数据库主键值
在实际的应用过程中 会出现一些业务需求 插入一条记录 获得其主键值 也就是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;
}
}