zoukankan      html  css  js  c++  java
  • Tomcat下使用c3p0配置jndi数据源

    一.配置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输出

  • 相关阅读:
    关于DOM节点的逆序
    javascript 巧妙的数组去重
    Canvas 学习笔记1
    web前端开发规范
    关于使用new和不使用new
    先知JS分享第二讲 数据类型与操作符
    关于谷歌console的小技巧
    菜鸟读jQuery 2.0.3 源码分析系列(2)
    菜鸟读jQuery 2.0.3 源码分析系列(1)
    local npm module ("*****") not found
  • 原文地址:https://www.cnblogs.com/ad-zhou/p/9107968.html
Copyright © 2011-2022 走看看