2019独角兽企业重金招聘Python工程师标准>>>

1.将数据库驱动程序的JAR文件放在Tomcat的 common/lib 中;

2.在server.xml中设置数据源,以MySQL数据库为例,如下:
在<GlobalNamingResources> </GlobalNamingResources>节点中加入,
      <Resource
      name="jdbc/DBPool"
      type="javax.sql.DataSource"
      password="root"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      username="root"
      url="jdbc:mysql://127.0.0.1:3306/test"
      maxActive="4"/>
   属性说明:name,数据源名称,通常取”jdbc/XXX”的格式;
            type,”javax.sql.DataSource”;
            password,数据库用户密码;
            driveClassName,数据库驱动;
            maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连
                     接将被标记为不可用,然后被释放。设为0表示无限制。
            MaxActive,连接池的最大数据库连接数。设为0表示无限制。
            maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示
                     无限制。

3.在你的web应用程序的web.xml中设置数据源参考,如下:
  在<web-app></web-app>节点中加入,
  <resource-ref>
    <description>MySQL DB Connection Pool</description>
    <res-ref-name>jdbc/DBPool</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
 </resource-ref>
  子节点说明: description,描述信息;
               res-ref-name,参考数据源名字,同上一步的属性name;
               res-type,资源类型,”javax.sql.DataSource”;
               res-auth,”Container”;
               res-sharing-scope,”Shareable”;

4.在web应用程序的context.xml中设置数据源链接,如下:
  在<Context></Context>节点中加入,
  <ResourceLink
   name="jdbc/DBPool" 
   type="javax.sql.DataSource" 
   global="jdbc/DBPool"/>
   属性说明:name,同第2步和第3步的属性name值,和子节点res-ref-name值;
             type,同样取”javax.sql.DataSource”;
             global,同name值。
 
至此,设置完成,下面是如何使用数据库连接池。
1.建立一个连接池类,DBPool.java,用来创建连接池,代码如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBPool {
    private static DataSource pool;
    static {
         Context env = null;
          try {
              env = (Context) new InitialContext().lookup("java:comp/env");
              pool = (DataSource)env.lookup("jdbc/DBPool");
              if(pool==null) 
                  System.err.println("'DBPool' is an unknown DataSource");
               } catch(NamingException ne) {
                  ne.printStackTrace();
          }
      }
    public static DataSource getPool() {
        return pool;
    }
}

2. 在要用到数据库操作的类或jsp页面中,用DBPool.getPool().getConnection(),获得一个Connection对象,就可 以进行数据库操作,最后别忘了对Connection对象调用close()方法,注意:这里不会关闭这个Connection,而是将这个 Connection放回数据库连接池。

转载于:https://my.oschina.net/odysuess/blog/17039

Tomcat 的数据库连接池设置与应用相关推荐

  1. Spring JDBC数据库连接池设置

    对于任何Java应用程序而言, 在Spring框架中设置JDBC数据库连接池都是很容易的,仅需更改spring配置文件中的一些配置即可.使用Apache Commons DBCP和Commons Po ...

  2. Tomcat配置数据库连接池

    方法一: 在Tomcat的conf/context.xml中配置 在 Tomcat\apache-tomcat-6.0.33\conf 目录下的 context.xml文件中配置 默认值如下: < ...

  3. Durid数据库连接池设置ConnectionInitSqls参数解决数据库设置编码utf8mb4

    背景:数据库在存储特殊字符时,数据库编码必须使用utf8mb4,否则会报Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F-' for column ' ...

  4. tomcat 配置 数据库连接池

    1.在项目的META-INF下面,添加context.xml文件(指定单个项目使用数据库连接池,也可配置全局的): <?xml version="1.0" encoding= ...

  5. 数据库连接池设置多大才合适?

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 4 分钟. 来自:www.jianshu.com/p/a8f653fc0c54 本文内容95%译自这篇文章: https:// ...

  6. tomcat+mysql数据库连接池的操作

    使用tomcat中的context.xml设置连接池 打开文件:Apache Software Foundation\Tomcat 6.0\conf\context.xml <Resource ...

  7. eclipse链接mysql数据池配置_Eclipse中配置Tomcat的数据库连接池 | 学步园

    前提是把需要的msutil.jar mssqlserver.jar msbase.jar mssqlserver4v65.jar 放到tomcat/common/lib下 1.把数据库JDBC驱动拷贝 ...

  8. Tomcat 配置数据库连接池

    假设: Web程序名为abc  数据库名称是testdb 1. 在Tomcat的\conf\Catalina\localhost中建立 abc.xml 2. abc.xml 内容为 <Conte ...

  9. JavaWeb基础—数据库连接池DBCP、C3P0

    一.基本概念 数据库连接池负责分配.管理和释放数据库连接 数据库连接池:(池用map来实现居多) 用处:为了可重用(销毁创建麻烦,开销大)(招培训老师的例子) 二.编写实现数据库连接池 池参数: 初识 ...

最新文章

  1. Java 学习笔记 ------第二章 从JDK到IDE
  2. pandas使用replace函数和正则表达式移除dataframe字符串数据列中尾部指定模式字符串(Removing trailing substring in dataframe)
  3. Oracle入门(十四.17)之procedure传递参数
  4. CSS Grid网格布局全攻略
  5. CSS3(animation, trasfrom)总结
  6. python中的str方法和repr方法_Python中 的 __str__ 方法和 __repr__ 方法的区别有哪些
  7. echars显示折点数据_Echarts 折线图一个点显示多个实时数据tooltip
  8. Qt工作笔记-Qt5中中文编码方面的笔记
  9. SQLAlchemy 教程 —— 基础入门篇
  10. Flutter 萌新高频问题(加班猿妈妈叫你回家吃饭了)
  11. 1337. 矩阵中战斗力最弱的 K 行
  12. Spring 数据处理框架的演变
  13. StarUML 系列,静态图与动态图,用例图,类图【ps:熟悉一下starUML】
  14. silverlight 实现全屏
  15. python输入的字符串转换为对应的数字类型_第1期 | psychopy:数据类型及运算符
  16. 一步一步安装 Windows Server 2008 Beta3(Code Name Longhorn)
  17. 公司年会不知道送什么?2021平价高颜值蓝牙耳机推荐
  18. python遥感数据有偿处理_地质男转行学遥感Python——DMSP数据预处理二
  19. 【Ubuntu破解UltraEdit】破解UltraEdit
  20. 如何生成微信小程序码(获取微信小程序码)

热门文章

  1. C#.NET如何判断是否有缺少的using
  2. 【Mysql】Mysql root 权限下无法创建数据库
  3. 创建 Web 前端开发环境(node和npm)
  4. Spring Bean 中的线程安全
  5. Hibernate 乐观锁和悲观锁
  6. LINUX samba的安装使用
  7. 在DataGrid中添加一个LookUpColumn,以比较灵活地实现DictValue值代替DictID值显示.
  8. switch……case里的case能不能同时定义多个值呢?
  9. 客户端读写hdfs数据
  10. matplotlib之plot