从 MySQL 获取最后一个 ID

Get last id from MySQL

我正在尝试从 MySQL 获取最后一个 ID 并将该值分配给字符串 a。

我有一个带有 adminID 列的 table admin

 adminAPI api= new adminAPI();
                 try {
                    String id= api.selectLastID();
                    System.out.println(id);
                } catch (Exception e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

adminAPI

public String selectLastID() throws Exception  
    {
    String a;
    String sql="Select last_insert_id() as adminID from admin";
    DatabaseConnection db = new DatabaseConnection();
    Connection  conn =db.getConnection();
    PreparedStatement  ps = conn.prepareStatement(sql);
     ResultSet rs = ps.executeQuery();
     while(rs.next()) 
     {  
          a= rs.getString("adminID");
         System.out.println(a);
     }
     ps.close();
     rs.close();
     conn.close();
     return null ;
 }

我想得到 1,因为我在管理员中有一个 ID table。

这是我得到的输出

0
null

谢谢。

数据库连接

package database;
import java.sql.Connection;
import java.sql.DriverManager;

public class DatabaseConnection {
     String driver;
     String dbName;
     String connectionURL;

     String username;
     String password;
     public DatabaseConnection()
     {
         driver = "com.mysql.jdbc.Driver";
         connectionURL = "jdbc:mysql://localhost/";
         dbName = "user";
         username = "root";
         password = "";
     }

     public Connection getConnection() throws Exception {

          Class.forName(driver);
          Connection connection = DriverManager.getConnection(connectionURL+dbName,username,password);

          return connection;
     }

     public static void main(String[] args) {
         DatabaseConnection db = new DatabaseConnection();
            try {
                Connection conn = db.getConnection();
                System.out.println("Database successfully connected!");
                conn.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
}

你不能获取最后插入的,但你可以获取最大的(我认为是你需要的):

Select max(columnId) as adminID from admin

其中 'id' 替换为您要获取的列的名称

您通常使用递增的id,所以您最后插入的id是最大的。

您可以使用函数 mysql_insert_id()。看看这个文档:

http://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html