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);
        }
    }

JAVA_连接池、DataSource、JNDI的更多相关文章

  1. jdbc事务处理和连接池

    JDBC: * JDBC概念:Java DataBase Connectivity(Java数据库连接) SUN公司提供的一组连接数据库API. * JDBC开发步骤: * 1.注册驱动. * 2.获 ...

  2. JSP(Servlet)中从连接池获取连接

    1) 建立连接. 2) 执行SQL. 3) 处理结果. 4) 释放资源. Connection pool:连接池 DataSource: LDAP ( Light directory access p ...

  3. Mybatis连接池及事务

    一:Mybatis连接池 我们在学习WEB技术的时候肯定接触过许多连接池,比如C3P0.dbcp.druid,但是我们今天说的mybatis中也有连接池技术,可是它采用的是自己内部实现了一个连接池技术 ...

  4. 存储过程 务的概念 事务的特性 关于异常的处理 连接池 构JdbcUtil类

    1 存储过程    1)用当地数据库语言,写的一段业务逻辑算法,并该算法存储在客户端    2)使用存储过程需要用于CallableStatement接口,同时需要使如下SQL命令调用:{call a ...

  5. 黑马学习连接池 druid JdbcTemplate c3p0 池技术

    package cn.itcast.jdbctemplate; import org.junit.Test; import org.springframework.jdbc.core.BeanProp ...

  6. JDBC连接池C3P0

    连接池 1)传统方式找DriverManager要连接.数目是有限的. 2)传统方式的close().并没有将Connection重用.仅仅是切断应用程序和数据库的桥梁,即无发送到SQL命令到数据库端 ...

  7. Java开发笔记(一百五十一)Druid连接池的用法

    C3P0连接池自诞生以来在Java Web领域反响甚好,业已成为hibenate框架推荐的连接池.谁知人红是非多,C3P0在大型应用场合中暴露了越来越多的局限性,包括但不限于下列几点:1.C3P0管理 ...

  8. 连接池dbcp

    连接池dbcp DBCP:apache组织 使用步骤: 1.导入jar包(commons-dbcp-1.4.jar和commons-pool-1.5.6.jar.commons-logging-1.2 ...

  9. Mybatis数据连接池的配置---增删改查(以及遇见的问题)

    1.首先创建项目和各个文件,如图所示: 2.配置相关数据库连接 在jdbc.properties中加入 1 db.driver=com.mysql.jdbc.Driver 2 db.url=jdbc: ...

随机推荐

  1. Python:员工信息增删改查

    一:需求 homework.txt文件中有如下格式的人员信息: 1,Jack Wang,28,13451024608,HR,2015‐01‐072,Rain Wang,21,13451054608,I ...

  2. Jmeter(十七)Logic Controllers 之 Interleave Controller

    Interleave Controller----交错控制器,对于交错控制器官方文档解释的很清楚,上例子: 可以看到运行一次 Interleave Controller下的Sampler,运行一次 I ...

  3. Linux 防火墙和SELinux的开启和关闭

    防火墙(firewalld) 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临时打开防火墙 syste ...

  4. Android应用启动会白屏一下的解决办法

    设置透明样式,如下:<activity android:name="com.hongfans.cvi.ui.MainActivity" android:configChang ...

  5. 用wiershark抓dns数据包

    wireshark是非常好的抓包工具,捕获工具也很强大.比如说我只要抓dns数据包,其他数据包全部丢弃. 步骤如下: 选择菜单->捕获-捕获接口-输入-所选择接口的捕获过滤器:port 53 1 ...

  6. BCGcontrolBar(四) ListCtrl 操作输出显示

    Ribbon 的效果主要为在可停靠面板上放置各种组件 具体操作为新建一个watchbar 然后在watchbar上加入 ListCtrl组件 效果如下 因为是在可停靠面板上生成的 因此可以随意拖动 具 ...

  7. Qt Opengl

    目前在Qt5中做Opengl的学习时候,发现gluPerspective函数没有定义. 1: gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, ...

  8. nodejs中mysql用法

    nodejs也算是一篇脚本了我们来看nodejs如何使用mysql数据库了有了它们两组合感觉还是非常的不错哦,下面一起来看nodejs中使用mysql数据库的示例,希望能够帮助到各位. <scr ...

  9. 最精简的自定义.net 开发框架

    一. 通过自定义的HttpModule和HttpHandler,重写url,自定义路由规则,实现 Web API功能. 简单说 就是  请求路径 例如 service/method, 那么就指向当前应 ...

  10. 用socket发送信息在浏览器上显示出来

    服务端代码: import socket def main(): sock=socket.socket() sock.bind(('localhost',8089)) sock.listen(5) w ...