您的位置:首页 > 数据库 > Oracle

导入项目,用Tomcat自带连接池来配置Oracle数据库

2015-03-31 12:21 471 查看

DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/test");

由于项目中出现了上面这句、不懂,遂找到下面的解决方案,及补充Tomcat连接池&Oracla的配置方式

这里我用的是apache-tomcat-7.0.34,自己用的是什么就拿什么,后面包版本对应就OK了。

配置的步骤:

(1)首先说一下,我项目中,要连接数据的入口:

一个连接池的java类:

package cn.com.jobedu.blog;

import org.apache.commons.dbutils.QueryRunner;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

public class DbHelper {

public static QueryRunner getQueryRunner() {

DataSource ds = null;

try {

Context context = new InitialContext();

ds = (DataSource) context.lookup("java:/comp/env/jdbc/mysqlDB");

} catch (NamingException e) {

System.out.println("测试");

}

QueryRunner qr = new QueryRunner(ds);

return qr;

}

}

项目中是这样去连接数据源的,首先java:/comp/env/jdbc/是固定的参数。而mysqlDB是我的mysql数据库中的库名

对于 mysql数据库 :

(2)首先找到你的D:\apache-tomcat-7.0.34 \conf目录(自己的tomcat的目录下)修改里面的context.xml 配置,打开,把里面的<Context>注释掉,换成:

<Context reloadable="true">

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<Resource name="jdbc/mysqlDB" auth="Container" type="javax.sql.DataSource"

maxActive="100"

maxIdle="30"

maxWait="10000"

username="root"

password="1234"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/mysqlDB?characterEncoding=utf-8"/>

</Context>

其中mysqlDB是我的mysql的名字(即数据库名),其他的像密码和用户名,就是你自己的,驱动名和url也更加自己的配置,我这里只是mysql数据库的配置方法

接着还是D:\apache-tomcat-7.0.34 \conf目录下找到web.xml配置文件,只要在里面加上:

<resource-ref>

<res-ref-name>jdbc/mysqlDB</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

</resource-ref>

就好了,其中mysqlDB数据库名,type配置固定写法

(3)这个时候,也不要忘记了,在D:\apache-tomcat-7.0.34 \lib目录下,加上对应数据库的驱动包,如我这里加上的mysql-connector-java-5.1.21.jar

到这里tomcat的连接池就配置好了,有报错的情况,检查几个地方数据库的名字是否对应,还有就是你连接数据库的各个参数是否有写错,也别忘记导入驱动包了。这样的话,就可以在java中写sql语句操作数据库了。当然你的数据库里要有这个库,和操作的表。

对于 ORACLE数据库 :

首先找到你的D:\apache-tomcat-7.0.34 \conf目录(自己的tomcat的目录下)修改里面的context.xml 配置,打开,把里面的<Context>注释掉,换成:


<Context>

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>



<Resource name="jdbc/ORCL" auth="Container" type="javax.sql.DataSource"

maxActive="100"

maxIdle="30"

maxWait="10000"

username="system"

password="manager"

driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"/>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<!--

<Manager pathname="" />

-->

</Context>

其中ORCL是我ORACLE的名字(即数据库名),其他的像密码和用户名,就是你自己的,驱动名和url也更加自己的配置,我这里只是Oracle数据库的配置方法

接着找到项目路径下WEB-INF目录下web.xml配置文件,只要在里面修改为:

<resource-ref>

<description>ORACLE DataSource example</description>

<res-ref-name>jdbc/ORCL</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

就好了,其中ORCL数据库名,type配置固定写法

除此之外,我们还需做些额外工作:在项目文件的lib下加入Oracel的驱动包:ojdbc14.jar(驱动有多种、可能需要自己去试)

但是我这么做完、还是jsp出现报错javax.servlet cannot be resolved to a type,原因是servlet-api.jar为导入lib下。导入后就可运行。

在他人文章的基础上,补充的,劳烦大家批评改正。——分享知识,分享快乐
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: