zoukankan      html  css  js  c++  java
  • mybatis学习三 数据库连接池技术

    1.在内存中开辟一块空间,存放多个数据库连接对象.就是Connection的多个实例
    2. 连接池技术有很多,c3p0,dbcp,druid,以及JDBC Tomcat Pool,

      JDBC Tomcat Pool直接由 tomcat 产生数据库连接池.
    3.图示
      3.1 active 状态:当前连接对象被应用程序使用中
      3.2 Idle 空闲状态:等待应用程序使用

    4.使用数据库连接池的目的
      4.1 在高频率访问数据库时,使用数据库连接池可以降低服务器系
        统压力,提升程序运行效率.
      4.1.1 小型项目不适用数据库连接池.

    5.实现 JDBC tomcat Pool 的步骤.
      5.1 在 web 项目的 META-INF 中存放 context.xml,在 context.xml 编写数据库连接池相关属性

    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
    
        <Resource
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://192.168.153.128:3306/mybaties?characterEncoding=utf-8"
            username="root"
            password="123456"
            maxActive="50"
            maxIdl="20"
            name="test"
            auth="Container"
            maxWait="10000"
            type="javax.sql.DataSource"
        />    
    </Context>
    maxActive="50"  连接池中最多有50个处于活动状态的Connection对象,也就是最大并发量
    maxIdl="20"   连接池中最多有20个Connection处于空闲状态
    name="test" 当前连接池的名称是test auth="Container" 当前连接池归Tomcat容器管理,也可以设置成应用程序管理 maxWait="10000" 一个链接请求最长的等待毫秒数,如果超过时间还没有请求到Connection对象,就报错 type="javax.sql.DataSource" 连接池在java中对应的对象

    5.2 把项目发布到 tomcat 中,数据库连接池产生了

    6.可以在 java 中使用 jndi 获取数据库连接池中对象
      6.1 Context:上下文接口.context.xml 文件对象类型
      6.2 代码: 注意  下面的代码是写在Servlet中,并不是普通 java类中

    Context cxt = new InitialContext();
    DataSource ds = (DataSource)
    cxt.lookup("java:comp/env/test");//前面的固定,text是context.xml配置的name属性的值
    Connection conn = ds.getConnection();


      

  • 相关阅读:
    discuz 帖子模块用到的表及自动发帖函数
    【转】php json_encode中文为空的解决办法
    linux自定义脚本添加到rc.local脚本无法正常运行的问题
    【转】实战 SSH 端口转发
    linux shell脚本守护进程监控svn服务
    解决ecshop登陆自动退出的莫名现象
    windows下不打开浏览器访问网页的方法
    【转】windows下安装和调用curl的方法
    调用discuz编辑器发布帖子显示html代码的解决办法
    linux下搭建svn版本控制软件
  • 原文地址:https://www.cnblogs.com/cplinux/p/9601493.html
Copyright © 2011-2022 走看看