Re: [問題] 如何抓到剛存入資料庫的那筆ID
※ 引述《catjimmy (cat)》之銘言:
: 因為想要寫個物件導向式的類別來做資料庫的存取
: 例如說 學生資料庫 students 在java的類別就叫做 student
: 資料表有兩個欄位id(PK,AI) name(VARCHAR)
: 我希望能做這樣的功能
: private static int id;
: private static String name;
: public student(String name){
: this.name = name;
: // 在student資料庫新增一筆name欄位的資料
: PreparedStatement ps = conn.prepareStatement("INSERT INTO students
: (name,
: create_at, update_at)
: VALUES
: (?,
: CURRENT_TIMESTAMP(),
: CURRENT_TIMESTAMP())");
: ps.setString(1, name);
: ps.excuteUpdate();
^^^^^^^^^^^^^^^^^^
: }
: 以上是新增一筆資料的部份,更新的部分雷同只是sql修改成update的語法因此不多
: 佔版面,希望是在這筆資料新增後能得到剛剛寫入或更新的這筆資料的id
更新會是問題嗎? 當然,如果你敢靠 name 去 update...
新增的話,有個東西叫做 getGeneratedKeys()
至於這種東西有沒有實質效果... 你去問 JDBC driver [炸]
當然,請不要忘記搭配另外一種格式的 ps.executeUpdate(),以確保成效
: 爬文跟自己做都想不出這邊要怎麼寫
: 想來請求一下指點 如何能得到剛剛新增/修改那筆資料的id呢?
這種東西,爬文還不如爬 document
Database 層級的 support,或是不可靠的 JDBC support
真的要自己想,那我會去找 Java 裡頭有種東西叫做 UUID
應該沒人規定 PK 一定得靠 Database 產生...
--
錢鍾書: 說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.0.25
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):