如何实现Java与oracle数据库的连接(二)

今天我总结一下利用JNDI技术实现Java与oracle数据库的连接。

首先,先给大家介绍一下什么是JNDI:

JNDI全名叫做Java命名和目录接口(Java Naming and Directory Interface ,JNDI)是用于从Java应用程序中访问名称和目录服务的一组API,JNDI是J2EE的核心技术之一,JNDI的功能简单说就是可以简单的方式去查找某种资源。比如在Tomcat中配置了一个JNDI数据源,那么在程序中之需要用Java标准的API就可以查找到这个数据源,以后数据源配置发生变化了,等等,程序都不需要改动,之需要改改JNDI的配置就行。增加了程序的灵活性,也给系统解耦了。

上篇中我讲到的连接基本是J2SE用的比较多的,而JNDI是J2EE中用的比较多的(除了框架bean)。

由上面的介绍可以知道,我们需要在Tomcat中配置一个JNDI数据源,所以我们首先需要有一个Tomcat服务器。在eclipse中配置好Tomcat后(这里就不多做解释,改天写一篇关于在eclipse如何配置Tomcat服务器),然后在context.xml中最后加入我们数据源的配置,如下:

<Resource
        name="jdbc/jspJNDI" 
        auth="Container"
        type="javax.sql.DataSource"     

        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
        username="scott"
        password="a"


        initialSize="10"
        minIdle="5"
        maxTotal="100"
        validationQuery="select 1 from dual"
    />

基本上是能通用的这个数据源配置,数据库用户名和密码可以改动,关键是这个name,我们后面找到这个数据源是通过这个name找到的,还有其他的我在此就不多说了。

现在我们写DbHleper的内容:

package com.yc.commons;

import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import java.sql.SQLException;

public class DbHelper {
    private static DataSource dataSource;
    static{
        try {
            Context context= new InitialContext();
            //java:comp/env/ 这是调用tomcat命名目录接口资源的前缀
            dataSource = (DataSource) context.lookup("java:comp/env/jdbc/jspJNDI");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

//获取数据库连接对象
    public static Connection getConn(){
        Connection conn = null;
        if(dataSource !=null){
            try {
                conn = dataSource.getConnection();  //在数据源中取到一个连接
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return conn;
    }

剩下的测试部分我就不多说了,上篇中有讲到。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值