怎样将返回list型,改为返回数组型,附具体函数

zengtian006 2011-03-23 10:01:13
或者改写这个方法也可 这个思路比较清晰

public List quyListBySql(String querystr,int dno) throws SQLException {
Connection conn=null;
Statement stmt = null;
ResultSet rst=null;
ResultSetMetaData rsmd = null;

List tmplist=new ArrayList();

//查询异常标志,为false时为正常情况,为true时为异常情况
String quyErrorFlag = "false";
Map tmpmap = null;


try {

//获取链接
conn = myDataUtil.getConnection(dno);
//ResultSet中数据可以双向滚动;指定可以更新 ResultSet
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rst = stmt.executeQuery(querystr);

rsmd = rst.getMetaData();

while(rst.next()){
tmpmap = new HashMap();
for ( int j = 1; j <= rsmd.getColumnCount(); j++ ){
tmpmap.put(rsmd.getColumnName(j), rst.getObject(j));
}
tmplist.add(tmpmap);
}

tmpmap = new HashMap();
tmpmap.put("quyErrorFlag",quyErrorFlag);

tmplist.add(0,tmpmap);
}catch(Exception e){

tmpmap = new HashMap();
quyErrorFlag = "true";
tmpmap.put("quyErrorFlag",quyErrorFlag);
tmplist.add(0,tmpmap);

System.out.println("pubgetstr"+e.toString()+querystr);
}finally{
//释放资源
myDataUtil.free(rst,stmt,conn);
return tmplist;
}
}
...全文
125 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zengtian006 2011-03-23
  • 打赏
  • 举报
回复
我现在改成这个样了
public String[] quyListBySql(String querystr,int dno) throws SQLException {
Connection conn=null;
Statement stmt = null;
ResultSet rst=null;
ResultSetMetaData rsmd = null;

List tmplist=new ArrayList();

//查询异常标志,为false时为正常情况,为true时为异常情况
String quyErrorFlag = "false";
Map tmpmap = null;


try {

//获取链接
conn = myDataUtil.getConnection(dno);
//ResultSet中数据可以双向滚动;指定可以更新 ResultSet
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rst = stmt.executeQuery(querystr);

rsmd = rst.getMetaData();

while(rst.next()){
tmpmap = new HashMap();
String[] aa = new String[3];
for ( int j = 1; j <= rsmd.getColumnCount(); j++ ){
tmpmap.put(rsmd.getColumnName(j), rst.getObject(j));
}
tmplist.add(tmpmap);
}

tmpmap = new HashMap();
tmpmap.put("quyErrorFlag",quyErrorFlag);

tmplist.add(0,tmpmap);
}catch(Exception e){

tmpmap = new HashMap();
quyErrorFlag = "true";
tmpmap.put("quyErrorFlag",quyErrorFlag);
tmplist.add(0,tmpmap);

System.out.println("pubgetstr"+e.toString()+querystr);
}finally{
//释放资源
myDataUtil.free(rst,stmt,conn);
String[] str=new String[tmplist.size()];
tmplist.toArray(str);
return str;
}
}

用的时候要怎么用啊??
zengtian006 2011-03-23
  • 打赏
  • 举报
回复
我想要返回一String[]类型的数组,要怎么改呢?
zn85600301 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qybao 的回复:]

Use List.toArray

for example
return tmplist.toArray(new Object[0]);
[/Quote]

API中有数组和集合间的转换方法
安特矮油 2011-03-23
  • 打赏
  • 举报
回复

public Object[] quyArraysBySql(String querystr,int dno) throws SQLException {
List list = quyListBySql(querystr, dno);
int size = list.size();
Object[] arrays = new Object[size];

for(int i = 0; i < size; i++){
arrays[i] = list.get(i);
}
return arrays;
}

不知道你的具体类型,所有只有返回Object的数组了
qybao 2011-03-23
  • 打赏
  • 举报
回复
Use List.toArray

for example
return tmplist.toArray(new Object[0]);
你好毒你好毒 2011-03-23
  • 打赏
  • 举报
回复
已经转换成数组了,取数组里面的值该怎么用就怎么用呗。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧