手册目录
概述
框架核心(Core)
配置体系(Configuration
持久化(Persistence)
服务(Serv)
验证(Validation)
针对于存储过程,JDBC模块提供了IProcedureOperator操作器接口及其默认接口实现类DefaultProcedureOperator来帮助你完成,存储过程有以下几种调用方式,举例说明:
有输入参数无输出参数:
IConnectionHolder _conn = JDBC.get().getDefaultConnectionHolder();
try {
// 执行名称为`procedure_name`的存储过程,并向该存储过程转入两个字符串参数
IProcedureOperator<Object[]> _opt = new DefaultProcedureOperator<Object[]>("procedure_name", _conn)
.addParameter("param1")
.addParameter("param2")
.execute(IResultSetHandler.ARRAY);
// 遍历结果集集合
for (List<Object[]> _item : _opt.getResultSets()) {
ResultSetHelper.bind(_item).forEach(new ResultSetHelper.ItemHandler() {
public boolean handle(ResultSetHelper.ItemWrapper wrapper, int row) throws Exception {
System.out.println(wrapper.toObject(new ArchiveVObject()).toJSON());
return true;
}
});
}
} finally {
_conn.release();
}有输入输出参数:
IConnectionHolder _conn = JDBC.get().getDefaultConnectionHolder();
try {
// 通过addOutParameter方法按存储过程输出参数顺序指定JDBC参数类型
new DefaultProcedureOperator("procedure_name", _conn)
.addParameter("param1")
.addParameter("param2")
.addOutParameter(Types.VARCHAR)
.execute(new IProcedureOperator.IOutResultProcessor() {
public void process(int idx, int paramType, Object result) throws Exception {
System.out.println(result);
}
});
} finally {
_conn.release();
}另一种写法:
JDBC.get().openSession(new ISessionExecutor<List<List<Object[]>>>() {
public List<List<Object[]>> execute(ISession session) throws Exception {
// 创建存储过程操作器对象
IProcedureOperator<Object[]> _opt = new DefaultProcedureOperator<Object[]>("procedure_name", session.getConnectionHolder())
.addParameter("param1")
.addParameter("param2")
.addOutParameter(Types.VARCHAR)
.addOutParameter(Types.INTEGER)
.setOutResultProcessor(new IProcedureOperator.IOutResultProcessor() {
public void process(int idx, int paramType, Object result) throws Exception {
System.out.println(result);
}
}).setResultSetHandler(IResultSetHandler.ARRAY);
// 执行
_opt.execute();
return _opt.getResultSets();
}
});相关视频
科技资讯
24小时阅读榜
1
2
3
4
5
6
7
8
9
10
精品课程
共5课时 | 17.4万人学习
共49课时 | 78.2万人学习
共29课时 | 62.5万人学习
共25课时 | 39.8万人学习
共43课时 | 73.8万人学习