Java做数据库连接池的时候加载oracle的JDBC驱动时总是提示找不到驱动类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java做数据库连接池的时候加载oracle的JDBC驱动时总是提示找不到驱动类相关的知识,希望对你有一定的参考价值。
但是把oracle本身的jdbc下的所有jar文件全部导入到tomcat的lib下,再重新发布、启动项目,就可以找到驱动类了,请问你这是为什么?
参考技术A 不用所有的jar包吧 ,弄个驱动类的包就可以了啊,classes12.jar追问我知道,我就是想知道为什么又要拷贝到tomcat下,直接在eclipse里加入lib了为什么还不行?
追答不用啊。可以直接复制到项目的lib里面啊,但是你得确保加到项目的类路径里面去了,否则也没用
追问加入了啊,导入外部类吗,我都做了,但是还是找不到,拷到tomcat下就好使了,我也是从网上看到的答案,我说的是做连接池,直连数据库不用拷贝,我就想知道为什么要拷贝到tomcat下呢?
追答呵呵 不太可能,我们也用的是连接池 ,都是直接放项目里面的,不是导入外部类,你可以直接吧jar包拷贝到项目的lib里面啊。然后右击项目看看那个build path里面的librairy里面有没有那个jar包
追问有……真的有……,我没有骗你。不信你可以去网上搜下,就有说我这种解决方案的。
追答呵呵 是不是哪个地方还是弄错了啊?
参考技术B java连接数据库都需要导入数据库的驱动架包 参考技术C 我听说过这个问题,我在网上的视频里见过,我记得不太清楚了(好像是BUG吧),反正就是你的自己复制过去,它不会给你自动弄过去,你用Myeclipse就没事了。。本回答被提问者采纳 参考技术D 只要加入一个classes12.jar加入到项目里面就可以了啊,加多了的话可能有冲突追问你们都没有说到问题的根本,不知道就不要回答
追答这是你向别人请教的态度吗? 难怪没人肯说正确的答案给你
追问笑,你连我问的是什么都没看仔细就回答,谁不尊重谁。我问为什么要拷贝到tomcat下,你说加项目里,我能不知道加项目里吗,我问为什么还要加入到tomcat,大哥麻烦你看仔细,
eclipse下jdbc数据源与连接池的配置及功能简介
今天在做四则运算网页版的时候遇到了一个困惑,由于需要把每个产生的式子存进
数据库,所以就需要很多次重复的加载驱动,建立连接等操作,这样一方面写程序不方便,加大了程序量,另一方面,还有导致数据库的性能急剧下降,那么怎么解决这个问题呢?
我所学到的方法就是通过JDBC数据源和连接池的方式来解决这个问题。利用DataSource来建立数据库的连接不需要加载JDBC驱动,也不需要DriverManager类,通过向一个JNDI服务器查询来得到DataSource对象,然后调用DataSource对象的getConnection()方法来建立数据库的连接。下面代码是一个使用DataSource来建立数据库的连接的实例:
//创建连接和语句对象
Connection conn=null;
Statement stmt=null;
try{
Context ctx=new InitialContext();
//javax.naming.Context接口定义了将对象和名字绑定,
//以及通过名字查询对象的方法lookup()。
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/calculation");
conn=ds.getConnection();
stmt=conn.createStatement();
String sql="insert into biaodashi values(\'"+result+"\')";
stmt.execute(sql);
stmt.close();
conn.close();
}
catch(Exception e){
System.out.println(e);
}
下面介绍一下连接池技术:
连接池技术预先建立多个数据库连接对象,然后将连接对象保存到连接池中,党客户请求到来时,从池中取出一个连接对象为客户服务,当请求完成后,客户程序调用close()方法,将连接对象放回池中。
那么,那么在eclipse下怎么使用这项技术呢,首先就得配置JDBC数据源:
1.打开一个web工程,在webContent目录下的META-INF目录下新建一个叫context的xml文件,
2.打开context.xml文件,以下是context.xml的完整内容(可以直接复制粘贴到你的context.xml文件里(*代表的是自己根据自己的实际情况填写)):
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/*" reloadable="true">
<!-- 配置数据源 -->
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100"
maxldle="30" maxWait="10000" name="jdbc/*" password="****" type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/*?autoReconnect=true" username="root"/>
</Context>
这里需要对以上的配置文件进行基本的解释说明:
Context path="/*",这是虚目录,等于给你真正的数据源文件起了一个别名,*可以随便命名;
name="jdbc/*",这是指定资源相对于java:comp/env 上下文的JNDI名,*可以随便命名,但是要记住,下面连接数据库的时候要用。
password=“****”是你的数据库密码。
url="jdbc:mysql://localhost:3306/*?autoReconnect=true"
为指定连接数据库的URL。
(只需要把*号部分换成你数据库的名字即可,其余部分可以不动。)
接下来就是web.xml文件的配置:
1.打开web.xml文件,在<web-app></web-app>之间添加如下代码:
(可以直接复制粘贴到你的web.xml文件里<web-app></web-app>之间(*代表的是自己根据自己的实际情况填写))
<resource-ref>
<description>MySQL DBCP</description>
<res-ref-name>jdbc/*</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
这里<res-ref-name></res-ref-name>之间的内容代表的就是上面配置Context.xml文件里name属性的值。
至此,eclipse下JDBC数据源与连接池的配置就弄好了,这个时候最上面的那个实例就可以正常运行了。
以上是关于Java做数据库连接池的时候加载oracle的JDBC驱动时总是提示找不到驱动类的主要内容,如果未能解决你的问题,请参考以下文章