连接SQLSERVER出现了问题,在线等!!

葫芦的世界 2006-04-05 11:54:29
我在JSP页面上调用一切正常.代码如下:
String drivers="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=www";
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String uid="sa";
String pass="m";
Class.forName(drivers).newInstance();
conn=DriverManager.getConnection(url,uid,pass);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
while(rs.next())
{
}
能调出数据.

可是做成BEAN(能连上数据库).再调用就会出现如下错误.

java.lang.NullPointerException
rambler.CONN.QueryString(conn.java:48)
org.apache.jsp.index_jsp._jspService(index_jsp.java:53)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
Bean内容:

package ramble;
import java.sql.*;
public class CONN {

String drivers="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=www_gjart_cn";
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String uid="sa";
String pass="m";
public void CONN(){

try{
Class.forName(drivers).newInstance();
}catch(java.lang.ClassNotFoundException e)
{
System.err.println(e.getMessage());
}
catch(Exception ex)
{
System.err.println(ex.getMessage());
}

System.out.println(" 驱动加载成功!");
try{
conn=DriverManager.getConnection(url,uid,pass);
}catch(SQLException e){
System.err.println(e.toString());
}
System.out.println("数据库连接成功!");
}
public ResultSet QueryString(String sql)
{
try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}catch(SQLException e)
{System.err.println("查询操作有问题了:"+e.toString());}
return rs;
}

JSP页面:
<jsp:useBean id="conn" class="ramble.CONN" scope="page"/>
<%
String sql="select * from first_category";

ResultSet rs=conn.QueryString(sql);
%>
为什么 rs.会为空呢.
...全文
143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
TinyJimmy 2006-04-05
  • 打赏
  • 举报
回复
如果并发操作, 同一个conn打开多个statement在SQLServer是不被允许的, 一旦新的内容打开, 原来的ResultSet内容被清空, 因此没有数据.
葫芦的世界 2006-04-05
  • 打赏
  • 举报
回复
葫芦的世界 2006-04-05
  • 打赏
  • 举报
回复
还是一样的错误呀.java.lang.NullPointerException

为什么 rs 会返回空值呢?
葫芦的世界 2006-04-05
  • 打赏
  • 举报
回复
多谢,我试一下.
interpb 2006-04-05
  • 打赏
  • 举报
回复
1.public void CONN() 这是什么, CONN 是类名 构造函数没有返回类型

2.还有JavaBean的规范是每个属性都要有get/set方法

这样写吧

package ramble;
import java.sql.*;
public class CONN {

String drivers="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=www_gjart_cn";

public CONN(){

try{
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String uid="sa";
String pass="m";
Class.forName(drivers).newInstance();
}catch(java.lang.ClassNotFoundException e)
{
System.err.println(e.getMessage());
}
catch(Exception ex)
{
System.err.println(ex.getMessage());
}

System.out.println(" 驱动加载成功!");
try{
conn=DriverManager.getConnection(url,uid,pass);
}catch(SQLException e){
System.err.println(e.toString());
}
System.out.println("数据库连接成功!");
}
public ResultSet QueryString(String sql)
{
try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}catch(SQLException e)
{System.err.println("查询操作有问题了:"+e.toString());}
return rs;
}
}
}
葫芦的世界 2006-04-05
  • 打赏
  • 举报
回复
葫芦的世界 2006-04-05
  • 打赏
  • 举报
回复
应该如何做呢.望楼上大侠详解.

81,094

社区成员

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

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