zoukankan      html  css  js  c++  java
  • jndi

    Tomcat在启动时,会按照用户的配置,创建数据源,并把数据源对象绑定到一个名字上(用的是JNDI)。

    JNDIJava Naming and DIrectory Interface JDKjavax.naming.*

    JNDI就好比window系统的注册表,它是一个Map结构。key是一个由路径和名称组成的字符串,value就是绑定的一个对象。

    利用Tomcat管理数据源

    a、拷贝数据库驱动jar包到Tomcatlib目录下

    b、在应用的META-INF目录下建立一个名称为context.xml的配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
      <Resource name="jdbc/EmployeeDB"
                auth="Container"
                type="javax.sql.DataSource"
                username="root"
                password="root"
                driverClassName="com.mysql.jdbc.Driver"
                url="jdbc:mysql://localhost:3306/day16"
                maxActive="8"
                maxIdle="4"/>
    </Context>

    c、启动Tomcat,数据源就给你建好了

    d、在应用中如何获取数据源

    package com.itheima.test;
    
    import java.sql.Connection;
    
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
    /**
     * JDNI测试 
     *             java:comp/env   (java的计算机环境) :是Tomcat下jndi名字查找 规范
     * @author wangli
     *
     */
    public class JdniTest {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            try {
                Context initCtx = new InitialContext();
                Context envCtx = (Context) initCtx.lookup("java:comp/env");
                DataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB");//转化的类型就是  Resource结点的type属性
            
                Connection con = ds.getConnection();
                System.out.println(con);
                
                con.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        
    
    }

    特别注意:不要在main方法中获取数据源,获取不到

  • 相关阅读:
    建造者模式
    模板方法模式
    抽象工厂模式
    工厂方法模式
    Josephus环问题
    单例模式
    求两个数的最大公约数
    Nginx的安装与部署
    左京大夫显辅
    java 调用第三方系统时的连接代码-记录
  • 原文地址:https://www.cnblogs.com/baijin05/p/5075234.html
Copyright © 2011-2022 走看看