JDBC新增记录获取主键的方式总结
2011-02-23 11:02
465 查看
在HIBERNATE中,我们直接session.save(obj)然后直接可以拿到obj的主键。JDBC接口中没有这样的功能。我们就要用一些特殊的方式。
1. 采用HIBERNATE SEQ的保存,先获取当前最大的SEQUENCE增量,然后作为保存记录的方式。
2. 当每张表是自增主键的时候,比如MYSQL表的方式。这样我们就可以采用Statement的接口。
代码如下:
1. 采用HIBERNATE SEQ的保存,先获取当前最大的SEQUENCE增量,然后作为保存记录的方式。
2. 当每张表是自增主键的时候,比如MYSQL表的方式。这样我们就可以采用Statement的接口。
代码如下:
/** * 添加一个供应商 * @param supplierVO SupplierVO * @return int */ public int addSupplier(SupplierVO supplierVO) { int flag = 0; //默认失败 this.checkConn(); StringBuffer sbqInsertSql = new StringBuffer(); sbqInsertSql.append("insert into df_supplier (supplier_account,supplier_name,supplier_password,company_name,create_time,site_id )"); sbqInsertSql.append(" values "); sbqInsertSql.append(" (?,?,?,?,?,?) "); try { PreparedStatement pstmt = this.connection.prepareStatement( sbqInsertSql.toString(), Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, supplierVO.getSupplierAccount()); pstmt.setString(2, supplierVO.getSupplierName()); String md5SupplierPassword = ""; String supplierPassword = supplierVO.getSupplierPassword(); if (supplierPassword == null || "".equals(supplierPassword)) { md5SupplierPassword = new MD5().toMD5("888888"); } else {md5SupplierPassword = new MD5().toMD5(supplierPassword); } pstmt.setString(3, md5SupplierPassword); pstmt.setString(4, supplierVO.getCompanyName()); Date date1 = new Date(); pstmt.setDate(5, new java.sql.Date(date1.getTime())); pstmt.setString(6, supplierVO.getSiteId()); flag = pstmt.executeUpdate(); ResultSet rs = pstmt.getGeneratedKeys(); //设置回主键 if (rs.next()) { supplierVO.setSupplierId(Long.valueOf(String.valueOf(rs.getLong( 1)))); } rs.close();rs=null; pstmt.close(); pstmt = null; } catch (SQLException ex) { ex.printStackTrace(); } finally { this.releaseConn(); } return flag; }
相关文章推荐
- jdbc新增记录后获取主键的方法
- 初学JDBC,获取插入记录的主键、执行批量操作
- JDBC插入Oracle数据库有主键的X表记录时,获取此记录的主键ID。
- mysql数据库插入数据获取自增主键的三种方式(jdbc PreparedStatement方式、mybatis useGeneratedKeys方式、mybatis selectKey方式)
- JDBC获取新增记录的自增主键
- 初学JDBC,获取插入记录的主键、执行批量操作
- mybatis新增数据,数据VO获取db记录主键
- JDBC_获取插入记录的主键值
- JDBC_获取插入记录的主键值(基于MySQL数据库)
- VS2005中获取新增记录的ID方法总结
- Mybatis基于注解的方式获取新增记录的自增长id
- JDBC:元数据 && 获取插入记录的主键值 && _JDBC_处理 Blob
- 使用Spring JDBC新增记录如何返回自增主键值
- JDBC获取新增记录的自增主键
- JDBC获取新增记录的自增主键
- JDBC获取SQL查询语句返回记录数的三种方式效率比较
- JDBC获取SQL查询语句返回记录数的三种方式效率比较
- <转载>OleDb操作Access数据库:新增记录时获取自动编号的主键值
- JDBC获取新增记录的自增主键
- JDBC( 八) 获取插入记录的主键。