javabean方式与jsp方式连接sqlserver服务器的问题,紧急

delphininum 2003-10-16 06:24:46
我已经看了两天了,晕头转向,还是搞不定啊,各位大哥快帮帮忙吧。
我现在在用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();
}
}
%>

...全文
53 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphininum 2003-10-20
  • 打赏
  • 举报
回复
huguangwu(追风少年)
不好意思,这两天在搞这个问题了,没来得急。可以在微软的主页下载
三个jar文件已经发到你mail里,版本是打过sp1的microsoft sql server for jdbc。具体的可以在微软的主页下载
huguangwu 2003-10-17
  • 打赏
  • 举报
回复
楼主,你有jdbc for sql server2000的jar?

能否mail一份给我?hgw@zzuli.edu.cn

还有如何设置,设置后字符串如何写?
delphininum 2003-10-17
  • 打赏
  • 举报
回复
驱动是有的,jdbc for sql server 2000的jar 我都放了,问题出在rs = statement.executeQuery(s)处,我如果将conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)的参数去掉,即conn.createStatement()在javabean就行了,但在jsp中却不行了。
9731boy 2003-10-16
  • 打赏
  • 举报
回复
jdbc for sql server 2000的jar 可以放到common/lib下
j4sxw 2003-10-16
  • 打赏
  • 举报
回复
jdbc for sql server 2000的jar有没有加入classpaht
tanndy 2003-10-16
  • 打赏
  • 举报
回复
用什么环境写JAVABEAN啊?在写JAVABEAN时候有没有设置CLASSPATH=“JDBC驱动”?
可能在JSP环境下面有JDBC驱动而另外无,所以出错。
delphininum 2003-10-16
  • 打赏
  • 举报
回复
晕了,忘了说了,我用的是jdk1.3.1,tomcat4

81,090

社区成员

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

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