jdbc新增记录后获取主键的方法
来源:互联网 发布:tv霸网络电视 编辑:程序博客网 时间:2024/05/16 23:35
JDBC插入数据库获得主键的方式,目前我总结出两种 1.适用于自动增长列的数据库(如sql-server,mysql)/** * 插入数据获得主键 * @param annex * @return */ public long save2(Annex annex){ long annexId = 0; //获得连接 Connection con = ProxoolManager.getConnection(); String insertSQL = "insert into annex values (?,?,sysdate,?,?,?)"; PreparedStatement pstmt = null; ResultSet rs = null; try{ pstmt = con.prepareStatement(insertSQL,Statement.RETURN_GENERATED_KEYS) ; pstmt.setInt(1, 1); pstmt.setString(2, annex.getAnnexName()); pstmt.setString(3, annex.getAnnexFormat()); pstmt.setString(4, DefineUtil.getFilePath()+File.separator+annex.getFileName()+"."+annex.getAnnexFormat()); pstmt.setInt(5, 1); //将数据保存到数据库 pstmt.executeUpdate(); //获得主键 rs=pstmt.getGeneratedKeys(); if(rs.next()){ System.out.println(rs.getString(1)); annexId = rs.getLong(1); } }catch(SQLException ex){ ex.printStackTrace(); } return annexId; } 如果用ORACLE数据库使用上所述方法,获得的将是ROW_ID,并不是我们真正想要的主键值 2.适合Oracle数据库的方法/** * 插入数据获得主键 * @param annex * @return */ public long save3(Annex annex){ long annexId = 0; //获得连接 Connection con = ProxoolManager.getConnection(); String insertSQL = "BEGIN insert into annex (ANNEX_NAME,ANNEX_CREATTIME,ANNEX_FORMAT,ANNEX_PATH,ADVUSER_ID) values (?,sysdate,?,?,?) returning ANNEX_ID into ?; END;"; try { CallableStatement call = con.prepareCall(insertSQL); call.setString(1, annex.getAnnexName()); call.setString(2, annex.getAnnexFormat()); call.setString(3, DefineUtil.getFilePath()+File.separator+annex.getFileName()+"."+annex.getAnnexFormat()); call.setInt(4, 1); call.registerOutParameter(5, OracleTypes.NUMBER); call.execute(); annexId = call.getInt(5); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return annexId; } CallableStatement 主要用来执行存储过程,可获得存储过程的输出值 既然是存储过程,SQL语句中,一定不能缺少BEGIN END,(一定不能少) call.registerOutParameter(5, OracleTypes.NUMBER); 设置输出标引位置,以及输出类型作者“wuzhengxuan”
转载于http://www.2cto.com/database/201109/103989.html
0 0
- jdbc新增记录后获取主键的方法
- JDBC获取新增记录的自增主键
- JDBC新增记录获取主键的方式总结
- JDBC获取新增记录的自增主键
- JDBC获取新增记录的自增主键
- JDBC获取新增记录的自增主键
- JDBC获取新增记录的自增主键
- JDBC( 八) 获取插入记录的主键。
- 其实iBatis可以在调用新增记录的方法后 返回主键值 (Oracle,Sql Server,Mysql)
- 使用JDBC获取插入记录的自增主键值
- jdbc 插入记录后返回主键
- Spring JDBC 新增记录返回自增主键(实例)
- ibatis配置(mysql数据库) 新增一条记录后,返回自动增长的主键id
- python插入记录后取得主键id的方法
- python插入记录后取得主键id的方法
- VS2005中获取新增记录的ID方法总结
- ASP获取新增记录ID值的方法
- mybatis新增数据,数据VO获取db记录主键
- poj 1236 Kosaraju 强连通
- 汉化wordpress
- win7 32位平台下office 2007安装容易出现的问题
- WAMP整合tomcat
- ScriptManager , UpdatePanel ContentPanel 理解
- jdbc新增记录后获取主键的方法
- UVA 10474Where is the Marble?(n在排完序队列的第几个位置)
- JAVA可视化界面开发插件Matisse
- 基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成
- 系统调用open()为什么有O_APPEND,O_CREAT选项
- 基于CXF的WebService实例
- 关于Service深刻了解
- The user specified as a definer ('XXXXX'@'%') does not exist
- 撒的发生的广东省房的所发生的