`

分析共享Spring配置数据源四种方式(附相应jar包)

    博客分类:
  • SSH
SSH 
阅读更多

使用spring框架时,平常你都使用那种数据源呢?本篇博客将分享spring常用的四种配置数据源方式。

以下使用Oracle10g版本作为例子。

第一种:使用spring自带的DriverManagerDataSource

配置文件如下: 

<?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:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

	<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:@192.168.24.102:1521:sms</value>
		</property>
		<property name="username">
			<value>test</value>
		</property>
		<property name="password">
			<value>test</value>
		</property>
	</bean> 
 </beans>

第二种:DBCP数据源。

需要下载的jar包:commons-dbcp.jarcommons-pool.jar

spring的配置文件中如下: 

  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"            
        destroy-method="close">            
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />           
    <property name="url" value="jdbc:oracle:thin:@192.168.24.102:1521:sms" />           
    <property name="username" value="test"/>           
    <property name="password" value="test" />           

</bean>

第三种: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:@192.168.24.102:1521:sms " />
	<property name="user" value="test" />
	<property name="password" value="test" /> 

 </bean>

在配置c3p0数据源时,折腾许久,一直提示这个错误:

   java.sql.SQLException: No suitable driver	at java.sql.DriverManager.getDriver(Unknown Source)
	at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:224)
	at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
	at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
	at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
	at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
	at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
	at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

上网查阅很多资料,发现很多人同样为这个问题头疼,并且也给出了相应的解决办法,这个问题提示驱动不对,但是网上解决办法往往都是配置文件中的xml书写问题,若你在配置过程中出现此问题的话,可以参考这个解决办法,很令人无语的解决办法:http://kangzye.blog.163.com/blog/static/3681922320091033359708/

我在配置过程出现问题是jdbc书写马虎,导致此问题出现。o(︶︿︶)o

第四种:使用hibernate数据源

需要hiberante核心jar包。

目前三大框架较流行,spring一般与hiberante做搭档,数据库连接方式写在hiberante的配置文件中,在spring管理hibernate中的配置文件中,直接读取hibernate核心配置文件即可。

其中读取hibernate数据源与访问dao层的方式是配置在一块的。配置如下:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 <property name="configLocations">
   <list>
      <value>classpath:com/config/hibernate.cfg.xml</value>
   </list>
 </property>
 	<property name="mappingLocations"> 
<!-- 所有的实体类映射文件 -->
		<list>
			<value>classpath:com/hibernate/*.hbm.xml</value>
		</list>
</property>

 

这是常用的几种配置方式,数据源配置好了,下一步是读取Dao层,使用spring如何读取dao层呢? 

 PS:DBCP数据源需要的jar包下载http://download.csdn.net/detail/llhhyy1989/4496980

         C3P0数据源需要的jar包下载http://download.csdn.net/detail/llhhyy1989/4496988

5
5
分享到:
评论
1 楼 freedxz 2012-08-14  
有没有 tomcat jdbc connection pool的

相关推荐

    spring核心jar包

    开发者可以根据实际需求选择相应的jar包,将它们添加到项目的类路径中,以利用Spring框架提供的功能。 总之,Spring框架的这些核心组件为Java开发者提供了强大的工具,使得他们能够构建出更灵活、可测试且易于维护...

    Spring5.1.4核心jar包,包括mvc,webmvc

    在Spring 5.1.4中,Bean容器已经相当成熟,支持XML、注解和Java配置方式来定义Bean。 3. **AOP**:Spring的AOP模块提供了切面编程功能,可以定义切点(Pointcut)、通知(Advice)和切面(Aspect),用于跨切面的...

    Oracle19c 驱动jar包

    - 对于Spring框架的应用,可以使用`@Bean`注解定义数据源,或者在XML配置文件中配置`JdbcTemplate`或`DataSource`。 5. **最佳实践**: - 总是保持JDBC驱动的更新,以获取最新的性能提升和安全修复。 - 使用连接...

    spring-hibernate3.jar.zip

    在配置上,我们需要创建一个Hibernate的配置文件(hibernate.cfg.xml),定义数据源、JDBC连接信息以及实体类映射等。然后在Spring的配置文件(如applicationContext.xml)中,引入Hibernate配置,并声明...

    常用jar包说明

    - **c3p0.jar**:C3P0是一个开放源代码的JDBC连接池,被许多框架如Hibernate用作数据源管理,优化数据库连接复用。 - **commons-pool.jar**, **commons-dbcp.jar**:Apache Commons下的连接池组件,主要用于管理...

    ssh集成开发jar包(struts+spring+hibernate)

    Spring还提供了丰富的数据访问抽象,包括对JDBC、ORM(Object-Relational Mapping,对象关系映射)框架如Hibernate的支持,以及事务管理和数据源管理等。 **Hibernate框架**: Hibernate是一个优秀的ORM框架,它...

    SSH2 jar包

    SSH2 jar包是一种常用于建立安全远程连接的Java库,主要应用于Secure Shell (SSH) 协议版本2。SSH协议提供了在网络中加密通信的能力,确保数据传输的安全性,避免了密码和其他敏感信息在传输过程中被窃取。SSH2 jar...

    hibernate4.3.5+spring4.0.6+struts2的全部jar包

    4. **数据源配置**:Spring管理数据源,Hibernate通过Spring获取DataSource,实现数据访问。 5. **ModelDriven或FormDriven模式**:在Struts2 Action中利用Spring的依赖注入获取Service层对象,进行业务处理。 在...

    springmvc+mybatis+shiro jar包

    Spring MVC、MyBatis 和 ...在实际项目中,还需要配置相应的XML或Java配置文件,定义bean、数据源、事务管理器等,以实现各组件间的协同工作。同时,根据项目需求,可能还需集成其他工具,如日志、缓存、定时任务等。

    James开发所需jar包

    在Java开发中,jar(Java Archive)文件是一种标准的归档格式,用于封装多个类文件和相关的元数据,使得这些文件可以在不同环境中方便地共享和执行。 1. **Java开发基础**: Java开发依赖于Java Development Kit ...

    dbcp数据库连接池所需jar包

    3. 在你的应用程序中,通过Spring或其他方式初始化并使用数据源。 通过DBCP,你可以提高应用程序的性能和效率,特别是在高并发环境中。但同时,也需要注意监控和调整连接池的参数,以确保最佳的资源利用率和系统...

    dbcp所需要jar

    3. **配置DBCP**:在SpringMVC中使用DBCP,首先需要将所需的jar包引入到项目中,这里提供的"dbcp所需jar"应该包含了Apache Commons DBCP的相关依赖。通常,这些依赖包括`commons-dbcp.jar`和`commons-pool.jar`。...

    quartz所需jar包 1.6.0、1.8.5、2.2.1三个版本

    Quartz是一款广泛应用于Java环境中的开源任务调度框架,它允许开发者定义、安排和执行复杂的定时...同时,根据项目需求,可能需要了解并配置Quartz的各种配置选项,如数据源、触发器策略等,以实现最佳的定时任务调度。

    ehcache资料(包含ehcache jar包)

    4. **缓存更新策略**:包括`PUT`操作时自动更新、监听数据库事件触发更新等方式,确保缓存与数据源保持同步。 5. **分布式缓存**:Ehcache支持分布式部署,可以在多台服务器之间共享缓存,提高系统的可扩展性。 6....

    配置服务端支持跨域所应用到的jar包

    本篇文章将详细介绍如何配置服务端来支持跨域,以及涉及到的jar包。 首先,我们需要理解什么是跨域。同源策略限制了JavaScript从一个源获取或操作另一个源的数据。在处理这种情况时,服务器端可以通过设置CORS...

    mybatis的jar包

    3. 创建MyBatis配置文件,配置数据源、事务管理器以及映射文件的位置。 4. 使用SqlSessionFactoryBuilder创建SqlSessionFactory实例,它是创建SqlSession的工厂。 5. 通过SqlSession执行SQL,获取结果并进行映射,...

    SSM整合jar包.zip

    C3P0是一个开源的JDBC连接池,提供了数据源管理,用于提高数据库连接的效率和性能。它被SpringMVC和MyBatis等框架广泛使用。 5. **com.springsource.net.sf.cglib-2.2.0.jar**: CGLIB是一个代码生成库,用于扩展...

    shiro-jar包

    5. **编写 Realm 实现**: Realm是Shiro与应用数据源交互的桥梁,负责从数据源加载用户、角色和权限信息。你可以根据实际的数据库结构实现`AuthorizingRealm`。 6. **Shiro标签库**:Shiro提供了一组JSP标签,可以...

    log4j,httpclient,jsonp,等jar包

    然而,JSONP只支持GET请求,且没有错误处理机制,相比现代的CORS(跨源资源共享)有一定局限性。 其他的jar包如`commons-codec`提供了各种编码和解码的工具,包括Base64、URL编码等;`commons-logging`是Apache的一...

    java 四种连接数据库数据源

    ### Java 四种连接数据库数据源详解 #### 一、概述 在 Java 开发中,连接数据库是一项基本且重要的操作。随着技术的发展,Java 社区提供了多种方式来实现这一功能,以满足不同场景下的需求。本文将详细介绍 Java ...

Global site tag (gtag.js) - Google Analytics