JDBC 获取自增长的主键值
Oracle中通过序列实现主键的自增长,方法如下:
--删除序列 DROP SQUENCE 序列名 --创建序列 CREATE SQUENCT 序列名 [INCREMENT BY 步长 START WITH 起始值] --使用序列 INSERT INTO emp(empno,ename,job) VALUES(序列名.nextval,张三,总裁);
MySQL中实现自增长的方式如下:
CREATE TABLE emp( empno INT(4) AUTO_INCREMENT, ename VARCHAR(10))
-
保证自增长的字段必须是主键 自增长的字段的数据类型必须是数字类型 MySQL还可以通过使用工具进行修改 通过JDBC取得自增长的方式如下:
public static boolean insertEmpAutoKey() throws SQLException {
//取得Connection对象
Connection conn = ConnectionUtil.getConnection();
//创建sql语句
String sql = "INSERT INTO emp(ename,job,sal,hiredate,mgr,comm,deptno) "
+ "VALUES(张三,总裁,9000,NOW(),null,2000,10)";
//取得发送sql语句的对象
PreparedStatement pst = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
int row = pst.executeUpdate();
ResultSet rst = pst.getGeneratedKeys();
if (rst.next()) {
System.out.println("自增长的主键是:"+rst.getInt(1));
}
rst.close();
ConnectionUtil.close(conn);
return row > 0;
}
先在取得预编译对象这一部中加入参数Statement.RETURN_GENERATED_KEYS 后通过pst.getGeneratedKeys()取得ResultSet的结果集 最后判断rst.next()后通过rst.getInt(1)获取
