1. 程式人生 > >JDBC獲得數據庫表中的auto_increment類主鍵

JDBC獲得數據庫表中的auto_increment類主鍵

key meta tin connect sys dstat keys 自然 用戶

在對表進行插入數據時,如果主鍵是自增長類型,那麽我們可以不對主鍵那一列進行賦值,但是有時候,這個主鍵恰好是別的表的外鍵,那麽我們需要知道這次自增長的值,當然我們可以執行一次查詢語句,根據你插入的信息當條件,簡便方法就是在執行插入sql語句後,可以直接返回該主鍵。

package jdbc_preparement;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class text_preparestartment { public static void main(String[] args) {
// TODO Auto-generated method stub Connection con=simplecon.getConnection(); //創建JDBC連接,用封裝好的自定義類 String sql="insert into t_user values(null,?,?,null);";try { PreparedStatement ps=con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); //多一個參數,表示需要返回主鍵 ps.setString(1, "mike"); ps.setString(
2, "4399"); ps.execute(); ResultSet re=ps.getGeneratedKeys(); //返回主鍵 re.next(); int n=re.getInt(1); System.out.println("自然增長的序號為"+n); //輸出主鍵 simplecon.close(re); simplecon.close(ps); simplecon.close(con); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class simplecon { static Connection con; static Connection getConnection() { try{ con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","數據庫用戶名","數據庫密碼"); }catch(SQLException e){ e.printStackTrace(); } return con; } static void close(AutoCloseable a) { try { a.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

JDBC獲得數據庫表中的auto_increment類主鍵