JNDI是什么呢?

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

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

ok!開始

首先我们新建web项目:

新建项目叫:JNDI_demo

然后在tomcat文件夹:F:\apache-tomcat-5.5.25\conf\Catalina\localhost下,创建一个资源。

命名就是:项目名.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的数据库连接。这个打印的是改对象。,假设没有成功,能够给我留言。一起分享,一起学习。

JNDI配置c3p0连接池的更多相关文章

  1. Spring_day03--Spring配置c3p0连接池和dao使用jdbcTemplate

    Spring配置c3p0连接池和dao使用jdbcTemplate 1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 原始方式 (1)把代码在配置 ...

  2. Hibernate -- 配置c3p0连接池, 事务隔离级别, 管理session

    知识点1:配置c3p0连接池(了解) * 引入c3p0-0.9.1.jar * 在hibernate.cfg.xml文件中增加如下配置 <!-- C3P0连接池设定--> <!-- ...

  3. (七)Spring 配置 c3p0 连接池

    目录 在 Spring 核心配置文件中配置 c3p0 连接池 配置 JdbcTemplate 对象 在 service 层注入 userDao 在 UserDao 里面注入 JdbcTemplate ...

  4. Spring框架中 配置c3p0连接池 完成对数据库的访问

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  5. Hibernate配置C3P0连接池

    引入C3PO包 在hibernate.cfg.xml文件中配置 <!-- 数据库连接池的使用 --> <!-- 选择使用C3P0连接池 --> <property nam ...

  6. Spring框架中 配置c3p0连接池

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  7. MyBatis配置C3P0连接池

    一.导包 c3p0包     mybatis包 数据库的连接包 二.继承UnpooledDataSourceFactory的类 Mybatis 没有帮开发者实现 c3p0 数据库连接池,故需要使用者自 ...

  8. Hibernate 配置C3P0 连接池

    第一步在hibernate.cfg.xml配置 <!-- 连接池 --> <property name="hibernate.connection.provider_cla ...

  9. spring 配置c3p0连接池

    一.导入与c3p0相关的jar包 二.xml配置文件 CombopooledDataSource类中提供了相应属性的set方法,因此可是使用属性注入的方式实例化对象. 三.示例 在userServic ...

随机推荐

  1. 下载 ....aar jitpack.io 打不开。

    下载 ....aar aar 是 安卓的 打包. 相对与jar 就是可以打包android的资源 比如res下的 . ------ jitpack.io  打不开. ====== 这个是jcenter ...

  2. GNU C __attribute__ 机制简介

    摘要: 在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attribute__的相关使用.本文结合自己的学习经历,较为详细的介绍了__attribute__相 ...

  3. hdu 2732 最大流 **

    题意:题目是说一个n*m的迷宫中,有每个格子有柱子.柱子高度为0~3,高度为0的柱子是不能站的(高度为0就是没有柱子)在一些有柱子的格子上有一些蜥蜴,一次最多跳距离d,相邻格子的距离是1,只要跳出迷宫 ...

  4. MySQL规约(阿里巴巴)

    建表规约 [强制]表达是与否概念的字段,必须使用 is _ xxx 的方式命名,数据类型是 unsigned tinyint ( 1 表示是,0 表示否 ) ,此规则同样适用于 odps 建表. 说明 ...

  5. 利用Everything开启http服务测试移动端浏览器环境

    一.Everything 简介 Everything本身是一款小巧的文件搜索神器,可以快速的搜索电脑中的文件,速度非常快. 二.使用Everything的http服务 在做移动端浏览器页面时,有时需要 ...

  6. 解决firefox不支持innerText的办法

    js代码: <script> window.onload = function(){ if(window.navigator.userAgent.toLowerCase().indexOf ...

  7. maven中跳过单元测试(转)

    你可能想要配置 Maven 使其完全跳过单元测试. 可能你有一个很大的系统,单元测试需要花好多分钟来完成,而你不想在生成最终输出前等单元测试完成. 你可能正工作在一个遗留系统上面,这个系统有一系列的失 ...

  8. 模拟出ios中流行的黑色背景底

    [activityIndicatorView setBackgroundColor:[UIColor colorWithRed: green: blue: alpha:0.4]]; 用上面的语法,可以 ...

  9. JAVA压缩解压ZIP文件,中文乱码还需要ANT.JAR包

    package zip; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStrea ...

  10. 常见的Hadoop十大应用误解

    常见的Hadoop十大应用误解 1.        (误解) Hadoop什么都可以做 (正解) 当一个新技术出来时,我们都会去思考它在各个不同产业的应用,而对于平台的新技术来说,我们思考之后常会出现 ...