技术中心

这里象征着我们的态度和能力

>JDBC获取新增记录的自增主键
发布者:中国IT实验室    信息来源:中国IT实验室    发布时间:2012-01-09      浏览次数:5775
分享到:

新浪微博

腾讯微博

QQ空间

豆瓣网

QQ好友

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  常常在使用Hibernate、iBatis时候,当插入一条数据的时候,实体Bean的原空主键就赋上新值了。

  在JDBC中,也可以通过变相的手法来做到这点。下面是个测试的小例子。

  一、环境

  MySQL5.1

  mysql-connector-java-5.1.10

  jdk1.5

  CREATE TABLE book(

  code bigint(20) unsigned NOT NULL AUTO_INCREMENT,

  kind varchar(45) NOT NULL,

  name varchar(45) NOT NULL,

  PRIMARY KEY(code, kind)

  ) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = latin1

  二、获取自增主键

  import lavasoft.common.DBToolkit;

  import java.sql.*;

  /**

  * JDBC获取新增记录的主键

  *

  * @author leizhimin 2009-12-4 13:20:15

  */

  public class InsertKeyTest {

  public static void main(String[] args) {

  insertWithStaticSQL();

  insertWithParperedSQL();

  }

  /**

  * 预定义SQL模式,获取新增记录的主键

  */

  public static void insertWithParperedSQL() {

  Connection conn = null;

  try {

  conn = DBToolkit.getConnection();

  String sql = "insert into testdb.user (name, pswd) values(?,?)";

  PreparedStatement pstmt = conn.prepareStatement(sql, Statement.NO_GENERATED_KEYS);

  pstmt.setString(1, "laozhang");

  pstmt.setString(2, "111111");

  pstmt.executeUpdate();

  //检索由于执行此 Statement 对象而创建的所有自动生成的键

  ResultSet rs = pstmt.getGeneratedKeys();

  if (rs.next()) {

  //知其仅有一列,故获取第一列

  Long id = rs.getLong(1);

  System.out.println("-----预定义SQL模式-----id = " + id);

  }

[1] [2] 下一页

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730