您的位置:首页 > 编程语言 > Java开发

JAVA_连接池、DataSource、JNDI

2016-07-10 23:16 441 查看
原文链接点击此处

1、连接池

   Connection的取得和开放是代价比较高的处理,解决这个问题的方法是连接池。

   连接池就是事先取得一定数量的Connection,程序执行处理的时候不是新建Connection,而是取得预先准备好的Connection的使用权。

 
2、DataSource

   提供连接池机能的技术叫DataSource。   Javax.sql.DataSource

   一般web服务器会提供。比如Tomcat5.5。

   DataSource可以通过new来取得,但通常是通过 JNDI 用 lookup 取得。

 
3、JNDI (Java Naming and Directory Interface)

   Java 命名和目录服务接口(Java Naming and Directory Interface,JNDI)。

   命名服务: 可以类比为Session属性的Map的高级版。实现指定名字的对象的,取得和登录。一般Web服务器会提供。

   目录服务: 和命名服务类似,但是对象的管理是层次性的。

 

   在命名服务里登录的对象,可以用lookup()取得。

 
4、基于Tomcat利用DataSource

1)JDBC驱动配置

   直接利用JDBC编程的话,JDBC驱动放在Web app的WEB-INF/lib下就可以了。

  利用DataSource的话,JDBC需要放在app服务器的类目录下:

         <Tomcat安装目录>/lib

 

2)修改context.xml文件

   在Tomcat登录DataSource有很多办法,在context.xml里追加<Resource>是最简单的。

   文件: <Tomcat安装目录>/conf/Catalina/localhost/<ProjectName.xml>

   内容: 追加<Resource>要素

 

   Resource要素

      - name,名字。用这个名字取得DataResource

      - type,类名。一般javax.sql.DataSource

      - auth,认证种类,Application或Container。Application的话,需要写认证代码。

      - username

      - password

      - driverClassName,JDBC驱动的类名

      - url,JDBC的URL

 

   例如:

   <Context>

       、、、、、、

       <Resource name="jdbc/myds" auth="Container"

           type="javax.sql.DataSource"

           username="sa" password=""

           driverClassName="org.hsqldb.jdbcDriver"

           url="jdbc:hsqldb:hsql://localhost"/>

       、、、、、、

   </Context>

 

3)使用DataSource

   例子:

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

       

        **********

 

        try{

               InitialContext ctx = new InitialContext();

               DataSource ds = (DataSource)ctx.lookup("java:comp/env/名字");

               Connection con = ds.getConnection();

 

               *******

 

        }catch(Exception e){

               throw new ServletException(e);

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MyBatis