仪器社区

Tomcat 配置的数据源,测试连接数据库报告类转换错误。

tf3sg0 2011-06-18
tomcat 配置的数据源如下: 写的测试类如下: package com.telenav.Brant; import java.sql.ResultSet; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; public class ConnectDB { public ConnectDB(){} public static void testDB(){ try { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/TestDB"); Connection con = (Connection) ds.getConnection(); Statement stmt = (Statement) con.createStatement(); ResultSet rs = stmt.executeQuery("select * from user"); while(rs.next()){ System.out.println(rs.getString(2)); } } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 报错如下: 2011-6-19 15:08:28 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet jsp threw exception java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper cannot be cast to com.mysql.jdbc.Connection at com.telenav.Brant.ConnectDB.testDB(ConnectDB.java:21) at org.apache.jsp.index_jsp._jspService(index_jsp.java:81) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service 我估计是import进来的类不对,可能是引入的包比较少,所以eclipse自动提示的类不匹配,有没有高手告诉我使用tomcat数据源配置连接数据库,在类中都要引入什么包中的什么类?
评论
全部评论
叶子酱油
Connection con = (Connection) ds.getConnection();

Connection 应该是 java.sql.Connection. 但是你用的是: com.mysql.jdbc.Connection

tomcat的数据源的PoolGuardConnectionWrapper 实现的是 java.sql.Connection. 你把它转换为 com.mysql.jdbc.Connection肯定出错

Statement 必须用 java.sql.Statement
11 0 2017-11-24 0条评论 回复
昆明医疗
连接包导出项目lib下了吗?发布的时候一定要导入呢
3 0 2011-06-19 0条评论 回复
iar1988
你试下注册驱动的时候不要用Class.forName();
换一种方式。好像是DirverManager什么的 记不太清 你试试吧
12 0 2011-06-19 0条评论 回复
天天说everyday
你需要把你的mysql数据库的jar“mysql-connector-java-3.2.0-alpha-bin.jar”拷到tomcat根目录下的common\lib下面去
11 0 2011-06-19 0条评论 回复
lwlo838
文件夹:build-存放编译后的class文件
nbproject-存放项目的具体配置文件
src-java源代码存放文件夹
test-JUnit测试文件存放位置

Build.xml构建描述文件,因为Netbeans的编译打包是基于ant的,build就是ant实现自动编译打包的描述文件。
manifest.mf是打包的时候需要的一个清单文件,是对打包后的jar包中的文件的一个描述下文件。
original.java,.netbeans_automatic_build,这两个文件不知道你用的什么Netbeans版本,在我的版本中并未生成此文件。
build-impl.xml是对Build.xml文件的具体描述,Build.xml其实并未实现具体的ant构建脚本,具体是在该文件中实现的,如果你看过build.xml的源代码,就会发现一句,这你就知道是什么意思了。
11 0 2011-06-19 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论