我的做法是:

1、写一个过程调用类,实现ICallback接口,完整代码如下:

import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.List;

import oracle.jdbc.OracleTypes;

import com.jfinal.plugin.activerecord.ICallback;

import com.jfinal.plugin.activerecord.Model;

import com.jfinal.plugin.activerecord.ModelBuilder;

/**

* 统计分析数据

* @author Administrator

*

*/

public class ProcedureTool implements ICallback {

private Object[] paras;

private String procedure;

private List> result;

@SuppressWarnings("rawtypes")

private Class extends Model> mdClass;

/**

* @param proc 存储过程名称及参数:如 prcName(?,?,?,?)

* @param paras 输入\输出 参数,默认最后一个为游标参数

*/

@SuppressWarnings("rawtypes")

public void setParas(Class extends Model> modelClass,String proc,Object...paras){

procedure=proc;

this.paras=paras;

mdClass=modelClass;

}

/**

* 结果集

* @return

*/

public List> getResultList(){

return result;

}

@Override

public Object run(Connection conn) throws SQLException {

// TODO Auto-generated method stub

CallableStatement proc = null;

result=null;

proc = conn.prepareCall("{ call "+procedure+" }");

for (int i=0; i

proc.setObject(i + 1, paras[i]);

}

proc.registerOutParameter(paras.length+1, OracleTypes.CURSOR);

proc.execute();

ResultSet rs = (ResultSet) proc.getObject(paras.length+1);

try {

result=ModelBuilder.build(rs, mdClass);

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

}

2、调用getResultList就可以得到结果集了。

以上就是大概思路

南客南客 9个月前

引用来自“车开源”的评论

我的做法是:

1、写一个过程调用类,实现ICallback接口,如下:

public class ProcedureTool implements ICallback {

private Object[] paras;

private String procedure;

private List> result;

@SuppressWarnings("rawtypes")

private Class extends Model> mdClass;

/**

* @param proc 存储过程名称及参数:如 prcName(?,?,?,?)

* @param paras 输入\输出 参数,默认最后一个为游标参数

*/

@SuppressWarnings("rawtypes")

public void setParas(Class extends Model> modelClass,String proc,Object...paras){

procedure=proc;

this.paras=paras;

mdClass=modelClass;

}

/**

* 结果集

* @return

*/

public List> getResultList(){

return result;

}

@Override

public Object run(Connection conn) throws SQLException {

// TODO Auto-generated method stub

CallableStatement proc = null;

result=null;

proc = conn.prepareCall("{ call "+procedure+" }");

for (int i=0; i

proc.setObject(i + 1, paras[i]);

}

proc.registerOutParameter(paras.length+1, OracleTypes.CURSOR);

proc.execute();

ResultSet rs = (ResultSet) proc.getObject(paras.length+1);

try {

result=ModelBuilder.build(rs, mdClass);

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

}

2、调用getResultList就可以得到结果集了。

jfinal获取mysql_jfinal 调用mysql结果集-问答-阿里云开发者社区-阿里云相关推荐

  1. mysql cluster 宕机 恢复_mysql cluster 集群恢复不起来,还请大神赐教?报错-问答-阿里云开发者社区-阿里云...

    mysql cluster 集群原本使用的几乎全是内存表,后来随着数据的增长,把大的内存表迁移到磁盘表了,之后集群出现6050错误,整个集群挂掉:之后重新启动集群一直启动不起来... ----以下是集 ...

  2. mysql 繁体_mysql 插入繁体字报错?报错-问答-阿里云开发者社区-阿里云

    mysql 插入繁体字报错?报错 爱吃鱼的程序员 2020-06-22 14:09:16 87 @jfinal程序插入繁体字mysql的时候报错,数据库设置了utf8,但是依然报错,数据库,表,字段, ...

  3. drds 解决问题_DRDS 错误代码如何解决?-问答-阿里云开发者社区-阿里云

    DRDS 错误代码如何解决? 猫饭先生 2017-10-30 14:19:20 13731 本文档列出了 DRDS 返回的常见错误码及解决方法. TDDL-4006 ERR_TABLE_NOT_EXI ...

  4. jfinal mysql读写分离_在JFinal中对数据库读写分离的实现:报错 -问答-阿里云开发者社区-阿里云...

    频繁使用 use(configName) 没有任何性能问题,仅仅是为变量赋一个 string 值而已,完全可以忽略######@JFinal######我现在也使用,读用的是视图model,写操作使用 ...

  5. bae 3.0 mysql_bae3.0 mysql 有时报错?报错-问答-阿里云开发者社区-阿里云

    Jfinal 用的MySQL的数据源:MysqlDataSource ds = new MysqlDataSource(); Config: MysqlDataSource ds = new Mysq ...

  6. mysql hang住_mysql 5.7不定期的hang住重启-问答-阿里云开发者社区-阿里云

    线上一台mysql 5.7.17版本实例,系统centos 6.4 ,96G内存,SSD磁盘,buffer pool 60G,buffer pool instance 8,24 CPU.实例访问情况如 ...

  7. mysql 时间戳 2038_mysql数据库的timestamp为什么从1970到2038的某一时间?某一时间是指什么时间?过了这个时间之后怎么办?-问答-阿里云开发者社区-阿里云...

    首先你要理解什么是时间戳.时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至某一时间点的总秒数. 例如北京时间2015-12-31 ...

  8. ssm mysql 插入date 数据_SSM中插入数据没有报错,但是数据库没有值?报错-问答-阿里云开发者社区-阿里云...

    mybatis默认开启事务不会自动提交,只有调用了commit才会提交事务.你这种情况明显是事务成功执行了,而且自增ID也已生效,但事务本身没有提交,请调用mybatis的commit方法提交事务! ...

  9. canal同步mysql到kafka_使用Canal同步MySQL数据到Kafka 得到的数据中sql字段无值-问答-阿里云开发者社区-阿里云...

    这个应该跟你的binlog记录模式有关系,binlog有3中模式,ROW(行模式), Statement(语句模式), Mixed(混合模式)三种模式的用法如下: ROW(行模式):记录那条数据修改了 ...

最新文章

  1. JavaScript Switch 语句
  2. android 共享代码,Android团队成员间的代码共享!(Git+Github版)
  3. layer的一种用法,页面多选时用地址传递值过多时,用弹出层画一个form表单,然后通过提交表单传值
  4. unity 中让Text的文字动态刷新形式
  5. (六)jQuery选择器
  6. git推送本地分支到远程分支
  7. Python多线程--UDP聊天器
  8. django-xadmin使用之更改菜单url
  9. 开启服务_Nike Dunk 开启定制服务
  10. php 什么是对象,什么是PHP类和类的对象(PHP的类简介)
  11. Hooks解决了什么问题?
  12. java中调用dos_JAVA如何调用DOS命令
  13. C语言判断完数(完整版)
  14. QPSK调制及MATLAB实现
  15. 项目管理-项目风险管理
  16. 计算机信息安全攻防大赛,计算机学院举办校第六届网络攻防大赛
  17. 鲁大师Q3季度电动车报告:最聪明的电动车跑分曝光
  18. k8s 有状态服务部署
  19. ikbc键盘解锁上锁 解决win键失灵的问题
  20. 算法设计与分析——分支限界法

热门文章

  1. deepin允许root登录_[多图|需要root]在安卓手机上运行 UOS v20 arm64 版
  2. 一个简单的JS(盒子移动)
  3. 字节跳动校招笔试题汇总
  4. PHP之linux(一)linux基础
  5. hgame-week1-web-fujiwara tofu shop
  6. python画图修改背景颜色_如何在 Matplotlib 中更改绘图背景的实现
  7. 2020海康校招(笔试+2轮面试)复盘
  8. 关于node链接数据库Handshake inactivity timeout
  9. 美学心得(第二百三十七集) 罗国正
  10. Halcon学习笔记-工业相机千兆网线和USB优劣对比