关于用JavaBean连接数据库问题
用javabean联接数据库的时候不知道为什么老是有错,提示如下:
description:
The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /student/conn_db.jsp(3,0) The value for the useBean class attribute student.conn is invalid.
下面我把源码贴上来,请大家帮我指点.
共有两个文件:
conn.java
package student;
import java.sql.*;
public class conn {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:student";
Connection connect = null;
ResultSet rs = null;
public conn() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
try {
connect = DriverManager.getConnection(sConnStr);
Statement stmt = connect.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}
}
并将编译后的文件conn.class放在WEB-INF\classes\student\ 目录下
第二个文件: conn_db.jsp
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" import="java.sql.*"%>
<jsp:useBean id="connDbBean" scope="page" class="student.conn"/>
<html>
<head>
<title>test db connection</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<table width="60%" border="1">
<tr bgcolor="#CCCCFF">
<td width="50%">
<div align="center"><font color="#FF0033"><b>姓名</b></font></div>
</td>
<td width="25%">
<div align="center"><font color="#FF0033"><b>性别</b></font></div>
</td>
<td width="25%">
<div align="center"><font color="#FF0033"><b>分数</b></font></div>
</td>
</tr>
<%
ResultSet RS_result = connDbBean.executeQuery("select * from table1");
String studentName="";
String studentSex="";
int studentScore=0;
while(RS_result.next())
{
studentName = RS_result.getString("name");
studentSex = RS_result.getString("sex");
studentScore = RS_result.getInt("score");
%>
<tr>
<td width="50%" bgcolor="#FFFFFF">
<div align="center"><%=studentName%></div>
</td>
<td width="25%">
<div align="center"><%=studentSex%></div>
</td>
<td width="25%">
<div align="center"><%=studentScore%></div>
</td>
</tr>
<%
}
RS_result.close();
%>
</table>
</body>
</html>
数据库我用的是Access,并成功地增加到了系统DNS中了.
我已经试了很多次了不知道怎么才能连上,手高手帮帮我,非常感谢!
问题点数:60、回复次数:3Top
1 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-26 17:14:43 得分 60
The value for the useBean class attribute student.conn is invalid.
你的conn这个类写的不符合JavaBean的要求
JavaBean的要求的基本要求是每个属性都要有get/set方法;
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:student";
Connection connect = null;
ResultSet rs = null;
这四个属性 都没有get/set方法
你这里的JavaBean只是起到数据库操作的作用
<%@ page contentType="text/html;charset=GBK" %>
<%@ page language="java" import="java.sql.*"%>
<%@ page import="student.conn"%>
<html>
<head>
<title>test db connection</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<table width="60%" border="1">
<tr bgcolor="#CCCCFF">
<td width="50%">
<div align="center"><font color="#FF0033"><b>姓名</b></font></div>
</td>
<td width="25%">
<div align="center"><font color="#FF0033"><b>性别</b></font></div>
</td>
<td width="25%">
<div align="center"><font color="#FF0033"><b>分数</b></font></div>
</td>
</tr>
<%
ResultSet RS_result = new conn().executeQuery("select * from table1");
String studentName="";
String studentSex="";
int studentScore=0;
while(RS_result.next())
{
studentName = RS_result.getString("name");
studentSex = RS_result.getString("sex");
studentScore = RS_result.getInt("score");
%>
<tr>
<td width="50%" bgcolor="#FFFFFF">
<div align="center"><%=studentName%></div>
</td>
<td width="25%">
<div align="center"><%=studentSex%></div>
</td>
<td width="25%">
<div align="center"><%=studentScore%></div>
</td>
</tr>
<%
}
RS_result.close();
%>
</table>
</body>
</html>
////////
改成这样吧Top
2 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-03-26 17:16:55 得分 0
<jsp:useBean id="connDbBean" scope="page" class="student.conn"/>
这种JavaBean一般是用作数据存储的实体bean
像数据库操作的动作还是直接 import 就可以了Top
3 楼xj1108(学习ing)回复于 2006-03-26 20:49:48 得分 0
我还是不清楚该怎样修改,您能帮我改下吗
谢谢
Top




