16

mysql_insert_id(); のような mysql コマンドを取得しようとしています。最後に挿入された行の auto_increment ID を取得します。Javaで取得するにはどうすればよいですか?

rs = st.executeQuery("select last_insert_id() from schedule");
lastid = rs.getString("last_insert_id()");

私のlastidはINTとして宣言されました。rs.get とパラメーターで何を使用するかはわかりません。

4

6 に答える 6

29

JDBC を使用すると、Connection.PreparedStatement(query, int)メソッドを使用できます。

PreparedStatement pstmt = conn.prepareStatement(Query, Statement.RETURN_GENERATED_KEYS);  
pstmt.executeUpdate();  
ResultSet keys = pstmt.getGeneratedKeys();    
keys.next();  
key = keys.getInt(1);
于 2013-01-05T10:04:54.490 に答える
25

エイリアスを使用してみる

rs = st.executeQuery("select last_insert_id() as last_id from schedule");
lastid = rs.getString("last_id");
于 2013-01-05T10:00:13.500 に答える
3

なぜだめですか

SELECT MAX(id) FROM schedule

id 列の名前が と異なる場合idは、上記のクエリでそれに応じて置き換える必要があります。

次のように使用できます。

rs = st.executeQuery("SELECT MAX(id) AS id FROM schedule");
int lastid = rs.getInt("id");
于 2013-01-05T10:01:09.013 に答える