java - 从 MySQL 获取最后一个 id

标签 java mysql last-insert-id

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

我有一个带有 adminID 列的表 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。

这是我得到的输出

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 是最大的。

关于java - 从 MySQL 获取最后一个 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36748346/

相关文章:

带有 IN 子句和 LIMIT 的 PHP PDO

php - 使用 select last_insert_id() from php 不工作

php - 如何在 mysql-php 中检索所有最后插入的行 ID?

java - 如何为启用 HA 的集群配置 SparkContext

java - 为什么builder应该是静态内部类?

java.lang.ClassCastException : android. widget.RelativeLayout$LayoutParams 无法转换为 android.widget.FrameLayout$LayoutParams

php - 为什么有些图片不渲染

php - 如何加入两个大查询?

mysql - 如何在一个客户端上有多个用户的 MySql 中保证并返回唯一 ID

java - JSoup 按 id 提取文本