javabean方式与jsp方式连接sqlserver服务器的问题,紧急
我已经看了两天了,晕头转向,还是搞不定啊,各位大哥快帮帮忙吧。
我现在在用javabean方式连接sqlserver数据库,出现错误。
代码:
package DocSystem;
import java.io.PrintStream;
import java.sql.*;
public class ConnectDB
{
String sDBDriver;
String sConnStr;
String UserName;
String Password;
Connection conn;
public Statement stmt;
ResultSet rs;
public ConnectDB()
{
sDBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
sConnStr = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb";
UserName = "sa";
Password = "";
conn = null;
stmt = null;
rs = null;
try
{
Class.forName(sDBDriver);
}
catch(ClassNotFoundException classnotfoundexception)
{
System.err.println("ConnectDB():" + classnotfoundexception.getMessage());
}
}
public ResultSet executeQuery(String s)
{
rs = null;
try
{
conn = DriverManager.getConnection(sConnStr, UserName, Password);
Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//1004, 1007);
rs = statement.executeQuery(s);
}
catch(SQLException sqlexception)
{
System.out.println("ExecuteQuery:" + sqlexception.getMessage());
}
return rs;
}
}
问题出在rs = statement.executeQuery(s);处,错误信息如下:
java.lang.NullPointerException
at com.microsoft.jdbc.base.BaseImplStaticCursorResultSet.setupTempFiles(Unknown Source)
at com.microsoft.jdbc.base.BaseImplStaticCursorResultSet.(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.chainInServiceImplResultSets(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.getNextResultSet(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonGetNextResultSet(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at DocSystem.ConnectDB.executeQuery(connectdb.java:46)
然而我用另外的jsp程序访问数据库,却成功,代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb;useUnicode=true;characterEncoding=gd2312;SelectMethod=cursor";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
System.out.println("Conn ok");
if(conn != null)
{
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
System.out.println("createStatement");
if(stmt != null)
{
String sql="select * from userinfo";
System.out.println(sql);
ResultSet rs=stmt.executeQuery(sql);
System.out.println("query ok");
System.out.println(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}
out.print("数据库操作成功,恭喜你");
rs.close();
stmt.close();
conn.close();
}
}
%>