我要发布
仪器网/ 仪器社区/ 检测类/ Tomcat 配置的数据源,测试连接数据库报告类转换错误。

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

tf3sg0    2011-06-18    检测类    浏览 331 次

tomcat 配置的数据源如下: auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mydb" />

写的测试类如下:
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数据源配置连接数据库,在类中都要引入什么包中的什么类?

精彩问答
叶子酱油 发布日期:2017-11-24
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
全部评论
昆明医疗 发布日期:2011-06-19
连接包导出项目lib下了吗?发布的时候一定要导入呢
iar1988 发布日期:2011-06-19
你试下注册驱动的时候不要用Class.forName();
换一种方式。好像是DirverManager什么的 记不太清 你试试吧
天天说everyday 发布日期:2011-06-19
你需要把你的mysql数据库的jar“mysql-connector-java-3.2.0-alpha-bin.jar”拷到tomcat根目录下的common\lib下面去
lwlo838 发布日期:2011-06-19
文件夹: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的源代码,就会发现一句,这你就知道是什么意思了。
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控