spring配置数据源的4种方式--简介
在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 内容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans
- xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
- <bean id="propertyConfigurer"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="locations">
- <list>
- <value>/dataSource.properties</value>
- <value>/hibernateProperties.properties</value>
- </list>
- </property>
- </bean>
- <!-- spring配置数据源方式1,dbcp -->
- <!--
- <bean id="dataSource"
- class="org.apache.commons.dbcp.BasicDataSource">
- <property name="driverClassName"
- value="oracle.jdbc.driver.OracleDriver">
- </property>
- <property name="url"
- value="jdbc:oracle:thin:@127.0.0.1:1521:orcl">
- </property>
- <property name="username" value="system"></property>
- <property name="password" value="system"></property>
- </bean>
- -->
- <!-- spring配置数据源方式2,dbcp propertyConfigurer-->
- <!--
- <bean id="dataSource"
- class="org.apache.commons.dbcp.BasicDataSource">
- <property name="driverClassName"
- value="${connection.driver_class}">
- </property>
- <property name="url"
- value="${connection.url}">
- </property>
- <property name="username" value="${connection.username}"></property>
- <property name="password" value="${connection.password}"></property>
- </bean>
- -->
- <!-- spring配置数据源方式3, c3p0 -->
- <!--
- <bean id="dataSource"
- class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
- <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
- <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
- <property name="user" value="system"/>
- <property name="password" value="system"/>
- </bean>
- -->
- <!-- spring配置数据源方式4, c3p0 propertyConfigurer -->
- <!--
- <bean id="dataSource"
- class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
- <property name="driverClass" value="${connection.driver_class}"/>
- <property name="jdbcUrl" value="${connection.url}"/>
- <property name="user" value="${connection.username}"/>
- <property name="password" value="${connection.password}"/>
- </bean>
- -->
- <!-- spring配置数据源方式5, jdbc -->
- <!--
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName">
- <value>oracle.jdbc.driver.OracleDriver</value>
- </property>
- <property name="url">
- <value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value>
- </property>
- <property name="username">
- <value>system</value>
- </property>
- <property name="password">
- <value>system</value>
- </property>
- </bean>
- -->
- <!-- spring配置数据源方式6, jdbc propertyConfigurer -->
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName">
- <value>${connection.driver_class}</value>
- </property>
- <property name="url">
- <value>${connection.url}</value>
- </property>
- <property name="username">
- <value>${connection.username}</value>
- </property>
- <property name="password">
- <value>${connection.password}</value>
- </property>
- </bean>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource">
- <ref bean="dataSource" />
- </property>
- <!-- spring配置hibernate属性,方式一,使用hibernate.cfg.xml文件 -->
- <!--
- <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
- -->
- <!-- spring配置hibernate属性,方式二,直接配置属性值 -->
- <!--
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
- <prop key="hibernate.format_sql">true</prop>
- <prop key="hibernate.show_sql">true</prop>
- <prop key="hibernate.connection.pool_size">3</prop>
- </props>
- </property>
- <property name="mappingResources">
- <list>
- <value>event.hbm.xml</value>
- <value>person.hbm.xml</value>
- </list>
- </property>
- -->
- <!-- spring配置hibernate属性,方式三,配置助手propertyConfigurer使用properties文件 -->
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">${dialect}</prop>
- <prop key="hibernate.format_sql">${format_sql}</prop>
- <prop key="hibernate.show_sql">${show_sql}</prop>
- <prop key="hibernate.connection.pool_size">${connection.pool_size}</prop>
- </props>
- </property>
- <property name="mappingResources">
- <list>
- <value>event.hbm.xml</value>
- <value>person.hbm.xml</value>
- </list>
- </property>
- </bean>
- </beans>
其中涉及到的properties文件有:
dataSource.properties
- connection.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
- connection.username=system
- connection.password=system
- connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernateProperties.properties
- dialect=org.hibernate.dialect.OracleDialect
- format_sql=true
- show_sql=true
- connection.pool_size=3
大家注意到了,
- <bean id="propertyConfigurer"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="locations">
- <list>
- <value>/dataSource.properties</value>
- <value>/hibernateProperties.properties</value>
- </list>
- </property>
- </bean>
这个只是帮助你把有些需要写在xml文件外的属性值从某个properties文件读取,你用${属性名} 就
可以取到了。这其实并没有改变连接池的本质,还属于同一种连接方法。
spring配置数据源的4种方式--简介相关推荐
- Spring配置数据源的四种方式
1.使用Spring自带的DriverManagerDataSource <?xml version="1.0" encoding="UTF-8"?> ...
- spring配置属性的两种方式
spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...
- jdbc Template 介绍和 spring 链接数据源的四种方式
为什么具体讲template介绍和spring jdbc链接数据源的几种方式放在一起介绍,在于你在使用template的时候,具体配置数据源,或者在链接配置数据源的时候要是使用template,就在在 ...
- Spring配置事务的五种方式
Java事务的类型有三种: JDBC事务. 可以将多个 SQL 语句结合到一个事务中.JDBC 事务的一个缺点是事务的范围局限于一个数据库连接.一个 JDBC 事务不能跨越多个数据库 JTA(Java ...
- Spring配置Bean的几种方式
Spring容器提供了三种装配bean的方式,所谓装配就是指将bean配置在spring容器中,并能够在类与类之间提供依赖关系. 一.隐式Bean发现机制和自动装配 Spring从两个角度来实 ...
- 快逸报表配置数据源的两种方式
一.通过JDBC配置数据源 <jdbc-ds-configs> <jdbc-ds-config> <name>hemei</name> <db-t ...
- 在Tomcat配置JNDI数据源的三种方式
转载自 在Tomcat配置JNDI数据源的三种方式 在我过去工作的过程中,开发用服务器一般都是Tomcat,数据源的配置往往都是在applicationContext.xml中配置一个dataSo ...
- Spring中配置数据源的4种形式 ---转
不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源 ...
- SpringBoot项目实现多数据源的三种方式
在开发过程中,我们经常被要求在一个项目中使用多数据源下面是总结下,使用多数据源的几种方式: 方式一:在同一实例下的不同数据库(在写SQL的时候用(数据库名称+"."+表名)) 方式 ...
最新文章
- web前端开发最佳实践_学习前端Web开发的最佳方法
- 用反向传导模拟共振并用共振频率作分类
- Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码
- 权限框架 - shiro 简单入门实例
- 分页携带请求参数_一个值得深思的小问题 请求中的参数值为空要不要携带该参数?...
- win7设置计算机临时用户,Win7小技巧:用户账户自动登录方法汇总
- oracle 5表关联查询,Oracle学习笔记5 - 表查询
- 变态的儿童国学教育与孔子真正的教育之道
- Java基础教程【第五章:Java数组】
- ASP.NET2.0中实现图像转换过滤效果
- Java实现 LeetCode 741 摘樱桃(DFS || 递推 || 传纸条)
- 《Machine Learning in Action》—— 剖析支持向量机,单手狂撕线性SVM
- centos7.4源码安装nginx-1.16.1 及NGINX最全配置 缓存缩略图4层转发
- unity3d 建立3D中文立体字
- h5唤醒软键盘(数字键盘)
- 赞!华为19级大牛分享503NoSQL进阶笔记,横扫一切
- 高中数学知识点:集合知识讲解
- 数据结构(一)——数据结构简介
- [转]MinGW与MSYS
- 【基础练习】【DFS】codevs2806 红与黑题解
热门文章
- matlab自相关法,Matlab计算自相关和互相关
- 范例ppt_经营计划与执行管理PPT,全内容商业计划书,完整课件快速套用
- Unity的NewInputSystem的InputManager实现多玩家的总结
- php文件不写结尾,php文件结尾不写?的好处有哪...-php判断两个日期相差天数的实...-php根据时间显示刚刚,几分钟前,几小时前的实现代码_169IT.COM...
- OpenShift 4 Tekton (4) - 使用Workspaces为包含Maven Build的Pipeline提速
- 使用TensorFlow.js从网络摄像头进行实时AI情感检测
- 新商标表明华为鸿蒙系统在海外或叫做“Harmony OS”
- 我对这个页面做了什么?
- MVC安全:ajax表单提交切记加上AntiForgeryToken防止跨站请求伪造 (CSRF)攻击
- 频率和波特率_实例详解 | 变频器端子启停与通信设定频率(附程序)