作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] 如何抓到刚存入资料库的那笔ID
时间Wed Sep 28 17:36:14 2011
※ 引述《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