在spring中配置数据源这是做项目不可避免的,今天我把了解到的配置方式在这里做个总结。

本人目前知道4种方式。

1.jdbc

org.springframework.jdbc.datasource.DriverManagerDataSource

2.dbcp

org.apache.commons.dbcp.BasicDataSource

3.c3p0

com.mchange.v2.c3p0.ComboPooledDataSource

4.jndi

org.springframework.jndi.JndiObjectFactoryBean

首先,jdbc建立连接是只要有连接就新建一个connection,根本没有连接池的作用。不常用。

其次,jndi需要在web server中配置数据源,不方便于部署。不推荐。

常用的还是dbcp和c3p0.

这里我给一个有jdbc,  dbcp,  c3p0  配置数据源的例子。(经过本人测试)。

applicationContext.xml 内容如下:

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:p="http://www.springframework.org/schema/p"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  7. <bean id="propertyConfigurer"
  8. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  9. <property name="locations">
  10. <list>
  11. <value>/dataSource.properties</value>
  12. <value>/hibernateProperties.properties</value>
  13. </list>
  14. </property>
  15. </bean>
  16. <!-- spring配置数据源方式1,dbcp   -->
  17. <!--
  18. <bean id="dataSource"
  19. class="org.apache.commons.dbcp.BasicDataSource">
  20. <property name="driverClassName"
  21. value="oracle.jdbc.driver.OracleDriver">
  22. </property>
  23. <property name="url"
  24. value="jdbc:oracle:thin:@127.0.0.1:1521:orcl">
  25. </property>
  26. <property name="username" value="system"></property>
  27. <property name="password" value="system"></property>
  28. </bean>
  29. -->
  30. <!-- spring配置数据源方式2,dbcp   propertyConfigurer-->
  31. <!--
  32. <bean id="dataSource"
  33. class="org.apache.commons.dbcp.BasicDataSource">
  34. <property name="driverClassName"
  35. value="${connection.driver_class}">
  36. </property>
  37. <property name="url"
  38. value="${connection.url}">
  39. </property>
  40. <property name="username" value="${connection.username}"></property>
  41. <property name="password" value="${connection.password}"></property>
  42. </bean>
  43. -->
  44. <!-- spring配置数据源方式3, c3p0 -->
  45. <!--
  46. <bean id="dataSource"
  47. class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  48. <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
  49. <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
  50. <property name="user" value="system"/>
  51. <property name="password" value="system"/>
  52. </bean>
  53. -->
  54. <!-- spring配置数据源方式4, c3p0  propertyConfigurer -->
  55. <!--
  56. <bean id="dataSource"
  57. class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
  58. <property name="driverClass" value="${connection.driver_class}"/>
  59. <property name="jdbcUrl" value="${connection.url}"/>
  60. <property name="user" value="${connection.username}"/>
  61. <property name="password" value="${connection.password}"/>
  62. </bean>
  63. -->
  64. <!-- spring配置数据源方式5, jdbc   -->
  65. <!--
  66. <bean id="dataSource"
  67. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  68. <property name="driverClassName">
  69. <value>oracle.jdbc.driver.OracleDriver</value>
  70. </property>
  71. <property name="url">
  72. <value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value>
  73. </property>
  74. <property name="username">
  75. <value>system</value>
  76. </property>
  77. <property name="password">
  78. <value>system</value>
  79. </property>
  80. </bean>
  81. -->
  82. <!-- spring配置数据源方式6, jdbc  propertyConfigurer -->
  83. <bean id="dataSource"
  84. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  85. <property name="driverClassName">
  86. <value>${connection.driver_class}</value>
  87. </property>
  88. <property name="url">
  89. <value>${connection.url}</value>
  90. </property>
  91. <property name="username">
  92. <value>${connection.username}</value>
  93. </property>
  94. <property name="password">
  95. <value>${connection.password}</value>
  96. </property>
  97. </bean>
  98. <bean id="sessionFactory"
  99. class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  100. <property name="dataSource">
  101. <ref bean="dataSource" />
  102. </property>
  103. <!-- spring配置hibernate属性,方式一,使用hibernate.cfg.xml文件 -->
  104. <!--
  105. <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
  106. -->
  107. <!-- spring配置hibernate属性,方式二,直接配置属性值 -->
  108. <!--
  109. <property name="hibernateProperties">
  110. <props>
  111. <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
  112. <prop key="hibernate.format_sql">true</prop>
  113. <prop key="hibernate.show_sql">true</prop>
  114. <prop key="hibernate.connection.pool_size">3</prop>
  115. </props>
  116. </property>
  117. <property name="mappingResources">
  118. <list>
  119. <value>event.hbm.xml</value>
  120. <value>person.hbm.xml</value>
  121. </list>
  122. </property>
  123. -->
  124. <!-- spring配置hibernate属性,方式三,配置助手propertyConfigurer使用properties文件 -->
  125. <property name="hibernateProperties">
  126. <props>
  127. <prop key="hibernate.dialect">${dialect}</prop>
  128. <prop key="hibernate.format_sql">${format_sql}</prop>
  129. <prop key="hibernate.show_sql">${show_sql}</prop>
  130. <prop key="hibernate.connection.pool_size">${connection.pool_size}</prop>
  131. </props>
  132. </property>
  133. <property name="mappingResources">
  134. <list>
  135. <value>event.hbm.xml</value>
  136. <value>person.hbm.xml</value>
  137. </list>
  138. </property>
  139. </bean>
  140. </beans>

其中涉及到的properties文件有:

dataSource.properties

[html] view plaincopy
  1. connection.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
  2. connection.username=system
  3. connection.password=system
  4. connection.driver_class=oracle.jdbc.driver.OracleDriver

hibernateProperties.properties

[html] view plaincopy
  1. dialect=org.hibernate.dialect.OracleDialect
  2. format_sql=true
  3. show_sql=true
  4. connection.pool_size=3

大家注意到了,

[html] view plaincopy
  1. <bean id="propertyConfigurer"
  2. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  3. <property name="locations">
  4. <list>
  5. <value>/dataSource.properties</value>
  6. <value>/hibernateProperties.properties</value>
  7. </list>
  8. </property>
  9. </bean>

这个只是帮助你把有些需要写在xml文件外的属性值从某个properties文件读取,你用${属性名} 就

可以取到了。这其实并没有改变连接池的本质,还属于同一种连接方法。

spring配置数据源的4种方式--简介相关推荐

  1. Spring配置数据源的四种方式

    1.使用Spring自带的DriverManagerDataSource <?xml version="1.0" encoding="UTF-8"?> ...

  2. spring配置属性的两种方式

    spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...

  3. jdbc Template 介绍和 spring 链接数据源的四种方式

    为什么具体讲template介绍和spring jdbc链接数据源的几种方式放在一起介绍,在于你在使用template的时候,具体配置数据源,或者在链接配置数据源的时候要是使用template,就在在 ...

  4. Spring配置事务的五种方式

    Java事务的类型有三种: JDBC事务. 可以将多个 SQL 语句结合到一个事务中.JDBC 事务的一个缺点是事务的范围局限于一个数据库连接.一个 JDBC 事务不能跨越多个数据库 JTA(Java ...

  5. Spring配置Bean的几种方式

    ​ Spring容器提供了三种装配bean的方式,所谓装配就是指将bean配置在spring容器中,并能够在类与类之间提供依赖关系. 一.隐式Bean发现机制和自动装配 ​ Spring从两个角度来实 ...

  6. 快逸报表配置数据源的两种方式

    一.通过JDBC配置数据源 <jdbc-ds-configs> <jdbc-ds-config> <name>hemei</name> <db-t ...

  7. 在Tomcat配置JNDI数据源的三种方式

    转载自   在Tomcat配置JNDI数据源的三种方式 在我过去工作的过程中,开发用服务器一般都是Tomcat,数据源的配置往往都是在applicationContext.xml中配置一个dataSo ...

  8. Spring中配置数据源的4种形式 ---转

    不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源 ...

  9. SpringBoot项目实现多数据源的三种方式

    在开发过程中,我们经常被要求在一个项目中使用多数据源下面是总结下,使用多数据源的几种方式: 方式一:在同一实例下的不同数据库(在写SQL的时候用(数据库名称+"."+表名)) 方式 ...

最新文章

  1. web前端开发最佳实践_学习前端Web开发的最佳方法
  2. 用反向传导模拟共振并用共振频率作分类
  3. Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码
  4. 权限框架 - shiro 简单入门实例
  5. 分页携带请求参数_一个值得深思的小问题 请求中的参数值为空要不要携带该参数?...
  6. win7设置计算机临时用户,Win7小技巧:用户账户自动登录方法汇总
  7. oracle 5表关联查询,Oracle学习笔记5 - 表查询
  8. 变态的儿童国学教育与孔子真正的教育之道
  9. Java基础教程【第五章:Java数组】
  10. ASP.NET2.0中实现图像转换过滤效果
  11. Java实现 LeetCode 741 摘樱桃(DFS || 递推 || 传纸条)
  12. 《Machine Learning in Action》—— 剖析支持向量机,单手狂撕线性SVM
  13. centos7.4源码安装nginx-1.16.1 及NGINX最全配置 缓存缩略图4层转发
  14. unity3d 建立3D中文立体字
  15. h5唤醒软键盘(数字键盘)
  16. 赞!华为19级大牛分享503NoSQL进阶笔记,横扫一切
  17. 高中数学知识点:集合知识讲解
  18. 数据结构(一)——数据结构简介
  19. [转]MinGW与MSYS
  20. 【基础练习】【DFS】codevs2806 红与黑题解

热门文章

  1. matlab自相关法,Matlab计算自相关和互相关
  2. 范例ppt_经营计划与执行管理PPT,全内容商业计划书,完整课件快速套用
  3. Unity的NewInputSystem的InputManager实现多玩家的总结
  4. php文件不写结尾,php文件结尾不写?的好处有哪...-php判断两个日期相差天数的实...-php根据时间显示刚刚,几分钟前,几小时前的实现代码_169IT.COM...
  5. OpenShift 4 Tekton (4) - 使用Workspaces为包含Maven Build的Pipeline提速
  6. 使用TensorFlow.js从网络摄像头进行实时AI情感检测
  7. 新商标表明华为鸿蒙系统在海外或叫做“Harmony OS”
  8. 我对这个页面做了什么?
  9. MVC安全:ajax表单提交切记加上AntiForgeryToken防止跨站请求伪造 (CSRF)攻击
  10. 频率和波特率_实例详解 | 变频器端子启停与通信设定频率(附程序)