`
zfcejb
  • 浏览: 20404 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java调用过程传递数组

阅读更多
①转换数据库连接
②根据连接创建BOOKFAILED_ARRAY数组描述
③将传入的arrDelBook参数利用创建的数组描述,描述为数据库识别的数组
④创建CallableStatement接口
⑤将数组传入接口,并注册返回类型

public int delBookFailedHistory(final String[] arrDelBook){
	//2.调用过程
	int num = (Integer) this.getJdbcTemplate().execute(
	new CallableStatementCreator() {
		public CallableStatement createCallableStatement(
				Connection con) throws SQLException {
			//将连接还原成jdbc连接,不还原报jdbc连接不匹配
			con=con.getMetaData().getConnection();
			ArrayDescriptor ad = ArrayDescriptor.createDescriptor("BOOKFAILED_ARRAY",con);
			ARRAY array = new ARRAY(ad, con, arrDelBook);
			String storedProc = "{call JUSTONE4.P_DELETE_BOOK_FAILED_HISTORY(?,?)}";
			CallableStatement cs = con.prepareCall(storedProc);
			cs.setArray(1,array);
			cs.registerOutParameter(2, OracleTypes.INTEGER);
			return cs;
		}
	}, new CallableStatementCallback() {
		public Object doInCallableStatement(CallableStatement cs)
				throws SQLException, DataAccessException {
			cs.execute();
			int relut=cs.getInt(2);
			return relut;
		}
	});
	return num;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics