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