用一个bean封装数据库操作,在jsp页面调用,加断点发现在bean里面执行的时候,rs就没得到结果,依然为空。帮看下程序有问题吗?package com;
import java.sql.*;
public class DBBean
{
private String driverStr = "com.ibm.db2.jcc.DB2Driver";
private String connStr = "jdbc:db2://172.40.1.98:50000/konka";
private String username = "openeap";
private String password = "suntektest";
private Connection conn = null;
private Statement stmt = null; public DBBean()
{
try {
Class.forName(driverStr);
}
catch(ClassNotFoundException ex) {
System.out.println(ex.getMessage());
}
}
public void setDriverStr(String dstr)
{
driverStr=dstr;
}
public void setConnStr(String cstr)
{
connStr=cstr;
}
public ResultSet executeQuery(String sql)
{
ResultSet rs = null;
try {
conn = DriverManager.getConnection(connStr,username,password);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.out.println(ex.getMessage());
}
return rs;
} public void close()
{
try{
stmt.close();
conn.close();
}
catch(SQLException ex){
System.out.println(ex.getMessage());
}
}
}<%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%>
<jsp:useBean id="conn" class="com.DBBean" scope="session" />
<%
conn.toString();
if (conn == null) {
out.print("conn为空");
} else {
out.print("conn不为空");
}
ResultSet rs = null; String sql1 = "select * from xcx_test_callback";
rs = conn.executeQuery(sql1);
out.print("你是谁");
conn.toString();ResultSetMetaData rmeta = rs.getMetaData();
//确定数据集的列数,亦字段数
int numColumns=rmeta.getColumnCount();
// 输出每一个数据值
out.print("id");
out.print("|");
out.print("num");
out.print("<br>");
while(rs.next())
{out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(2));
out.print("<br>");
}
rs.close();
conn.close();
session.setMaxInactiveInterval(-1);
%>
import java.sql.*;
public class DBBean
{
private String driverStr = "com.ibm.db2.jcc.DB2Driver";
private String connStr = "jdbc:db2://172.40.1.98:50000/konka";
private String username = "openeap";
private String password = "suntektest";
private Connection conn = null;
private Statement stmt = null; public DBBean()
{
try {
Class.forName(driverStr);
}
catch(ClassNotFoundException ex) {
System.out.println(ex.getMessage());
}
}
public void setDriverStr(String dstr)
{
driverStr=dstr;
}
public void setConnStr(String cstr)
{
connStr=cstr;
}
public ResultSet executeQuery(String sql)
{
ResultSet rs = null;
try {
conn = DriverManager.getConnection(connStr,username,password);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.out.println(ex.getMessage());
}
return rs;
} public void close()
{
try{
stmt.close();
conn.close();
}
catch(SQLException ex){
System.out.println(ex.getMessage());
}
}
}<%@ page contentType="text/html;charset=gb2312" import="java.sql.*"%>
<jsp:useBean id="conn" class="com.DBBean" scope="session" />
<%
conn.toString();
if (conn == null) {
out.print("conn为空");
} else {
out.print("conn不为空");
}
ResultSet rs = null; String sql1 = "select * from xcx_test_callback";
rs = conn.executeQuery(sql1);
out.print("你是谁");
conn.toString();ResultSetMetaData rmeta = rs.getMetaData();
//确定数据集的列数,亦字段数
int numColumns=rmeta.getColumnCount();
// 输出每一个数据值
out.print("id");
out.print("|");
out.print("num");
out.print("<br>");
while(rs.next())
{out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(2));
out.print("<br>");
}
rs.close();
conn.close();
session.setMaxInactiveInterval(-1);
%>
conn = DriverManager.getConnection(connStr,username,password);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
再加断点, 好像在这里conn对象也没得到,为空,哎,真郁闷,这里也有错吗?
去没有在意控制台上输出的错误。还有就是网上搜到的很多帖子已经很旧了,已经不适合现在的情况,还是要自动多用断点,自己多想多思考。