我试图从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,因为我在admin表中有一个ID。
这是我得到的输出
0
null
感谢。
的DatabaseConnection
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();
}
}
}
答案 0 :(得分:0)
你无法获得最后一次插入,但你可以获得最大的(我认为你需要的):
Select max(id) as adminID from admin
在哪里' id'将替换为您要获取的列的名称
您通常使用增加的ID,因此您插入的最后一个ID是最大的。
答案 1 :(得分:0)
您可以使用函数mysql_insert_id()。看一下这个文档:
http://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html