下面的脚本教您如何获得自动增长的MySQL主键,如果您对MySQL主键方面感兴趣的话,不妨一看,相信对您学习MySQL主键方面会有所启迪 。
- import java.sql.*;
-
- public class GetKey {
- ResultSet rs = null;
- Connection conn = null;
- Statement stmt = null;
-
- // 加入同一个连接发生其他查询,Key会被重写所以不准确
- public void getId() {
- try {
- getConnect gc = new getConnect();
- conn = gc.getconn();
- Statement stmt = conn.createStatement();
- stmt.executeUpdate("insert into tb (name) values (Key)");
- rs = stmt.executeQuery("SELECT LAST_INSERT_ID()");
- int autoIncKeyFromFunc = -1;
- if (rs.next()) {
- autoIncKeyFromFunc = rs.getInt(1);
- System.out.println("autoIncKeyFromFunc: " + autoIncKeyFromFunc);
- }
- } catch (Exception e) {
- System.out.print("有异常发生!");
- }
- }
-
- // getGeneratedKeys()是每次创建一个Statement 实例,所以是安全的!
- public void getId_() {
- try {
- getConnect gc = new getConnect();
- conn = gc.getconn();
- stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
- java.sql.ResultSet.CONCUR_UPDATABLE);
- stmt.executeUpdate("insert into tb (name) values (x)");
- int autoIncKeyFromApi = -1;
- rs = stmt.getGeneratedKeys();
- if (rs.next()) {
- autoIncKeyFromApi = rs.getInt(1);
- System.out.println("Key returned from getGeneratedKeys():"
- + autoIncKeyFromApi);
- }
- } catch (Exception e) {
- System.out.print("有异常发生!");
- }
- }
-
- public static void main(String[] args) {
- GetKey get = new GetKey();
- get.getId();
- get.getId_();
- }
- }