- 浏览: 447400 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (267)
- java (8)
- 求职&面试 (1)
- linux (33)
- windows (1)
- C++ (5)
- android (12)
- QT (1)
- 经验 (1)
- memory-leaks (1)
- Streaming&V/A (1)
- network&security (5)
- SCM (13)
- mysql (10)
- browsers (4)
- Windows APIs (2)
- opensource (1)
- pm (1)
- GDI (1)
- database (14)
- MFC (1)
- web&fronts (17)
- Tomcat (4)
- OLE (1)
- 观后感 (1)
- Production (2)
- UML (3)
- Javascript (7)
- Cloud Computing&SAAS (5)
- SoftwareEngineering (1)
- Computer&Maintenance (1)
- Web (8)
- Desgin (1)
- J2ee (10)
- mysql cluster (0)
- LB&HA (2)
- webserver (11)
- php (5)
- cas&authtication (0)
- Languages (1)
- IDEs (3)
- architecture (2)
- iOS (8)
- spring (3)
- webservices (1)
- security (1)
- MVCFrameworks (2)
- bservices (0)
- build-tools (2)
- unittest (1)
- spring-security (0)
- sphinx (2)
- hibernate (1)
- mybatis (2)
- search (0)
- nginx (2)
- design&production (2)
- DFS (0)
- algorithm (0)
- distributed&network (0)
- blogs (0)
- os&admin (0)
- fastcgi (0)
- kv-db (0)
- operation&maintenance (1)
- productions (9)
- 养生 (1)
- appserver (1)
- HTTP (2)
- test (1)
- erlang (2)
- browser (0)
- 非技术 (2)
- mobiles (2)
- cloud computing (2)
- Business (2)
- maven (1)
- python (5)
- 人生 (0)
- Cryptography (3)
- CV (0)
- cms (2)
- jqm (2)
- html (2)
- flex (1)
- redmine (1)
- iptables (1)
- groovy (1)
- scala (1)
- grails (1)
- ftp (3)
- vsftpd (2)
- lua (0)
- chroot (3)
- jailkit (3)
- UED (0)
- myeclipse (2)
- ide (2)
- eclipse (2)
最新评论
-
Nick712:
http://blog.csdn.net/victory08/ ...
处理SVN出现:Cleanup failed to process the following paths: xxx -
xs6262460:
Spring AOP根据JdbcTemplate方法名动态设置数据源 -
xhpscdx:
我的解决办法是把D:\ACRS\Projects\TAIS 下 ...
处理SVN出现:Cleanup failed to process the following paths: xxx -
hnraysir:
总结得相当不错,支持下。
使用CodeIgniter 创建 RESTful 服务 REST API【原创译文】 -
云上太阳:
这个必须评论下,间接的救过俺的命啊
解决tomcat启动报错,加强错误日志的显示:
本文非原创!
Spring下 mybatis 多数据源配置
介绍
本文描述了以 mybatis 作为持久层框架使用 Spring的声明式事务时,如何配置多个数据源(即连接多个数据库),使用 Spring 的注解方式迚行依赖的注入和事务的管理。并且利用 mybatis 的spring 插件自动扫描和装配 Mapper 接口。
先来看一个mybatis 的单数据源配置 <context:property-placeholder location="classpath:jdbc.properties" />
<bean id="dataSource"class="org.logicalcobwebs.proxool.ProxoolDataSource" >
<property name= "alias" value="${alias}" />
<property name= "driver" value="${driver}" />
<property name= "driverUrl" value="${driverUrl}" />
<property name= "user" value="${user}" />
<property name= "password" value="${password}" />
<property name= "houseKeepingTestSql" value="${house-keeping-test-sql}" />
<property name= "maximumConnectionCount" value="${maximum-connection-count}" />
<property name= "minimumConnectionCount" value="${minimum-connection-count}" />
<property name= "prototypeCount" value="${prototype-count}" />
<property name= "simultaneousBuildThrottle" value="${simultaneous-build-throttle}" />
<property name= "trace" value="${trace}" />
</bean>
<bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name= "dataSource" ref="dataSource" />
</bean>
<bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean" >
<property name= "dataSource" ref="dataSource" />
<property name= "configLocation" value="classpath:mybatis-config.xml" ></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 自动扫描mapper 接口 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name="basePackage" value="rhinoceros.persistence.dao" />
</bean>
说明
1. 数据库连接池使用Proxool,首先配置的就是Proxool的数据源
2. 接下来配置Spring的声明式事务管理,这里我们使用全注解+自动装配的方式迚行Bena和事务声明。
3. mybatis配置为自动扫描Maper接口,只要指定Mapper接口所在的包,需要注意的是,Mapper接口对应的映射文件(.xml)也要在这个包里,且名字和接口的名字一致。
使用多个数据源时,mybatis的文档表示丌能使用自动扫描和自动装配,但实际使用时发现还是可以的。看一个配置文件先:
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- proxool连接池 -->
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="alias" value="${alias}" />
<property name="driver" value="${driver}" />
<property name="driverUrl" value="${driverUrl}" />
<property name="user" value="${user}" />
<property name="password" value="${password}" />
<property name="houseKeepingTestSql" value="${house-keeping-test-sql}" />
<property name="maximumConnectionCount" value="${maximum-connection-count}" />
<property name="minimumConnectionCount" value="${minimum-connection-count}" />
<property name="prototypeCount" value="${prototype-count}" />
<property name="simultaneousBuildThrottle" value="${simultaneous-build-throttle}" />
<property name="trace" value="${trace}" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 注解式事务管理 -->
<tx:annotation-driven transaction-manager= "transactionManager" />
<!-- 自动扫描 mybatis mapper 接口 -->
<bean name="mapperScannerConfigurer"class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name= "basePackage" value="rhino.persistence.mapper" />
<property name= "sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<!-- 配置新的的数据源 -->
<bean id="dataSource_1" class="org.logicalcobwebs.proxool.ProxoolDataSource" >
<property name= "alias" value="${db1.alias}" />
<property name= "driver" value="${driver}" />
<property name= "driverUrl" value="${db1.driverUrl}" />
<property name= "user" value="${db1.user}" />
<property name= "password" value="${db1.password}" />
<property name= "houseKeepingTestSql" value="${house-keeping-test-sql}" />
<property name= "maximumConnectionCount" value="${maximum-connection-count}" />
<property name= "minimumConnectionCount" value="${minimum-connection-count}" />
<property name= "prototypeCount" value="${prototype-count}" />
<property name= "simultaneousBuildThrottle" value="${simultaneous-build-throttle}" />
<property name= "trace" value="${trace}" />
</bean>
<bean id="sqlSessionFactory_1" class="org.mybatis.spring.SqlSessionFactoryBean" >
<property name= "dataSource" ref="dataSource_1" />
<property name= "configLocation" value="classpath:mybatis-config-db1.xml" />
</bean>
<bean id="transactionManager_1"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name= "dataSource" ref="dataSource_1" />
</bean>
<tx:annotation-driven transaction-manager= "transactionManager_1" />
<!-- 自动扫描 mybatis mapper 接口 -->
<bean name="mapperScannerConfigurer_1"class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name= "basePackage" value=rhino.persistence.db1" />
<property name= "sqlSessionFactory" ref="sqlSessionFactory_1" />
</bean>
<!-- spring beans 组件扫描 -->
<context:component-scan base-package="rhino.domain" />
说明
1. 需要配置新的数据源、事务管理器、 sqlSession 工厂
2. mybatis配置文件也要独立出来,即 2 个数据源应该有 2个 mybatis 配置文件,互相之间是独立的,注意配置 sqlSessionFactory_1 时注入的mybatis-config-db1.xml
3. Mapper接口要放在一个新的包里
4. 2 个以上的数据源同样配置
介绍
本文描述了以 mybatis 作为持久层框架使用 Spring的声明式事务时,如何配置多个数据源(即连接多个数据库),使用 Spring 的注解方式迚行依赖的注入和事务的管理。并且利用 mybatis 的spring 插件自动扫描和装配 Mapper 接口。
先来看一个mybatis 的单数据源配置 <context:property-placeholder location="classpath:jdbc.properties" />
<bean id="dataSource"class="org.logicalcobwebs.proxool.ProxoolDataSource" >
<property name= "alias" value="${alias}" />
<property name= "driver" value="${driver}" />
<property name= "driverUrl" value="${driverUrl}" />
<property name= "user" value="${user}" />
<property name= "password" value="${password}" />
<property name= "houseKeepingTestSql" value="${house-keeping-test-sql}" />
<property name= "maximumConnectionCount" value="${maximum-connection-count}" />
<property name= "minimumConnectionCount" value="${minimum-connection-count}" />
<property name= "prototypeCount" value="${prototype-count}" />
<property name= "simultaneousBuildThrottle" value="${simultaneous-build-throttle}" />
<property name= "trace" value="${trace}" />
</bean>
<bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name= "dataSource" ref="dataSource" />
</bean>
<bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean" >
<property name= "dataSource" ref="dataSource" />
<property name= "configLocation" value="classpath:mybatis-config.xml" ></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 自动扫描mapper 接口 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name="basePackage" value="rhinoceros.persistence.dao" />
</bean>
说明
1. 数据库连接池使用Proxool,首先配置的就是Proxool的数据源
2. 接下来配置Spring的声明式事务管理,这里我们使用全注解+自动装配的方式迚行Bena和事务声明。
3. mybatis配置为自动扫描Maper接口,只要指定Mapper接口所在的包,需要注意的是,Mapper接口对应的映射文件(.xml)也要在这个包里,且名字和接口的名字一致。
使用多个数据源时,mybatis的文档表示丌能使用自动扫描和自动装配,但实际使用时发现还是可以的。看一个配置文件先:
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- proxool连接池 -->
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="alias" value="${alias}" />
<property name="driver" value="${driver}" />
<property name="driverUrl" value="${driverUrl}" />
<property name="user" value="${user}" />
<property name="password" value="${password}" />
<property name="houseKeepingTestSql" value="${house-keeping-test-sql}" />
<property name="maximumConnectionCount" value="${maximum-connection-count}" />
<property name="minimumConnectionCount" value="${minimum-connection-count}" />
<property name="prototypeCount" value="${prototype-count}" />
<property name="simultaneousBuildThrottle" value="${simultaneous-build-throttle}" />
<property name="trace" value="${trace}" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 注解式事务管理 -->
<tx:annotation-driven transaction-manager= "transactionManager" />
<!-- 自动扫描 mybatis mapper 接口 -->
<bean name="mapperScannerConfigurer"class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name= "basePackage" value="rhino.persistence.mapper" />
<property name= "sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<!-- 配置新的的数据源 -->
<bean id="dataSource_1" class="org.logicalcobwebs.proxool.ProxoolDataSource" >
<property name= "alias" value="${db1.alias}" />
<property name= "driver" value="${driver}" />
<property name= "driverUrl" value="${db1.driverUrl}" />
<property name= "user" value="${db1.user}" />
<property name= "password" value="${db1.password}" />
<property name= "houseKeepingTestSql" value="${house-keeping-test-sql}" />
<property name= "maximumConnectionCount" value="${maximum-connection-count}" />
<property name= "minimumConnectionCount" value="${minimum-connection-count}" />
<property name= "prototypeCount" value="${prototype-count}" />
<property name= "simultaneousBuildThrottle" value="${simultaneous-build-throttle}" />
<property name= "trace" value="${trace}" />
</bean>
<bean id="sqlSessionFactory_1" class="org.mybatis.spring.SqlSessionFactoryBean" >
<property name= "dataSource" ref="dataSource_1" />
<property name= "configLocation" value="classpath:mybatis-config-db1.xml" />
</bean>
<bean id="transactionManager_1"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name= "dataSource" ref="dataSource_1" />
</bean>
<tx:annotation-driven transaction-manager= "transactionManager_1" />
<!-- 自动扫描 mybatis mapper 接口 -->
<bean name="mapperScannerConfigurer_1"class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
<property name= "basePackage" value=rhino.persistence.db1" />
<property name= "sqlSessionFactory" ref="sqlSessionFactory_1" />
</bean>
<!-- spring beans 组件扫描 -->
<context:component-scan base-package="rhino.domain" />
说明
1. 需要配置新的数据源、事务管理器、 sqlSession 工厂
2. mybatis配置文件也要独立出来,即 2 个数据源应该有 2个 mybatis 配置文件,互相之间是独立的,注意配置 sqlSessionFactory_1 时注入的mybatis-config-db1.xml
3. Mapper接口要放在一个新的包里
4. 2 个以上的数据源同样配置
发表评论
-
SpringMVC、MyBatis声明式事务管理
2012-10-23 00:36 1327SpringMVC、MyBatis声明 ... -
hibernate+spring 注解 对事务的一些信息
2012-10-23 00:33 888hibernate+spring 注解 对事务的一些信息 ... -
Spring 事务配置方法二则
2012-10-23 00:06 948Spring 事务配置方法二则 第一种配置 ... -
Spring事务配置的五种方式
2012-10-23 00:04 759Spring事务配置的五种方式 前段时间对Sp ... -
Log4j使用总结
2012-09-26 19:18 853Log4j使用总结 一、介绍 Log4 ... -
Spring中的ContextLoaderListener作用
2012-09-23 13:12 0Spring中的ContextLoaderListe ... -
PO BO VO DTO POJO DAO概念
2012-09-21 16:28 961PO BO VO DTO POJO DAO概 ... -
Spring Jar包详解
2012-09-19 20:14 895Spring Jar包详解 spr ... -
结合Spring使用Mybatis Generator生成的代码
2012-09-05 23:26 0结合Spring使用Mybatis Generato ... -
JPetStore项目分析——分析一个典型J2EE应用web层的实现
2012-09-05 11:18 0J PetStore项目分析——分析一个典型J2EE应 ... -
在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
2012-08-23 10:26 1205在Hibernate里面动态切换SChema实现访问 ... -
Spring AOP根据JdbcTemplate方法名动态设置数据源
2012-08-23 10:05 8632Spring AOP根据JdbcTemplate方 ... -
基于 Spring 和 iBATIS 的动态可更新多数据源持久层
2012-08-20 14:45 0我们时常会遇到一些 web 项目,需要从不同的数据源中抓 ...
相关推荐
### Spring 下 MyBatis 多数据源配置详解 在企业级应用开发中,经常会遇到需要同时操作多个数据库的情况。为了实现这一目标,开发者通常会采用多数据源配置的方法。本篇文章将详细介绍如何在Spring框架中配置...
本文将详细介绍如何在Spring环境下配置MyBatis以支持多个数据源,并利用Spring的注解进行依赖注入和事务管理。 首先,我们来看一个简单的MyBatis单数据源配置。在Spring中,通常会使用`org.logicalcobwebs.proxool....
总之,Spring+MyBatis多数据源配置是大型项目中常见的需求,它通过`AbstractRoutingDataSource`实现了动态数据源选择,结合MyBatis的Mapper接口和注解,可以方便地在多个数据库之间切换,从而满足复杂的数据库访问...
当我们需要处理多个数据源时,例如在分布式系统或读写分离的场景下,Spring整合MyBatis的多数据源切换就显得尤为重要。这个"spring整合mybatis多数据源"的示例提供了可运行的代码,帮助开发者理解和实践这一功能。 ...
在多数据源配置中,Spring能够帮助管理不同的数据源,通过配置bean来切换和控制数据源的使用。 **SpringMVC** 是Spring框架的一部分,专为Web开发设计。它简化了模型-视图-控制器(Model-View-Controller,MVC)的...
在企业级应用开发中,经常需要访问和操作多个...以上内容涉及到了Spring框架下多数据源配置的基本原理,以及通过MyBatis与Spring结合实现数据源的管理和操作。掌握这些知识点有助于开发出高效、稳定的企业级应用。
当我们面临多数据源的配置需求时,即在一个应用程序中需要同时操作多个数据库,Spring和Mybatis的集成就显得尤为重要。这篇博客“Spring+Mybatis 多数据源配置”将深入探讨如何在项目中实现这一功能。 首先,我们...
通过这个项目,你可以了解到如何在Spring Boot中结合MyBatis实现多数据源配置,这对于理解和实践微服务架构下的数据管理非常有帮助。在实际开发中,还需要注意性能优化、数据隔离以及事务处理等细节问题。
Spring Boot 和 MyBatis 的组合提供了这样的灵活性,可以方便地进行多数据源配置。本项目实例将详细讲解如何在 Spring Boot 中集成 MyBatis 并配置多数据源。 首先,我们需要了解 Spring Boot 中的数据源配置。...
下面将详细介绍如何在 Spring 和 MyBatis 配置中实现多数据源。 首先,我们需要准备两个或更多的数据源配置。每个数据源通常包括驱动类、URL、用户名和密码等信息。例如,对于 MySQL 数据库,配置可能如下: ```...
总的来说,Spring Boot和MyBatis的多数据源解决方案为开发者提供了一种灵活、可扩展的方式来管理和操作多个数据库,满足了复杂业务场景下的需求。通过合理的配置和设计,可以有效提升系统的稳定性和性能。
Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 详细教程 本教程主要介绍了 Spring3 整合 MyBatis3 配置多数据源动态选择 SqlSessionFactory 的详细教程。下面将详细介绍如何实现 Spring 整合 ...
这些代码可以直接集成到你的项目中,只需要调整为匹配你的数据库配置,就可以实现Spring Boot 2下的多数据源支持,同时利用Hibernate和MyBatis的优势。 总之,多数据源的实现是Spring Boot 2应用中的高级特性,它...
Spring Boot结合MyBatis框架提供了一种优雅的方式来处理多数据源的配置和切换,以满足不同业务需求。本文将深入探讨如何使用Spring Boot与MyBatis实现多数据源的示例。 1. **Spring Boot简介** Spring Boot是...
总结来说,"Spring+SpringMVC+Mybatis多数据源"的整合涉及了Spring的数据源管理、SpringMVC的请求路由、Mybatis的数据源配置以及事务管理。具体实现时,可以根据项目需求选择合适的方式进行数据源切换,以达到优化...
标题 "mybatis spring 多数据源" 涉及到的...总的来说,"mybatis spring 多数据源"的主题涵盖了如何在Java应用中利用MyBatis和Spring进行多数据库管理,包括数据源配置、动态数据源路由、事务管理以及相关工具的使用。
在多数据源场景下,我们可以通过Spring Boot的@ConfigurationProperties特性来配置不同的数据源。每个数据源都需要定义一套包括URL、用户名、密码和驱动类名等属性。例如: ```java @Configuration @...
总结,Spring Boot结合Mybatis和Druid实现多数据源配置的过程包括:配置数据源、配置Mybatis、创建数据源切换器、以及针对不同数据库的测试。这一过程涉及了Spring Boot的自动配置、依赖注入、配置属性绑定等多个...
在现代企业级应用开发中,数据源管理是一个关键部分,特别是在需要访问多个数据库的情况下。Spring Boot结合MyBatis提供了一种高效且灵活的方式来管理和操作数据。本教程将深入探讨如何在Spring Boot应用中配置和...