zoukankan      html  css  js  c++  java
  • JNDI--Java命名和目录接口

    JNDI主要用于在容器中配置某些资源,让所有项目可以使用。
    JNDI可以提供:

    1:数据库连接池。
                自定义连接池
                 第三方连接池
           Dbcp
                        C3p0
                         JNDI
    2:邮件服务器定义。
    3:加载任意的类,让所有项目都可以使用。
            JNDI:[定义在tomcat容器中,所有项目必须要通过查找的方式获取这个服务Javax.naming.Context 环境(ENV)上下文。
                         它的一个了类:InitialContext

    配置JNDI,不用发布项目

    1、配置tomcat/conf/server.xml

    1 <Context path="/aaa" docBase="D:\Adnroid\Workspaces\day25\WebRoot"> 
    2                     <Resource name="jdbc/mysql" auth="Container"    //name--JNDI名称     auth--JNDI拥有者
    3                         type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
    4                         url="jdbc:mysql:///bookstore?characterEncoding=UTF8"
    5                         username="root" password="mysql" maxActive="10" maxIdle="30"
    6                         maxWait="-1"/>
    7         </Context>
    8</Host>

     2、将mysql-connection.jar放到tomcat/lib目录下

    3、在java项目中引用 在代码中直接查询这个jndi:

     1 //1、声明上下文环境
     2             Context ctx=new InitialContext();
     3             //2、查找apache环境
     4             ctx= (Context) ctx.lookup("java:/comp/env");
     5             //3、从环境中查找JNDI
     6             Object obj= ctx.lookup("jdbc/mysql");
     7             /*第2,3步可以合成为obj=ctx.lookup("java:/comp/env/jdbc/mysql");*/
     8             //4、测试
     9             DataSource ds=(DataSource) obj;
    10             Connection conn=ds.getConnection();
    11             System.err.println(conn);

    注:

    一般来说不会修改/server.xml,会在

    目录下新建“项目名称.xml”,在里面插入第1步中的代码

    标准DBUtils的写法

     1 public class DatasourceUtils {
     2     private  static DataSource ds;
     3     static{
     4         try{
     5             Context ctx = new InitialContext();
     6             ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/mysql");
     7         }catch(Exception e){
     8             e.printStackTrace();
     9         }
    10     }
    11     public static DataSource getDs(){
    12         return ds;
    13     }
    14 }
  • 相关阅读:
    CentOS6.5升级内核到3.10.28的记录
    redis集群搭建,手把手教学
    zookeeper集群搭建,这一篇就够了
    Caused by: java.sql.SQLException: Column 'show_type' not found
    zkEnv.sh: Syntax error: "(" unexpected (expecting "fi")记录一下解决方法。。。
    http分层
    浏览器
    less
    333
    CSS 解决方案
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4170564.html
Copyright © 2011-2022 走看看