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

来源:互联网 发布:文件自动加密软件 编辑:程序博客网 时间:2024/06/04 00:59

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下。导入后就可运行。


在他人文章的基础上,补充的,劳烦大家批评改正。——分享知识,分享快乐
0 0