我正在尝试从 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/