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