设为首页 收藏本站
查看: 988|回复: 0

[经验分享] 集成Apache Tomcat JDBC 或 Commons-DBCP

[复制链接]

尚未签到

发表于 2017-1-5 10:54:35 | 显示全部楼层 |阅读模式
  一:集成TomcatJDBC 数据源:
  1:加入:tomcat-jdbc.jar (位于tomcat\lib目录下) 与 tomcat-juli.jar (位于tomcat\bin目录下) 
 
2:加入Spring配置:

<!-- 数据源配置,使用应用内的Tomcat JDBC连接池 -->
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<!-- Connection Info -->
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 同一时间可从连接池中分配的最大连接数 -->
<property name="maxActive" value="${jdbc.maxActive}" />
<!-- 连接池中应保持的最大连接数 -->
<property name="maxIdle" value="${jdbc.maxIdle}" />
<!-- 运行"检查已经超时/废弃的连接"的线程频率(毫秒/次),默认为5000/5秒 -->
<property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" />
<!-- 连接超时的最小时间(单位:毫秒,默认为60000/60秒) -->
<property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" />
<property name="defaultAutoCommit" value="false" />
</bean>

 
3:参考官方文档:https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
 
二:集成Commons DBCP:
 
1:下载http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi,解压文件后将commons-dbcp-1.4.jar放到webapp/lib目录下.
 
2:在applicationContext.xml中加入XML代码:
 

<!-- 数据源配置, 使用应用中的DBCP数据库连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="${jdbc.maxActive}" />
<property name="maxIdle" value="${jdbc.maxIdle}" />
<property name="defaultAutoCommit" value="false" />
<property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" />
<property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" />
<property name="remarksReporting" value="true"/>
</bean>
 
  3:官方配置文档:http://commons.apache.org/proper/commons-dbcp/configuration.html 
  三: JNDI配置:
  1:在tomcat 的 context.xml(注意不是server.xml) 中配置JNDI:
  (1):简化配置:

<Resource name="jdbc/SHAM"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.6.250:3306/SHAM" />
  (2):复杂配置: 

<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mysql"/>
  2:在web.xml中增加如下配置:

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SHAM</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
  3:在spring的applicationContext.xml中增加:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd">
<!-- 数据源配置,使用应用服务器的数据库连接池 -->
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/SHAM" resource-ref="true" lookup-on-startup="true"/>
<!-- 或者使用如下配置亦可
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/SHAM"/>
</bean> -->
</beans>
  4:参考官方文档:https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
  四:
  三种数据源的JNDI配置方式:
  1:在server.xml中的<GlobalNamingResources>节点中配置全局数据源:

<GlobalNamingResources>
<Resource name="jdbc/db" ...
</GlobalNamingResources>
  且在context.xml中Context节点中配置对全局JNDI的引用:

<Context>
<ResourceLink name="jdbc/db" type="javax.sql.DataSource"  global="jdbc/db"/>...
</Context>
  2:在context.xml的Context节点中配置数据源:

<Context>
<Resource name="jdbc/db" ...
</Context>
  3:在server.xml中的工程节点中配置数据源(缺点:不能共享数据源配置):

<Context docBase="D:\WorkSpace\web\webapp" path="/web" reloadable="false">
<Resource name="jdbc/db" ...
</Context>
  4:混用以上各种方式也是可以的!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324197-1-1.html 上篇帖子: The Apache HBase Book学习篇(一) 下篇帖子: 使用apache poi读写excel文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表