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
: 爬文跟自己做都想不出這邊要怎麼寫
: 想來請求一下指點 如何能得到剛剛新增/修改那筆資料的id呢?
http://www.freshblurbs.com/jdbc-get-last-inserts-id
不過, 與其自己弄, 我建議你直接去用 Hibernate 等的 ORM
tools, 你現在的做法, 一來把 persistence 的 logic 入侵
了 model, 二來設計上要顧及的東西太多了, 倒不如直接用人
家的 proven solution.
不然, 至少把 persistence 層弄個 DAO 吧. 犯不著一定要
create obj 就在 constructor 直接在 DB 生成 record...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.238.156.185
推
09/28 22:22, , 1F
09/28 22:22, 1F
→
09/28 22:25, , 2F
09/28 22:25, 2F
推
09/29 06:59, , 3F
09/29 06:59, 3F
推
09/29 09:45, , 4F
09/29 09:45, 4F
→
09/30 23:42, , 5F
09/30 23:42, 5F
→
09/30 23:45, , 6F
09/30 23:45, 6F
討論串 (同標題文章)