今天在使用MysqL时却不知如何处理,插入记录后不知怎样获得刚刚插入的id,查过文档后发现了select last_insert_id(),在插入之后执行此查询,即可获得自增id,喜出望外。
可用到自己的程序中之后却得不到想要的结果,于是就怀疑到了Spring头上,因为通过基本JDBC测试是没有任何问题的,所以就去跟踪Spring JDBC,看过源码之后才豁然开朗,原来Spring中如此获得数据库Connection的:Connection使用数据库的自增主键
int executeUpdate(String sql,int autoGeneratedKeys)
也可以通过Connection创建绑定自增值的PreparedStatement:
PreparedStatement prepareStatement(String sql,int autoGeneratedKeys)
<DIV style="BACKGROUND-COLOR: rgb(102,255,255)"><SPAN style="COLOR: rgb(0,0)">Statement stmt <SPAN style="COLOR: rgb(0,0)">= <SPAN style="COLOR: rgb(0,0)">conn.createStatement(); String sql <SPAN style="COLOR: rgb(0,0)">"<SPAN style="COLOR: rgb(0,0)">INSERT INTO t_topic(topic_title,user_id) VALUES(‘测试主题','123') <SPAN style="COLOR: rgb(0,0)">; stmt.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS); ①指定绑定表自增主键值 ResultSet rs <SPAN style="COLOR: rgb(0,0)">stmt.getGeneratedKeys(); <SPAN style="COLOR: rgb(0,0)">if <SPAN style="COLOR: rgb(0,0)">( rs.next() ) { <SPAN style="COLOR: rgb(0,0)">int <SPAN style="COLOR: rgb(0,0)">key <SPAN style="COLOR: rgb(0,0)">rs.getInt();②获取对应的表自增主键值 }