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)获取

经验分享 程序员 微信小程序 职场和发展