Spring之数据源整理
来源:互联网 发布:windows cmd 重命名 编辑:程序博客网 时间:2024/06/01 07:25
Spring通过数据源获取与各种数据库的连接,怎么理解数据源呢?通俗来讲,数据源可以看作是一个灵活、便捷的连接工厂,这个工厂可以根据实际需要动态地维护池中连接的数量、健康程度、事务等。在以往的应用中,我们可以通过在Web应用服务器上面进行配置,然后获取对应的数据源引用,对此,Spring中不但可以通过JNDI获取应用服务器的数据源,也可以在Spring容器中配置数据源,甚至还可以直接通过编码的方式创建一个数据源等,本篇博客的主要内容就是要介绍Spring那些常见的数据源;
第一,先看看Spring对于Web应用服务器提供的数据源的支持,看下面一段简单的Web应用服务器端配置(具体配置方式在此不做叙述)。
由于是在服务器端配置的,所以一旦启动服务器,该数据源会自动得到创建,我们要做的事情就是在Spring侧直接获取就可以了,可以在Spring配置文件中,如下配置,正常使用就可以:
<!-- 从Web应用服务器获取配置的数据源信息 --><bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" p:jndiName="java:comp/env/jdbc/TestDB"/>
第二,接下来再来看看Spring框架本身提供的一个简单的数据源实现类DriverManagerDataSource,由于它并没有提供数据源连接池的功能,也就是说每次从该数据源获取连接时,都会简单地创建一个新的连接,所以它在大量连接请求的性能上表现不佳,因此Spring官方推荐它用于单元测试或简单的独立应用中,它既可以通过编码方式构建,也可以通过XML配置的方式,下面以此展示:
代码即数据结果如下:
package com.ssh.test;import org.springframework.jdbc.datasource.DriverManagerDataSource;public class DriverManagerDataSourceConstructTest {public static void main(String[] args) {DriverManagerDataSource dataSource = new DriverManagerDataSource();dataSource.setDriverClassName("com.mysql.jdbc.Driver");dataSource.setUrl("jdbc:mysql://localhost:3306/ssh");dataSource.setUsername("root");dataSource.setPassword("root");System.out.println(dataSource);}}
接下来看看XML配置方式,同样达到配置数据源效果:
<pre name="code" class="html"><!-- 将类路径下面的jdbc.properties里面记载的属性放置到Spring容器中 --><context:property-placeholder location="classpath:jdbc.properties" /><!-- 配置BasicDataSource数据源信息 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>
jdbc.properties配置内容如下:
jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc\:mysql\://localhost\:3306/sshjdbc.username=rootjdbc.password=root
第三,下面介绍第三种数据源,DBCP数据源;DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括commons-pool的类包,配置基本同上面XML配置:
<!-- 将类路径下面的jdbc.properties里面记载的属性放置到Spring容器中 --><context:property-placeholder location="classpath:jdbc.properties" /><!-- 配置BasicDataSource数据源信息 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>
第四,C3P0数据源,这个数据源是一个开放源代码的JDBC数据源实现项目,该数据源拥有比DBCP更丰富的配置属性,功能更强些,推荐使用这个数据源;
<!-- 将类路径下面的jdbc.properties里面记载的属性放置到Spring容器中 --><context:property-placeholder location="classpath:jdbc.properties" /><!-- 配置ComboPooledDataSource数据源信息 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><property name="driverClass" value="${jdbc.driverClassName}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>
除了上述数据源之外,还有另外几种数据源,在上述叙述中,没有说明更为细致的配置,详细配置请参照对应数据源的产品文档,本篇博客的目的就是给对Spring数据源含糊不清的,做一些引导说明,为下篇Spring和Hibernate做准备!
1 0
- Spring之数据源整理
- Spring数据源Spring数据源配置之JDBC
- Spring数据源配置之Hibernate
- Spring数据源支持之Mybatis
- Spring数据源配置之c3p0
- Spring数据源配置之dpcp
- Spring数据源配置之bonecp
- Spring数据源配置之Druid
- Spring数据源配置之jndi
- JTA之spring 整理
- JTA之spring 整理
- JTA之spring 整理
- JTA之spring 整理
- Spring实战4之数据源篇
- mybatis 之spring 数据源配置详解
- Spring学习(三)之DBCP数据源
- Spring学习(四)之C3P0数据源
- Spring数据源
- Log4j使用
- 信息更新小红点显示——自定义控件BadgeView的使用介绍
- 按钮ActionEvent事件
- Struts2中的异常处理
- Seaborn初探
- Spring之数据源整理
- C语言字节对齐
- android调用系统相机和相册
- 如何获取动态key的json数据
- 登录对话框的建立(VS2008+MFC)
- 一个继承UITabbarController的基类,可以很方便的布局好tabbar的各个Item
- js触发事件
- 腾讯优测优分享-Android适配中两个世界的碰撞——视觉&开发
- MAS报错,iOS9.3下不能使用equalTo(self.view)这样的语句