我将问题明了一下package yzxbbs.db;import java.sql.*;
import java.util.StringTokenizer;
public class DbTrans { public static Connection conn;
Statement stmt;
boolean isAutoCommit; /**
* 构造函数
*/
public DbTrans(){
initConnection();
} /**
* 带参数的构造函数
* @param conn 连接
*/
public DbTrans(Connection conn){
this.conn = conn;
} /**
* 初始化建立连接
*/
private void initConnection(){//这些都是正确的
try{
if(conn == null){
DBConnectionManager connMgr=DBConnectionManager.getInstance();
conn = connMgr.getConnection("mysql");
}
}
catch(Exception ex){
System.out.println("Can not get new Connection"+ex.getMessage());
}
}public ResultSet executeQuery(String sql) throws SQLException {
ResultSet rs = null;
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch (SQLException ex) {
ex.printStackTrace();
System.out.println("dbTrans.executeQuery:"+ex.getMessage());
throw ex;
}
return rs;
} public static void main(String args[]){
DbTrans DbTrans1 = new DbTrans();
String userID = "";
ResultSet rs1 = null;
String sql="select max(ID)+1 as numMaxID from guestuser";
try{
rs1 = DbTrans1.executeQuery(sql);
if (rs1.next()) {
userID = rs1.getString("ID");
}
rs1.close();
}catch(Exception e){
e.printStackTrace();
}
System.out.println(userID);
}
}main函数捕捉错误,就是executeQuery这里报NullPointerException
import java.util.StringTokenizer;
public class DbTrans { public static Connection conn;
Statement stmt;
boolean isAutoCommit; /**
* 构造函数
*/
public DbTrans(){
initConnection();
} /**
* 带参数的构造函数
* @param conn 连接
*/
public DbTrans(Connection conn){
this.conn = conn;
} /**
* 初始化建立连接
*/
private void initConnection(){//这些都是正确的
try{
if(conn == null){
DBConnectionManager connMgr=DBConnectionManager.getInstance();
conn = connMgr.getConnection("mysql");
}
}
catch(Exception ex){
System.out.println("Can not get new Connection"+ex.getMessage());
}
}public ResultSet executeQuery(String sql) throws SQLException {
ResultSet rs = null;
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch (SQLException ex) {
ex.printStackTrace();
System.out.println("dbTrans.executeQuery:"+ex.getMessage());
throw ex;
}
return rs;
} public static void main(String args[]){
DbTrans DbTrans1 = new DbTrans();
String userID = "";
ResultSet rs1 = null;
String sql="select max(ID)+1 as numMaxID from guestuser";
try{
rs1 = DbTrans1.executeQuery(sql);
if (rs1.next()) {
userID = rs1.getString("ID");
}
rs1.close();
}catch(Exception e){
e.printStackTrace();
}
System.out.println(userID);
}
}main函数捕捉错误,就是executeQuery这里报NullPointerException
int guestID = getGuestMaxID();
while (!addGuest(guestID)) {
guestID = getGuestMaxID();
}
return guestID;
} public int getGuestMaxID() {
int numMaxID = 1;
SQL = "select max(ID)+1 as numMaxID from guestuser";
try {
rs = myDbTrans.executeQuery(SQL);
if (rs.next()) {
numMaxID = rs.getInt("numMaxID");
}
rs.close();
if (numMaxID == 0) {
numMaxID = 1;
}
}
catch (SQLException e) {e.printStackTrace();
}
return numMaxID;
} public ResultSet executeQuery(String sql) throws SQLException {
ResultSet rs = null;
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch (SQLException ex) {
ex.printStackTrace();
System.out.println("dbTrans.executeQuery:"+ex.getMessage());
throw ex;
}
return rs;
}