`

用JDBC3 插入记录返回自动生成的主键

    博客分类:
  • ORM
阅读更多

  java.sql.Connection接口提供了三个在执行插入语句后可取的自动生成的主键的方法。

1 //第一个是
2 PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throwsSQLException;  
3 其中autoGenerateKeys 有两个可选值:Statement.RETURN_GENERATED_KEYS、Statement.NO_GENERATED_KEYS       
4 //第二个是
5 PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException;
6 //第三个是
7 PreparedStatement prepareStatement(String sql, String[] columnNames)throws SQLEception;

 

01 //批量插入Person实例,返回每条插入记录的主键值
02 public int[] insert(List<Person> persons) throws SQLException{
03     String sql = "insert into test_table(name) values(?)" ;
04     int i = 0 ;
05     int rowCount = persons.size() ;
06     int[] keys = new int[rowCount] ;
07     DataSource ds = SimpleDBSource.getDB() ;
08     Connection conn = ds.getConnection() ;
09     //根据主键列名取得自动生成主键值
10     String[] columnNames= {"id"} ;
11     PreparedStatement pstmt = conn.prepareStatement(sql, columnNames) ;
12     Person p = null ;
13     for (i = 0 ; i < rowCount ; i++){
14         p = persons.get(i) ;
15         pstmt.setString(1, p.getName()) ;
16         pstmt.addBatch();
17     }
18     pstmt.executeBatch() ;
19         //取得自动生成的主键值的结果集
20     ResultSet rs = pstmt.getGeneratedKeys() ;
21     while(rs.next() && i < rowCount){
22         keys[i] = rs.getInt(1) ;
23         i++ ;
24     }
25     return keys ;
26 }

分享到:
评论

相关推荐

    jdbc 插入记录并返回自增主键值

    java 利用 jdbc 向 mysql 数据库插入记录并返回插入记录生成的主键值

    jdbc基础和参考

    hibernate不在自动生成主键值,需要你在插入时自己指明 3.hilo:高低值算法,由数据库表提供高值,程序提供低值 value = hi*(max_lo+1)+lo 4.sequences Cat: cid name color weight age ------------------------...

    好用的代码生成源码

    rapid-framework是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成...

    Java数据库编程宝典3

    7.6.2 使用具有JDBC的SELECT来返回RecordSet 7.7 基于Swing的SQL查询面板 7.7.1 View菜单 7.7.2 TableQueryFrame 7.8 JDBC代码 7.9 小结 第8章 组织查询结果和使用索引 8.1 使用ORDER BY对查询结果进行...

    Java数据库编程宝典2

    7.6.2 使用具有JDBC的SELECT来返回RecordSet 7.7 基于Swing的SQL查询面板 7.7.1 View菜单 7.7.2 TableQueryFrame 7.8 JDBC代码 7.9 小结 第8章 组织查询结果和使用索引 8.1 使用ORDER BY对查询结果进行...

    Java数据库编程宝典4

    7.6.2 使用具有JDBC的SELECT来返回RecordSet 7.7 基于Swing的SQL查询面板 7.7.1 View菜单 7.7.2 TableQueryFrame 7.8 JDBC代码 7.9 小结 第8章 组织查询结果和使用索引 8.1 使用ORDER BY对查询结果进行...

    Java数据库编程宝典1

    7.6.2 使用具有JDBC的SELECT来返回RecordSet 7.7 基于Swing的SQL查询面板 7.7.1 View菜单 7.7.2 TableQueryFrame 7.8 JDBC代码 7.9 小结 第8章 组织查询结果和使用索引 8.1 使用ORDER BY对查询结果进行...

    mybatis:mybatis源码阅读

    3.3.1版本后ExecutorType为简单,重复使用批量插入可以正确返回生成主键 密钥生成器 useGeneratedKeys为true使用Jdbc3KeyGenerator selectKey节点使用SelectKeyGenerator 拦截器 拦截器pluginAll作用于Executor,...

    Hibernate注解

    * 6.select 使用触发器生成主键(主要用于早期的数据库主键生成机制,少用) * 例:@GeneratedValue(generator = "paymentableGenerator") * @GenericGenerator(name = "paymentableGenerator", strategy = "select...

    springmybatis

    mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门...

    swing开发的数据库工具(DBAnywhere4.77),是开发mis系统的好帮手

    swing开发的数据库管理...改,查的sql语句,还可以生成对表操作的代码,支持批量表的数据导入和导出(支持blob/clob),写sql有自动提示功能,像pl/sql developer一样,还有其他功能不再多描述,是开发mis系统的好帮手.

    DBAnywhere发布4.79版本了

    主键,索引,视图,触发器,存储过程等,可以生成对表增,删,改,查的sql语句,还可以生成对表操作的代码,支持批量表的数据导入和导出(支持blob/clob),支持excel,txt文件导入导出数据库,不同数据库的表之间进行数据交换...

    swing开发的数据库工具(DBAnywhere4.76),是开发mis系统的好帮手

    这是最新的,这边附件不好...改,查的sql语句,还可以生成对表操作的代码,支持批量表的数据导入和导出(支持blob/clob),写sql有自动提示功能,像pl/sql developer一样,还有其他功能不再多描述,是开发mis系统的好帮手.

    Spring中文帮助文档

    11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert所使用的字段 11.5.4. 使用SqlParameterSource提供参数值 11.5.5. 使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall...

    Spring API

    11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert所使用的字段 11.5.4. 使用SqlParameterSource提供参数值 11.5.5. 使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall...

    Hibernate3+中文参考文档

    13.1. 批量插入(Batch inserts) 13.2. 批量更新(Batch updates) 13.3. 大批量更新/删除(Bulk update/delete) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与...

    spring-data-ebean:用于Spring数据的Ebean实现,简化了创建基于Ebean的数据访问层的开发。超简单,超强大的ORM框架,OQL,SQL,ES多查询引擎,超越JPA,Hibernate,Mybatis

    批量插入相同类型的多个实体并返回生成的密钥 更新单个现有实体-一次更新实体的所有字段 获取多对一关系(部门公司) 获取一对多关系(公司部门) 更新实体一对多关系(公司部门)-添加两项,更新两项并删除一项-...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...

    最全Hibernate 参考文档

    13.1. 批量插入(Batch inserts) 13.2. 批量更新(Batch updates) 13.3. 大批量更新/删除(Bulk update/delete) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与...

Global site tag (gtag.js) - Google Analytics