zoukankan      html  css  js  c++  java
  • 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;
     }
    
     }

     

  • 相关阅读:
    检查点(Checkpoint)过程如何处理未提交的事务
    SQL Server代理(4/12):配置数据库邮件
    SQL Server代理(3/12):代理警报和操作员
    hash_multimap
    hash_map
    hash_multiset
    hash_set
    hash 函数
    pair
    multimap
  • 原文地址:https://www.cnblogs.com/java888/p/10370463.html
Copyright © 2011-2022 走看看