起因:因为阿里开源的Cobar Client是在 Spring2.x Ibatis 基层上构建的, 在Spring3.x、 Mybatis 下不可用,因此参考Cobar Client 实现原理,实现一个基于Spring3.x Mybatis 的DAL。
功能 :
1:数据路由,可以根据需要实现规则,默认数据路由基于JEXL 表达式,有了数据路由,分库、分表、读写分离都可以实现了。
2:数据合并,可以根据需要实现规则,默认合并规则,只对结果进行简单的汇总
3:夸库事务支持
特点 : 对开发人员友好
1:事务配置相关,只需要修改事务管理器类,同时配置一个数据源工厂即可
<bean id="xiuTxManager" class="com.xiu.dal.XiuDataSourceTransactionManager" >
<constructor-arg index="0" ref="dataSourcesFactory"/>
</bean>
<constructor-arg index="0" ref="dataSourcesFactory"/>
</bean>
<bean id="dataSourcesFactory" class="com.xiu.dal.datasource.DataSourcesFactory" >
<constructor-arg index="0">
<map>
<entry key="xiuBaseDataSource" value-ref="baseDataSource" />
<entry key="defaultDataSource" value-ref="dataSource" />
</map>
</constructor-arg>
</bean>
<constructor-arg index="0">
<map>
<entry key="xiuBaseDataSource" value-ref="baseDataSource" />
<entry key="defaultDataSource" value-ref="dataSource" />
</map>
</constructor-arg>
</bean>
2:sqlsession 相关配置,默认情况下只需要换一下sqlSession 实现类,同时指定数据源工厂,此时使用默认的路由已经合并规则。
<bean id="xiuSqlSession" class="com.xiu.dal.XiuSqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
<constructor-arg index="1" ref="dataSourcesFactory"/>
</bean>
<constructor-arg index="0" ref="sqlSessionFactory" />
<constructor-arg index="1" ref="dataSourcesFactory"/>
</bean>
可以在sqlSession 中指定自己的路由已经合并规则
<property name="router" ref="defaultRouter" />
<property name="merger" ref="defaultMerger" />
<property name="merger" ref="defaultMerger" />
代码与样例可参考附件:
相关推荐
【标题】"Spring+MyBatis 简单实例图书管理系统"揭示了这是一个结合了Spring框架和MyBatis持久层框架的项目实例,主要用于管理图书数据。在IT领域,Spring和MyBatis是两个非常流行的开源Java技术,它们在企业级应用...
MyBatis3的核心设计理念是简化数据访问层(DAL)的开发工作,通过XML或注解方式配置SQL语句,使得数据库操作更加直观、易于维护。下面将详细介绍MyBatis3的一些关键特性与知识点: 1. **配置文件**:MyBatis3的配置...
最新struts-2.3.8+spring-3.2.1+mybatis-3.2.2架构,包齐全,无冲突,Eclipse开发 导入工程即可 九月 18, 2013 11:39:01 上午 org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache ...
3. **配置 MyBatis 和 Spring MVC**:编写相应的配置文件,如 SqlMapConfig.xml、applicationContext-dao.xml 等。 4. **实现 DAO 层**:通过 MyBatis 来完成数据访问对象的设计和实现。 5. **实现 Service 层**:在...
在SSM框架中,MyBatis主要负责数据访问层(DAL,Data Access Layer)的工作,Spring则负责依赖注入(DI,Dependency Injection)和事务管理,Spring MVC则负责控制器层,接收并处理HTTP请求。三者协同工作,构建了一...
Uncode-DAL是 Java 通用数据访问组件,基于mybatis、spring jdbc、hibernate等ORM框架开发,同时支持基于多数据源的读写分离、主备切换、故障转移,自动恢复、负载均衡、缓存等。可以大大提高开发速度
MyBatis作为一个优秀的持久层框架,它提供了对SQL查询、存储过程以及复杂映射的全面支持,极大地简化了Java应用程序中的数据访问层(DAL)开发。 在MyBatis中,SQL语句不再硬编码在Java代码中,而是通过XML配置文件...
- mybatis-x.x.x.jar:MyBatis的核心库,包含了所有MyBatis运行时需要的类。 - mybatis-logging-xxx.jar(如mybatis-logging-log4j2.jar):日志相关的库,用于输出MyBatis的日志信息,根据实际使用的日志框架选择...
整合的核心是将MyBatis的Mapper配置和Spring的Bean管理结合起来,使得数据访问层(DAL)的对象可以通过Spring容器进行生命周期管理。整合的方式有两种:基于XML配置和基于注解的方式。在XML+注解的方式中,我们既可以...
在IT行业中,MyBatis是一个广泛应用的持久层框架,它允许开发者将SQL语句与Java代码相结合,提供了灵活且强大的数据库操作方式。本教程将引导你一步步搭建MyBatis的开发环境,为后续的深入学习和实践打下基础。 ...
自研ORM框架--仅供个人研究学习使用;该框架通过整合spring,freemarker模板引擎实现了类似mybatis一样的功能,但相比mybatis使用更简单,同时能够灵活的支持多个数据源之间的切换,和跨库事务。
本着不重复造轮子的原则,基于mybatis、spring jdbc、hibernate、mongo等ORM的通用数据访问层,支持基于datasource的读写分离、主备自动切换和故障转移,支持简单的负载均衡。 [TOC] 功能概述 基于mybatis、spring ...
这个应用基于三层架构设计,包括实体类(Entity)、数据访问层(Data Access Layer, DAL)、业务逻辑层(Business Logic Layer, BLL)。同时,它还利用了Lombok库来简化对象模型的代码,并使用MySQL作为数据库。下面...
SSM框架是Java web开发中常用的三大框架——Spring、Spring MVC和MyBatis的组合,它们协同工作,为开发者提供了一种高效、灵活的后端架构解决方案。下面将详细介绍这三个框架以及它们之间的交互。 1. **Spring框架*...
在IT行业中,数据访问层(Data Access Layer,DAL)是应用程序架构中的一个重要组成部分,它负责与数据库进行交互,实现对数据的增、删、改、查等操作。本压缩包"数据访问层配置文件.zip"可能包含的是用于配置数据...
4. **SSM框架**(Spring、SpringMVC、MyBatis):这是一种常见的Java Web开发框架组合,其中Spring用于管理Bean,SpringMVC作为控制器层,MyBatis则是持久层框架。 5. **JSP**:全称Java Server Pages,是一种动态...
MyBatis则是一个轻量级的数据访问层(Data Access Layer, DAL)框架,它简化了SQL操作,将SQL语句与Java代码紧密结合,使得数据库操作更加直观和灵活。 MySQL作为关系型数据库管理系统,用于存储病历数据。其具有高...
"Spring业务工程"是一个基于Java的Web应用程序,它利用了Spring框架的强大功能来构建教育平台。这个项目可能涉及用户管理、课程发布、在线学习、成绩管理等多个模块,旨在提供一个全面的教育服务环境。让我们深入...
基于Java的校园二手交易系统通常采用三层架构:表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。UI层负责用户交互,BLL层处理业务逻辑,而DAL层则处理数据库操作。核心技术选型可能包括: 1. 前端:HTML、CSS...