码迷,mamicode.com
首页 > 其他好文 > 详细

Tomcat下使用c3p0配置jndi数据源

时间:2018-05-29 21:47:01      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:alc   内容   rem   let   void   c3p0   style   context   package   

一.配置jndi需要的架包为

c3p0-0.9.2-pre1.jar和mchange-commons-0.2.jar

已经mysql连接包mysql-connector-java-5.1.26.jar

下载地址为:

二.将如下架包导入到项目WEB-INF/lib目录下

技术分享图片

然后再在META-INF目录下新建一个context.xml文件

技术分享图片

然后context.xml的内容为

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <!-- 使用C3P0配置针对MySQL数据库的JNDI数据源 -->
   <!-- 注意jdbc/mysql和Container这两个在web.xml需要配置 需要名称一致 然后就是数据库用户和密码--> <Resource name="jdbc/mysql" auth="Container" factory="org.apache.naming.factory.BeanFactory" type="com.mchange.v2.c3p0.ComboPooledDataSource" driverClassName="com.mysql.jdbc.Driver" idleConnectionTestPeriod="60" maxPoolSize="50" minPoolSize="2" acquireIncrement="2" user="root" password="zhousong" jdbcUrl="jdbc:mysql://localhost:3306/mysql1"/> </Context>

然后再web.xml中添加

<resource-ref>
    <res-ref-name>jdbc/mysql</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

最后创建一个servlet进行测试

package C3p0DemoTest;

import java.io.IOException;
import java.sql.Connection;

import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class C3p0Demo extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //C3p0在项目中的实现 Context.xml的存储路径在con文件的localhost里面 是对Context的整个配置
        //也是实现C3p0连接池的方法 
        try {
            /*
             * 创建JNDI上下文获取对象
             */
            /*
             * 查询入口
             */
            InitialContext ctx = new InitialContext();
            //lookup检索配置。
            DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
            //获取连接
            Connection con = ds.getConnection();
            
            System.out.println(con);
            
            System.out.println("ok");
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }

}

然后在浏览器输入

http://localhost:8080/项目名称/C3p0Demo

可以在后台看到类的连接情况和ok输出

 

Tomcat下使用c3p0配置jndi数据源

标签:alc   内容   rem   let   void   c3p0   style   context   package   

原文地址:https://www.cnblogs.com/ad-zhou/p/9107968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!