Обсуждение: Connect problem with JDBC in javaBean and JSP
I try to write a bean to deal with all the operation of the database. Here are the codes:
import java.sql.*;
import java.util.*;
import java.util.*;
public class ConnectDB {
String error;
Connection con;
public void connect () throws ClassNotFoundException,
SQLException,
Exception {
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql:test","postgres","");
}
catch (ClassNotFoundException cnfe) {
error = "ClassNotFoundException: Could not locate DB driver.";
throw new ClassNotFoundException (error);
}
catch (SQLException sqle) {
error = "SQLException: Could not connect to database.";
throw new Exception (error);
}
catch (Exception e) {
error = "Exception: An unknown error occurred while connecting to database.";
throw new Exception (error);
}
}
public void disconnect () throws SQLException {
try {
if ( con != null ) {
con.close();
}
}
catch (SQLException sqle) {
error = "SQLException: Unable to close the database connection.";
throw new SQLException (error);
}
}
public ResultSet viewDatabase () throws SQLException, Exception {
ResultSet rs = null;
try {
String queryString = "Select * From test;";
Statement stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
}
catch (SQLException sqle) {
error = "SQLException : Could not execute the query.";
throw new SQLException (error);
}
catch (Exception e) {
error = "Exception: An unknown error occurred while test.";
throw new Exception (error);
}
return rs;
}
}
String error;
Connection con;
public void connect () throws ClassNotFoundException,
SQLException,
Exception {
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql:test","postgres","");
}
catch (ClassNotFoundException cnfe) {
error = "ClassNotFoundException: Could not locate DB driver.";
throw new ClassNotFoundException (error);
}
catch (SQLException sqle) {
error = "SQLException: Could not connect to database.";
throw new Exception (error);
}
catch (Exception e) {
error = "Exception: An unknown error occurred while connecting to database.";
throw new Exception (error);
}
}
public void disconnect () throws SQLException {
try {
if ( con != null ) {
con.close();
}
}
catch (SQLException sqle) {
error = "SQLException: Unable to close the database connection.";
throw new SQLException (error);
}
}
public ResultSet viewDatabase () throws SQLException, Exception {
ResultSet rs = null;
try {
String queryString = "Select * From test;";
Statement stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
}
catch (SQLException sqle) {
error = "SQLException : Could not execute the query.";
throw new SQLException (error);
}
catch (Exception e) {
error = "Exception: An unknown error occurred while test.";
throw new Exception (error);
}
return rs;
}
}
and the JSP is :
<%@ page language="java" import="java.sql.*, java.io.*, java.util.*" %>
<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="test" class="ConnectDB" />
<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="test" class="ConnectDB" />
<html>
<head><title> test database </title></head>
<head><title> test database </title></head>
<body>
<table width="85%" border="1">
<%
test.connect ();
<table width="85%" border="1">
<%
test.connect ();
ResultSet rs = test.viewDatabase ();
while (rs.next()) {
%>
<tr>
<td><%=rs.getInt("i")%></td>
<td><%=rs.getString("name")%></td>
</tr>
<%
}
%>
<tr>
<td><%=rs.getInt("i")%></td>
<td><%=rs.getString("name")%></td>
</tr>
<%
}
test.disconnect ();
%>
</table>
<p> </p>
</body>
</html>
%>
</table>
<p> </p>
</body>
</html>
The environment is Redhat 7.2, postgreSQL 7.2, j2sdk1.4.0, Tomcat 4.0.3
and the parameter CLASSPATH contains the /usr/local/pgsql/share/pgjdbc2.jar
While I browse the page, it is said
javax.servlet.ServletException: ClassNotFoundException: Could not locate DB driver.
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)
at org.apache.jsp.list$jsp._jspService(list$jsp.java:134)
........
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)
at org.apache.jsp.list$jsp._jspService(list$jsp.java:134)
........
However, I can run my java application to connect the database and show the
records in it well. What's wrong? Thanks a lot for help!
yours Xiang Gao
On Wed, 2002-06-12 at 07:38, gaox wrote: > The environment is Redhat 7.2, postgreSQL 7.2, j2sdk1.4.0, Tomcat 4.0.3 > and the parameter CLASSPATH contains the /usr/local/pgsql/share/pgjdbc2.jar > While I browse the page, it is said > > javax.servlet.ServletException: ClassNotFoundException: Could not locate DB driver. > at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463) > at org.apache.jsp.list$jsp._jspService(list$jsp.java:134) > ........ > > However, I can run my java application to connect the database and show the > records in it well. What's wrong? Thanks a lot for help! Tomcat needs the JDBC driver in /tomcat4/common/lib/ Cheers Tony Grant -- RedHat Linux on Sony Vaio C1XD/S http://www.animaproductions.com/linux2.html Macromedia UltraDev with PostgreSQL http://www.animaproductions.com/ultra.html
Hi Gaox
The problem is very simple. Copy the "pgjdbc2.jar"
file to the TOMCAT_HOME/common/lib directory. Restart
your tomcat server. That's it.
Regards,
Satish.
--- gaox <gaox@mountor.com> wrote:
> I try to write a bean to deal with all the operation
> of the database. Here are the codes:
>
> import java.sql.*;
> import java.util.*;
>
> public class ConnectDB {
> String error;
> Connection con;
>
> public void connect () throws
> ClassNotFoundException,
> SQLException,
> Exception {
> try {
> Class.forName("org.postgresql.Driver");
> con =
>
DriverManager.getConnection("jdbc:postgresql:test","postgres","");
> }
> catch (ClassNotFoundException cnfe) {
> error = "ClassNotFoundException: Could not locate
> DB driver.";
> throw new ClassNotFoundException (error);
> }
> catch (SQLException sqle) {
> error = "SQLException: Could not connect to
> database.";
> throw new Exception (error);
> }
> catch (Exception e) {
> error = "Exception: An unknown error occurred
> while connecting to database.";
> throw new Exception (error);
> }
> }
>
> public void disconnect () throws SQLException {
> try {
> if ( con != null ) {
> con.close();
> }
> }
> catch (SQLException sqle) {
> error = "SQLException: Unable to close the
> database connection.";
> throw new SQLException (error);
> }
> }
>
> public ResultSet viewDatabase () throws
> SQLException, Exception {
> ResultSet rs = null;
> try {
> String queryString = "Select * From test;";
> Statement stmt = con.createStatement();
> rs = stmt.executeQuery(queryString);
> }
> catch (SQLException sqle) {
> error = "SQLException : Could not execute the
> query.";
> throw new SQLException (error);
> }
> catch (Exception e) {
> error = "Exception: An unknown error occurred
> while test.";
> throw new Exception (error);
> }
> return rs;
> }
> }
>
> and the JSP is :
>
> <%@ page language="java" import="java.sql.*,
> java.io.*, java.util.*" %>
> <%@ page contentType="text/html;charset=gb2312"%>
> <jsp:useBean id="test" class="ConnectDB" />
>
> <html>
> <head><title> test database </title></head>
>
> <body>
> <table width="85%" border="1">
> <%
> test.connect ();
>
> ResultSet rs = test.viewDatabase ();
>
> while (rs.next()) {
> %>
> <tr>
> <td><%=rs.getInt("i")%></td>
> <td><%=rs.getString("name")%></td>
> </tr>
> <%
> }
>
> test.disconnect ();
> %>
> </table>
> <p> </p>
> </body>
> </html>
>
> The environment is Redhat 7.2, postgreSQL 7.2,
> j2sdk1.4.0, Tomcat 4.0.3
> and the parameter CLASSPATH contains the
> /usr/local/pgsql/share/pgjdbc2.jar
> While I browse the page, it is said
>
> javax.servlet.ServletException:
> ClassNotFoundException: Could not locate DB driver.
> at
>
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)
> at
>
org.apache.jsp.list$jsp._jspService(list$jsp.java:134)
> ........
>
> However, I can run my java application to connect
> the database and show the
> records in it well. What's wrong? Thanks a lot for
> help!
>
> yours Xiang Gao
>
>
__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com