(jdbc)取得数据库自动生成的主键方法
一些类,在前面的博客中有,就不重复了
public class Test2 {
TestDAO t=new TestDAO();
/*前提是数据表的主键是自动增加的,
*取得数据库自动生成的主键
* */
@Test
public void testGetKeyValues() throws Exception{
Connection connection=null;
PreparedStatement preparedStatement=null;
try {
String sql="insert into customer(name,email,birth) values(?,?,?)";
connection=t.getConnection();
//在插入的同时获得数据的主键值
preparedStatement=connection.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS);
//开始填充值:
preparedStatement.setString(1, "jiapa");
preparedStatement.setString(2, "aiqiyi.com");
preparedStatement.setDate(3,new Date(new java.util.Date().getTime()));
//更新操作
preparedStatement.executeUpdate();
//通过一个方法返回主键值
//通过getGeneratedKeys()方法,获取了新生成的主键resultset对象
ResultSet rs=preparedStatement.getGeneratedKeys();
if(rs.next()){
System.out.println(rs.getObject(1));
}
ResultSetMetaData rsmd=(ResultSetMetaData) rs.getMetaData();
for(int i=0;i<rsmd.getColumnCount();i++){
System.out.println(rsmd.getColumnName(i+1)+":"
+rs.getObject(rsmd.getColumnName(i+1)));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
t.close(connection, preparedStatement, null);
}
}
}