问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

tomcat jdbc和druid对比,各自有哪些优缺点

发布网友 发布时间:2022-04-22 05:37

我来回答

1个回答

热心网友 时间:2024-01-19 22:40

JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
  com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置。
一、下载Druid的jar包
  下载地址:http://mvnrepository.com/artifact/com.alibaba/druid/1.0.9,如下图所示:
  
  druid.jar依赖log4j的jar包,所以还需要下载log4j的jar包。
  log4j的下载地址如下:http://mvnrepository.com/artifact/log4j/log4j/1.2.17,如下图所示:
  
二、使用Druid配置JNDI数据源
2.1、前期准备工作
  创建一个Web测试项目Druid_JNDI_Config,将下载下来druid-1.0.9.jar和log4j-1.2.17.jar添加到项目中,在项目的META-INF目录下创建一个context.xml文件
  目录结构如下图所示:
  
  在tomcat服务器的lib目录下添加Oracle、MySQL、SQLServer三种数据库的驱动jar包,如下图所示:
  
2.2、在context.xml文件中加入JNDI的配置信息
  在context.xml文件中加入如下配置信息

1 <Context>
2 <!-- 使用阿里巴巴的DruidDataSource配置针对Oracle数据库的JNDI数据源 -->
3 <Resource
4 name="jdbc/OracleDataSource"
5 factory="com.alibaba.druid.pool.DruidDataSourceFactory"
6 auth="Container"
7 type="javax.sql.DataSource"
8 driverClassName="oracle.jdbc.OracleDriver"
9 url="jdbc:oracle:thin:@192.168.1.229:1521:lead"
10 username="lead_oams"
11 password="p"
12 maxActive="50"
13 maxWait="10000"
14 removeabandoned="true"
15 removeabandonedtimeout="60"
16 logabandoned="false"
17 filters="stat"/>
18
19 <!-- 使用阿里巴巴的DruidDataSource配置针对MySQL数据库的JNDI数据源 -->
20 <Resource
21 name="jdbc/MysqlDataSource"
22 factory="com.alibaba.druid.pool.DruidDataSourceFactory"
23 auth="Container"
24 type="javax.sql.DataSource"
25 driverClassName="com.mysql.jdbc.Driver"
26 url="jdbc:mysql://192.168.1.233:3306/lead_oams?useUnicode=true&characterEncoding=utf-8"
27 username="lead_system"
28 password="password"
29 maxActive="50"
30 maxWait="10000"
31 removeabandoned="true"
32 removeabandonedtimeout="60"
33 logabandoned="false"
34 filters="stat"/>
35
36 <!--使用阿里巴巴的DruidDataSource配置针对SQLServer数据库的JNDI数据源-->
37 <Resource
38 name="jdbc/SqlServerDataSource"
39 auth="Container"
40 factory="com.alibaba.druid.pool.DruidDataSourceFactory"
41 type="javax.sql.DataSource"
42 driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
43 url="jdbc:sqlserver://192.168.1.61:1433;DatabaseName=gaclTest"
44 username="sa"
45 password="p@ssw0rd"
46 maxActive="50"
47 maxWait="10000"
48 removeabandoned="true"
49 removeabandonedtimeout="60"
50 logabandoned="false"
51 filters="stat"/>
52 </Context>

  配置项中指定了各个参数后,在连接池内部是这么使用这些参数的。数据库连接池在初始化的时候会创建initialSize个连接,当有数据库操作时,会从池中取出一个连接。如果当前池中正在使用的连接数等于maxActive,则会等待一段时间,等待其他操作释放掉某一个连接,如果这个等待时间超过了maxWait,则会报错;如果当前正在使用的连接数没有达到maxActive,则判断当前是否空闲连接,如果有则直接使用空闲连接,如果没有则新建立一个连接。在连接使用完毕后,不是将其物理连接关闭,而是将其放入池中等待其他操作复用。同时连接池内部有机制判断,如果当前的总的连接数少于miniIdle,则会建立新的空闲连接,以保证连接数得到miniIdle。如果当前连接池中某个连接在空闲了timeBetweenEvictionRunsMillis时间后任然没有使用,则被物理性的关闭掉。有些数据库连接的时候有超时*(mysql连接在8小时后断开),或者由于网络中断等原因,连接池的连接会出现失效的情况,这时候设置一个testWhileIdle参数为true,可以保证连接池内部定时检测连接的可用性,不可用的连接会被抛弃或者重建,最大情况的保证从连接池中得到的Connection对象是可用的。当然,为了保证绝对的可用性,你也可以使用testOnBorrow为true(即在获取Connection对象时检测其可用性),
不过这样会影响性能。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
超喜欢你的 农行面签 带什么 农行面签需要什么 宝贝药物“黑名单”,爸妈要清楚 借呗用了一次就关闭了怎么办 什么的鸟儿,什么的树木,什么的流水和什么的岩石,汇成了一幅什么的... 什么的小溪填空词语 微信视频号直播“晚安电台”类目怎么上?语音直播开了也不在这个类目中... 帝国时代系列现在出到几了? 以后呢? 求东京巴比伦所有的歌,有罪,soildgold 大都市的孩子,kiss kiss,所有的... oppofindx909怎样直接下载root权限 com.alibaba.druid.pool.DruidDataSource不支持连... OPPO find x903怎么ROOT? mysql的maven依赖怎么选择? OPPO findX怎么root? com.alibaba.druid.util.Base64 jar包下载? oppo findx root springboot整合druid为什么在application.yml中配... oppofindx如何root 请教如何不依赖配置文件纯Java调用Druid连接池 Druid如何不依赖框架实现对sql的监控 如何使用Druid监控sql alibaba 的druid所依赖tools.jar会找jdk吗 车里防冻液没有了加水可以吗 汽车防冻液里是否可以加水 颜料加水稀释后,利用敲打,颜料随性低落在画面 是... 锡纸烧烤视频需要放水吗 量热仪的注水操作步骤 视频怎么做猪肚汤 Video Capture Master好不好 oppofindx909怎样获取root权限 数据库连接池的Java连接池 为什么安卓360root显示退出安装,我的是OPPOfindX OPPO Find X 玩游戏怎么样? 简述为什么要对空间数据进行分层管理 OPPO Find X 怎么使用节能模式? 怎么把mybatis的mapper接口通过dubbo暴漏 OPPO Find X 不能连接wifi怎么办? 电脑网页怎么调大小字 买的不到一个星期的OPPOfindx出现一点小毛病,手机... 魔法的起源? oppofindx手机屏幕出现FIMDX是什么意思? OPPO Find X 拍vlog怎么样? OPPO findx 怎么下载并进入Google player OPPO Find X 怎么截屏? 摄像头容易坏吗? 手机摄像头坏了能修吗 摄像头坏了,能保证修好嘛? 摄像头损坏咋回事? 为什么电脑摄像头坏了