失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > jfinal获取mysql_jfinal 调用mysql结果集-问答-阿里云开发者社区-阿里云

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

时间:2023-03-22 06:57:04

相关推荐

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

我的做法是:

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结果集-问答-阿里云开发者社区-阿里云》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。