JDBC数据库连接池----JNDI的使用

本文不是用来解释JNDI,也不是用来介绍数据库连接池的,单纯是为了记录JNDI在数据库连接池中的使用示例的。

Tomcat中JNDI的三种配置方式:参考链接
本人使用的是局部配置方式(上面链接中第三种配置方式),此种方式不依赖于Tomcat。

配置方式:
(1)在Web项目的META-INF文件夹中新建context.xml文件,文件内容为:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/myDataSource" 
                auth="Container" 
                type="javax.sql.DataSource" 
                driverClassName="com.mysql.jdbc.Driver"
                url="jdbc:mysql://localhost:3306/student" 
                username="gsfan" 
                password="111111" 
                maxActive="20" 
                maxIdle="10" 
                maxWait="10000"/>   
</Context>

(2)在项目的web.xml文件中,添加以下配置内容:

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

其中res-ref-name的名字要与context.xml文件中名字保持一致,其他的对照着修改。
(3)测试代码:

package org.gsfan.db;

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBConnect {
    private Connection connection = null;
    public DBConnect()
    {

    }

    public Connection getConnection() {
        try {
            connection = getConnectionUseJNDI();
        } catch (NamingException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public Connection getConnectionUseJNDI() throws NamingException, SQLException{
        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/myDataSource");
        Connection conn = ds.getConnection();
        return conn;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值