zoukankan      html  css  js  c++  java
  • Java数据库连接池的配置

     
    为什么使用数据库连接池:
    数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能
     
    数据库连接池的配置过程:
    1.项目WebContent/META-INF下新建context.xml文件,代码如下
    <?xml version="1.0" encoding="UTF-8"?>
    <Context>  
    <Resource name="jdbc/mysql"      
    auth="Container"      
        type="javax.sql.DataSource"      
        driverClassName="com.mysql.jdbc.Driver"      
        url="jdbc:mysql://localhost:13306/bookshop"      
        username="root"      
        password="123456"      
        maxActive="1000"      
        maxIdle="20"      
        maxWait="10000" />      
    </Context>
     
    2.打开WebContent/WEB-INF/web.xml 添加如下代码
    <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/mysql</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
      </resource-ref>
    </web-app>
     
    3.下面就可以写代码了
    在src 下建立DataSourceManager.java 部分代码如下
    public class DataSourceManager {
    private static Context context;
    private static DataSource dataSource;
    static
    {
    try {
    //实例上下文目录
    context = new InitialContext();
    //在命名空间和目录空间中查找 数据源名称 返回数据库连接池对象 JNDI
    dataSource = (DataSource)context.lookup("java:comp/env/jdbc/mysql");
    } catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
     
    }
     
    4.可以建立一个jsp页面测试datasource连接的建立是否成功,如下,在浏览器访问页面
    <body>
    <%
    Connection connection = DataSourceManager.getConnection();
    out.println("连接成功!");
     
    %>
    </body>
  • 相关阅读:
    安装docker (centos7.6)
    idea docker docker-compose发布springboot站点到tomcat
    tomcat启动慢的解决办法
    skywalking6.3.0安装(centos7.6)
    RocketMQ集群安装 2主2从 console
    RocketMQ官方启动脚本不支持jdk11的修改
    python在windows上创建虚拟环境
    JVM之Java运行时数据区(线程共享区)
    Dijkstra算法和Floyd算法
    JVM之Java运行时数据区(线程隔离区)
  • 原文地址:https://www.cnblogs.com/liuxiuhao/p/lianjiechi.html
Copyright © 2011-2022 走看看