JDBC 获取自增长的主键值

    xiaoxiao2023-10-08  147

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

    最新回复(0)