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

发布了38 篇原创文章 · 获赞 8 · 访问量 3326

猜你喜欢

转载自blog.csdn.net/hcwdd/article/details/90545183
今日推荐