/**
* 执行数据库多条查询
*
* @param 要执行的SQL语句的泛型集合
* @return 结果集的集合
* */
@Override
public ArrayList<ResultSet> ExcuteQuery(ArrayList<String> transSQL) {
try {
if (!IsDBOpen())
return null; try {
ArrayList<ResultSet> rsArray = new ArrayList<ResultSet>();
statm = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = null;
for (String strSQL : transSQL) { // 遍历SQL语句集合
String oper = strSQL.substring(0, 6); // 获取操作类型
if (oper.toLowerCase().equals("select")) {
rs = statm.executeQuery(strSQL);
rsArray.add(rs);
}
}
return rsArray; } catch (Exception e) {
errorMessage = e.getMessage();
return null;
}
} catch (Exception e) {
errorMessage = e.getMessage();
}
return null;
}
/**
* 返回泛型结果的第一个结果集
*
* @param 泛型结果集
* */
public ResultSet GetResultSet(ArrayList<ResultSet> rsArray) {
if (rsArray != null && rsArray.size() > 0)
return rsArray.get(0);
else
return null;
}
DataAccess db = new DataAccess();
ArrayList<String> strArray = new ArrayList<String>();
strArray.add("select * FROM C_TREEBASE");
strArray.add("select fid, name, icon from b_frame where rownum = 1");
ArrayList<ResultSet> rsArray = db.ExcuteQuery(strArray);
try {
ResultSet rs = db.GetResultSet(rsArray);
if(rs!=null) {
if(rs.next())
System.out.println(rs.getObject(0));
}
db.CloseConnection();
} catch (Exception e) {
System.out.println(db.GetErrorMessage());
e.printStackTrace();
}java.lang.NullPointerException我是一个新手,请问这段代码中为什么会出现RS空指针呢。
想做一个传入多条SQL,执行后返回N个结果集,然后把结果集放入泛型中。
之后在使用这个泛型的时候可以根据索引取出其中指定位置的结果集进行操作。
我没有断开连接,对ResultSet理解的不够透彻,希望大家帮忙解决这个空指针异常问题
解决方案 »
- 实习生求助!!
- 如何用Java实现DDA画线算法,逐点画线算法,BRESENHAM画线算法
- jfreeChart纵坐标轴问题
- System.in.read()出现异常,请大家指教
- 急需一个字体文件c:\windows\fonts\下的gara.ttf文件
- javabean 和applet ????区别
- 请帮看一下关于RMI的错误,谢拉!!!!
- ◎◎#请教各位大哥:怎样存储邮件内容content为Object类型到SQL Server
- SYBASE11.9通过JDBC来链接据库时,我做的conn不支持ROLLBACK(来者有分)
- 关于键盘事件
- 有个问题,表达能力不太好.麻烦大家进来看看 给我点建议 刚学完J2SE..
- 如何为Jtable中的checkbox加入监听事件
这肯定是你的ExecuteQuery方法中抛出异常了,然而你却没有对异常进行处理,直接返回个null。建议楼主吧你的异常处理改为e.printStackTree(),也就是默认的方式,然后把你运行这个程序的控制台上报出的异常信息站出来,让大家给你分析一下。