JDBC 3.0 增加了自动获得数据库自动字段的功能,比如MySQL的autoincreament , SQL Server 的 Identity 等
//
第一步,加上参数创建Statement
PreparedStatement pstat = con.prepareStatement(
" insert into t_method (Class_Id,Name,Detail,Version_From,define) values (?,?,?,?,?) " , Statement.RETURN_GENERATED_KEYS);
// 执行更新操作
pstat.executeUpdate();
// 第二步,获取生成的主键
rs = pstat.getGeneratedKeys();
rs.next();
// 第三步,读取
String key = rs.getString( 1 ); // 也可以rs.getString("ID") 来获得
PreparedStatement pstat = con.prepareStatement(
" insert into t_method (Class_Id,Name,Detail,Version_From,define) values (?,?,?,?,?) " , Statement.RETURN_GENERATED_KEYS);
// 执行更新操作
pstat.executeUpdate();
// 第二步,获取生成的主键
rs = pstat.getGeneratedKeys();
rs.next();
// 第三步,读取
String key = rs.getString( 1 ); // 也可以rs.getString("ID") 来获得
static final int RETURN_GENERATED_KEYS
该常量指示生成的键应该可用于获取。
该常量指示生成的键应该可用于获取。
ResultSet getGeneratedKeys() throws SQLException
获取由于执行此 Statement 对象而创建的所有自动生成的键。如果此 Statement 对象没有生成任何键,则返回空的 ResultSet 对象。
注:如果未指定表示自动生成键的列,则 JDBC 驱动程序实现将确定最能表示自动生成键的列。
返回:
包含通过执行此 Statement 对象自动生成的键的 ResultSet 对象
获取由于执行此 Statement 对象而创建的所有自动生成的键。如果此 Statement 对象没有生成任何键,则返回空的 ResultSet 对象。
注:如果未指定表示自动生成键的列,则 JDBC 驱动程序实现将确定最能表示自动生成键的列。
返回:
包含通过执行此 Statement 对象自动生成的键的 ResultSet 对象