从MySQL获取最后一个ID

时间:2016-04-20 15:21:09

标签: 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,因为我在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();
            }

        }
}

2 个答案:

答案 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