JDBC插入Oracle数据库有主键的X表记录时,获取此记录的主键ID。

JDBC插入Oracle数据库有主键表的记录时,返回此记录的主键ID问题:

                                     无效的列类型: getInt not implemented for class oracle.jdbc.driver.T4CRowidAccessor

解决方法:

public int addAudit(Audit audit) throws Exception {

		conn = DBHelper.getConn();
		String sql = "insert into  SAFE_AUDIT  values (sequence_audit.nextval,?,?,?,?,?,?,?,?,?)";
		ps = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

		ps.setString(1, audit.getAudit_number());
		ps.setString(2, audit.getAudit_step());
		ps.setString(3, audit.getAudit_agent());
		ps.setString(4, audit.getAudit_dn());
		ps.setString(5, audit.getAudit_content());
		ps.setString(6, audit.getAudit_md5());
		ps.setString(7, audit.getAudit_doing());
		ps.setString(8, audit.getAudit_base());
		ps.setString(9, audit.getAudit_date());
		ps.executeUpdate();

		ResultSet res = ps.getGeneratedKeys();
		res.next();
		String rowid= res.getString(1);//获得rowid
		PreparedStatement 	ps1 =  conn.prepareStatement("select t.audit_id from  SAFE_AUDIT t where rowid = ?");
		ps1.setString(1, rowid);
		ResultSet rest2 = ps1.executeQuery();
		rest2.next();
		int audit_id=Integer.parseInt(rest2.getString(1));
		DBHelper.closeResouce(ps, conn);
		return audit_id;
	}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值