用javabean连接sql server 2000数据库报错,实在找不出原因啊,高分救答
16lz
2021-01-22
javabean的源文件voteconn.java如下:
packagevote1;
importjava.sql.*;
publicclassvoteconn
{
publicstaticfinalStringsDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
publicstaticfinalStringsConnStr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=school";
publicstaticfinalStringuser="sa";
publicstaticfinalStringpassword="123456";
Connectionconnect=null;
ResultSetrs=null;
publicvoteconn()
{
try
{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundExceptione)
{
System.err.println(e.getMessage());
}
}
publicResultSetexecuteQuery(Stringsql)
{
try
{
connect=DriverManager.getConnection(sConnStr,user,password);
Statementstmt=connect.createStatement();
rs=stmt.executeQuery(sql);
System.out.println("连接数据库成功");
returnrs;
}
catch(SQLExceptionex)
{
System.err.println(ex.getMessage());
System.out.println("发生异常啦");
returnnull;
}
}
publicintexecuteUpdate(Stringsql)
{
intresult=0;
try
{
connect=DriverManager.getConnection(sConnStr);
Statementstmt=connect.createStatement();
result=stmt.executeUpdate(sql);
returnresult;
}
catch(SQLExceptionex)
{
System.err.println(ex.getMessage());
returnresult;
}
}
}
将以上的源码编译成功后,把voteconn.class放到Tomcat5.5\webapps\ROOT\WEB-INF\classes\vote1\voteconn.class目录,而我的jsp文件是放在Tomcat5.5\webapps\ROOT\vote1\index.jsp目录的
index.jsp如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
<jsp:useBeanid="ConnDbBean"scope="page"class="vote.voteconn"/><!--注意最后的一斜线要补上-->
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>网上调查表</title>
<styletype="text/css">
<!--
.style1{
font-size:18px;
font-weight:bold;
}
-->
</style>
</head>
<body>
<divalign="center">
<p><spanclass="style1">请您投票</span>:</p>
<%ResultSetrs=ConnDbBean.executeQuery("select*fromvote1");%><!--sql语句注意不要写错,否则老是返回空值-->
<tablewidth="150"border="1">
<formaction="vote.jsp">
<%
while(rs.next()){%>
<tr>
<td><inputtype="radio"name="type"value=<%=rs.getString("id")%>><%=rs.getString("note")%></td>
</tr>
<%}
rs.close();
%>
<tralign="center"><td><inputtype="submit"value="投票"></td></tr>
</form>
<tr><td><ahref="details.jsp">查看投票</a></td></tr>
</table>
</div>
</body>
</html>
在浏览器中执行jsp文件后报错,错误如下:
HTTPStatus500-
--------------------------------------------------------------------------------
typeExceptionreport
message
descriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
rootcause
java.lang.NullPointerException
org.apache.jsp.vote1.index_jsp._jspService(org.apache.jsp.vote1.index_jsp:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
noteThefullstacktraceoftherootcauseisavailableintheApacheTomcat/5.5.15logs.
--------------------------------------------------------------------------------
ApacheTomcat/5.5.15
实在搞不懂是什么原因,而我用一另外一段代码却可以正然访问数据库,
并有返回值,代码Test1.java如下:
//JavaDocument
importjava.sql.*;
publicclassTest1
{
publicstaticfinalStringsDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
publicstaticfinalStringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=school";
publicstaticfinalStringuser="sa";
publicstaticfinalStringpassword="123456";
publicstaticvoidmain(String[]args)
{
StringqueryString="SELECT*FROMvote1";//SQL语句
Connectionconn=null;
Statementst=null;
ResultSetrs=null;
try
{
Class.forName(sDBDriver);
conn=DriverManager.getConnection(url,user,password);
st=conn.createStatement();
rs=st.executeQuery(queryString);
while(rs.next())
{
System.out.println("ID:"+rs.getString("id")+"company:"+rs.getString("note")+"vote:"+rs.getString("c_num"));
}
rs.close();
st.close();
conn.close();
}
catch(Throwablet)
{
t.printStackTrace(System.out);
}
}
}
既然是这样,那么我的数据库的设置方面都应该没有错的吧,那代码又错在哪里呢,我反复看过了,
实在不知道呀,怎么返回经常为空呢,
那就是有的时候数据库连不上,把数据库重新装一下,必须打上补丁
在javabean中加一个main看是不是好了,好了以后再放连JSP文件
packagevote1;
importjava.sql.*;
publicclassvoteconn
{
publicstaticfinalStringsDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
publicstaticfinalStringsConnStr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=school";
publicstaticfinalStringuser="sa";
publicstaticfinalStringpassword="123456";
Connectionconnect=null;
ResultSetrs=null;
publicvoteconn()
{
try
{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundExceptione)
{
System.err.println(e.getMessage());
}
}
publicResultSetexecuteQuery(Stringsql)
{
try
{
connect=DriverManager.getConnection(sConnStr,user,password);
Statementstmt=connect.createStatement();
rs=stmt.executeQuery(sql);
System.out.println("连接数据库成功");
returnrs;
}
catch(SQLExceptionex)
{
System.err.println(ex.getMessage());
System.out.println("发生异常啦");
returnnull;
}
}
publicintexecuteUpdate(Stringsql)
{
intresult=0;
try
{
connect=DriverManager.getConnection(sConnStr);
Statementstmt=connect.createStatement();
result=stmt.executeUpdate(sql);
returnresult;
}
catch(SQLExceptionex)
{
System.err.println(ex.getMessage());
returnresult;
}
}
}
将以上的源码编译成功后,把voteconn.class放到Tomcat5.5\webapps\ROOT\WEB-INF\classes\vote1\voteconn.class目录,而我的jsp文件是放在Tomcat5.5\webapps\ROOT\vote1\index.jsp目录的
index.jsp如下:
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
<jsp:useBeanid="ConnDbBean"scope="page"class="vote.voteconn"/><!--注意最后的一斜线要补上-->
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>网上调查表</title>
<styletype="text/css">
<!--
.style1{
font-size:18px;
font-weight:bold;
}
-->
</style>
</head>
<body>
<divalign="center">
<p><spanclass="style1">请您投票</span>:</p>
<%ResultSetrs=ConnDbBean.executeQuery("select*fromvote1");%><!--sql语句注意不要写错,否则老是返回空值-->
<tablewidth="150"border="1">
<formaction="vote.jsp">
<%
while(rs.next()){%>
<tr>
<td><inputtype="radio"name="type"value=<%=rs.getString("id")%>><%=rs.getString("note")%></td>
</tr>
<%}
rs.close();
%>
<tralign="center"><td><inputtype="submit"value="投票"></td></tr>
</form>
<tr><td><ahref="details.jsp">查看投票</a></td></tr>
</table>
</div>
</body>
</html>
在浏览器中执行jsp文件后报错,错误如下:
HTTPStatus500-
--------------------------------------------------------------------------------
typeExceptionreport
message
descriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.
exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
rootcause
java.lang.NullPointerException
org.apache.jsp.vote1.index_jsp._jspService(org.apache.jsp.vote1.index_jsp:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
noteThefullstacktraceoftherootcauseisavailableintheApacheTomcat/5.5.15logs.
--------------------------------------------------------------------------------
ApacheTomcat/5.5.15
实在搞不懂是什么原因,而我用一另外一段代码却可以正然访问数据库,
并有返回值,代码Test1.java如下:
//JavaDocument
importjava.sql.*;
publicclassTest1
{
publicstaticfinalStringsDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
publicstaticfinalStringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=school";
publicstaticfinalStringuser="sa";
publicstaticfinalStringpassword="123456";
publicstaticvoidmain(String[]args)
{
StringqueryString="SELECT*FROMvote1";//SQL语句
Connectionconn=null;
Statementst=null;
ResultSetrs=null;
try
{
Class.forName(sDBDriver);
conn=DriverManager.getConnection(url,user,password);
st=conn.createStatement();
rs=st.executeQuery(queryString);
while(rs.next())
{
System.out.println("ID:"+rs.getString("id")+"company:"+rs.getString("note")+"vote:"+rs.getString("c_num"));
}
rs.close();
st.close();
conn.close();
}
catch(Throwablet)
{
t.printStackTrace(System.out);
}
}
}
既然是这样,那么我的数据库的设置方面都应该没有错的吧,那代码又错在哪里呢,我反复看过了,
实在不知道呀,怎么返回经常为空呢,
14 个解决方案
#1
那就是有的时候数据库连不上,把数据库重新装一下,必须打上补丁
在javabean中加一个main看是不是好了,好了以后再放连JSP文件
更多相关文章
- 在arcpy中删除或删除表的代码是什么?
- MYSQL数据库的安装
- 急~~!!!sqlconnection连接SQL2005数据库总出错~~~
- iBatis中sqlmap resultclass="java.lang.Integer",在代码中如何
- Python MySQLdb连接数据库的应用
- PostgreSQL数据库学习手册之libpq - C 库--介绍
- 求指导,PB12.0 如何用ini文件 连接sql 2005数据库
- logstash-jdbc-input与mysql数据库同步
- Spark踩坑记——数据库(Hbase+Mysql)转