返回主键的通用的插入方法

插入一条数据,并返回该数据的主键值

/**
  * @param connection:数据库连接
  * @param sql:SQL插入语句
  * @param args:填充占位符的可变参数
  * @return
  * @throws SQLException
  */
 private Long getGeneratedKeys(Connection connection,String sql,Object ...args) throws SQLException{
	  Long generatedKeys = null;
	  PreparedStatement preparedStatement = null;
	  ResultSet resultSet = null;
	  try {
	  	//调用重载的 preparedStatement(sql,flag) 来生成 preparedStatement 对象
	  	preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
	   	//填充 sql 语句中的占位符
	  	for(int i = 0;i < args.length;i++){
	    		preparedStatement.setObject(i+1, args[i]);
	   	}
	     	//执行查询操作
   		preparedStatement.executeUpdate();
   		//获取自动生成的主键值
   		resultSet = preparedStatement.getGeneratedKeys();
   	  	if(resultSet.next()){
    			generatedKeys = (Long) resultSet.getObject(1);
   		}
  	   } catch (Exception e) {
   		e.printStackTrace();
  	   } finally{
  	   	//关闭资源
   		JDBCTools.release(resultSet, preparedStatement, null);
  	   }
      		return generatedKeys;
 }

测试类

 @Test
 public void testGetKeyValue(){
	  Connection connection = null;
	  try {
	   	connection = JDBCTools.getConnection();
	  	String sql = "INSERT INTO customers(name,address,phone) "
	     		    + "VALUES(?,?,?)";
	  	//插入数据并返回主键
	   	Long result = getGeneratedKeys(connection, sql,"Linda","CHA","13888888888");
	   	System.out.println(result);
	  } catch (Exception e) {
	   	e.printStackTrace();
	  } finally{
	   	JDBCTools.release(null, null, connection);
	  }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值