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
连接包导出项目lib下了吗?发布的时候一定要导入呢
你试下注册驱动的时候不要用Class.forName();
换一种方式。好像是DirverManager什么的 记不太清 你试试吧
你需要把你的mysql数据库的jar“mysql-connector-java-3.2.0-alpha-bin.jar”拷到tomcat根目录下的common\lib下面去
文件夹: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的源代码,就会发现一句,这你就知道是什么意思了。
您可能感兴趣的社区主题
评论
选购仪器 上yiqi.com
仪器网络推广
品牌网上传播
长按识别二维码查看信息详情