Я пытаюсь получить последний идентификатор из MySQL и присвоить значение строке a.Получить последний id из MySQL
У меня есть таблица admin
с колонкой adminID.
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, так как у меня есть один идентификатор в таблице администратора.
Вот вывод я получаю
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();
}
}
}
'выберите last_insert_id(), как adminID' достаточно. Но last_insert_id() дает вам последний вставленный идентификатор. В вашем случае вы уже вставили его? last_insert_id() следует вызывать сразу после вставки. Если вы его не вставили, вы получите 0. – Tin
@Tin Я хочу получить последний идентификатор от MySQL. Использую ли я неправильный метод? (last_insert_id()) –
Вы используете правильный метод, но для того, чтобы получить последний id. Сначала вы должны вставить что-то. last_insert_id() НЕ дает вам следующий идентификатор автоматического увеличения. last_insert_id дает вам то, что вы вставляете в последнее время. В вашем случае вы должны вставить таблицу администратора без указания идентификатора. Затем, если вы хотите получить admin id, вы используете last_insert_id для получения последнего вставленного id. – Tin