zoukankan      html  css  js  c++  java
  • JNDI配置c3p0连接池

    JNDI是什么呢?

    就是java命名和文件夹接口。是SUN公司提供的一种标准的Java命名系统接口。


    不好理解?简单说呢。他就是一个资源,放在tomcat里面的一个资源,今天我们就把数据库连接池放到tomcat中,当然你也能够放别的东西,比方Been。

    ok!開始

    首先我们新建web项目:

    新建项目叫:JNDI_demo
    然后在tomcat文件夹:F:apache-tomcat-5.5.25confCatalinalocalhost下,创建一个资源。

    命名就是:项目名.xml

    在我这就叫:JNDI_demo.xml

    <Context>
      <Resource name="datasource/c3p0DataSource" 
                type="com.mchange.v2.c3p0.ComboPooledDataSource"
                factory="org.apache.naming.factory.BeanFactory"
                
    			driverClass="com.mysql.jdbc.Driver"
    			jdbcUrl="jdbc:mysql://localhost:3306/test"
    			user="root"
    			password="root"
    			
    			acquireIncrement="3"
    			initialPoolSize="5"
    			maxPoolSize="10"
    			minPoolSize="2"
    			
    			/>
    </Context>

    在这简单说下这个配置文件:

    name="任意起,待会项目中要用"
    type=你创建资源的类型,这里我们要创建的是c3p0连接池。相应的类全名就是:com.mchange.v2.c3p0.ComboPooledDataSource
    factory不能够修改


    以下就是连接池的配置信息。注意小写字母开头,你们把账号password改成自己的。再创建一个数据库叫test的。

    好了。接下来我们就创建一个servlet,来获取这个连接池资源获取数据库连接。
    我们新建一个Servlet: JNDI_Servlet
    package com;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    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 JNDI_Servlet extends HttpServlet {
    
    	/**
    	 * 我们获取tomcat中配置的c3p0的实践课连接池资源。
    	 */
    	private static final long serialVersionUID = 1L;
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		//获取tomcat配置数据库连接池
    		
    		try {
    			Context cxt = new InitialContext();
    			//lookup里面必须以java:comp/env/开头+你刚写的配置文件的name的值
    			DataSource ds = (DataSource)cxt.lookup("java:comp/env/datasource/c3p0DataSource");
    			Connection con = ds.getConnection();
    			
    			System.out.println("con:"+con);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			throw new RuntimeException();
    		}
    		 
    	}
    
     
    	
    }
    


    
    然后我们导入jar包(c3p0jar+mysql驱动jar):点击下载jar包
    

    好了没有了,对了我把web.xml也放上吧,只是这个是自己生成的,我没改。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    	xmlns="http://java.sun.com/xml/ns/javaee" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <display-name></display-name>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>JNDI_Servlet</servlet-name>
        <servlet-class>com.JNDI_Servlet</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>JNDI_Servlet</servlet-name>
        <url-pattern>/servlet/JNDI_Servlet</url-pattern>
      </servlet-mapping>	
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    


    然后我们启动tomcat,然后訪问:http://localhost:8080/JNDI_demo/servlet/JNDI_Servlet

    回车看见的空白,就说明成功了。我们看控制台打印的信息:

    con:com.mchange.v2.c3p0.impl.NewProxyConnection@1b1bbe8

    说明了我们已经成功获取了c3p0的数据库连接。这个打印的是改对象。,假设没有成功,能够给我留言。一起分享,一起学习。




  • 相关阅读:
    Linux Shell 编程
    Linux下压缩与解压
    rsync实现文件备份同步
    linux中ulimit作用
    3dmax卡通渲染插件pencil+渲染线框
    世嘉开发部部长:这3点能提升游戏留存率
    消息中间件 分布式
    高并发高性能
    你的系统如何支撑高并发
    分布式系统的阿喀琉斯之踵:数据一致性
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7347176.html
Copyright © 2011-2022 走看看