`
movenut
  • 浏览: 128305 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

基于Spring3.x Mybatis 的DAL

阅读更多

起因:因为阿里开源的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>

 

<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>

 

       2:sqlsession 相关配置,默认情况下只需要换一下sqlSession 实现类,同时指定数据源工厂,此时使用默认的路由已经合并规则。

 

 

<bean id="xiuSqlSession" class="com.xiu.dal.XiuSqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
<constructor-arg index="1" ref="dataSourcesFactory"/>
 </bean>

 

     可以在sqlSession 中指定自己的路由已经合并规则

 

<property name="router" ref="defaultRouter" />
<property name="merger" ref="defaultMerger" />

 

 

 

代码与样例可参考附件:

分享到:
评论
2 楼 jd2bs 2014-04-21  
看了下代码,只是一个骨架而已;路由规则,数据合并都太简单了


我还是亲自动手 把cobar client改成3.x版本吧
1 楼 lvye351 2013-06-06  
cobar是弱一致性分布式事务支持,请问你的“夸库事务支持”是啥程度?

相关推荐

    spring+mybatis 简单实例图书管理系统

    【标题】"Spring+MyBatis 简单实例图书管理系统"揭示了这是一个结合了Spring框架和MyBatis持久层框架的项目实例,主要用于管理图书数据。在IT领域,Spring和MyBatis是两个非常流行的开源Java技术,它们在企业级应用...

    MyBatis3用户指南☞中文版

    MyBatis3的核心设计理念是简化数据访问层(DAL)的开发工作,通过XML或注解方式配置SQL语句,使得数据库操作更加直观、易于维护。下面将详细介绍MyBatis3的一些关键特性与知识点: 1. **配置文件**:MyBatis3的配置...

    struts-2.3.8+spring-3.2.1+mybatis-3.2.2架构

    最新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 ...

    springmvc和mybatis整合

    3. **配置 MyBatis 和 Spring MVC**:编写相应的配置文件,如 SqlMapConfig.xml、applicationContext-dao.xml 等。 4. **实现 DAO 层**:通过 MyBatis 来完成数据访问对象的设计和实现。 5. **实现 Service 层**:在...

    mybatis3.4.3中文版.zip

    在SSM框架中,MyBatis主要负责数据访问层(DAL,Data Access Layer)的工作,Spring则负责依赖注入(DI,Dependency Injection)和事务管理,Spring MVC则负责控制器层,接收并处理HTTP请求。三者协同工作,构建了一...

    Uncode-DAL是 Java 通用数据访问组件基于mybatis、spring jdbc、hibernate等ORM框架开发

    Uncode-DAL是 Java 通用数据访问组件,基于mybatis、spring jdbc、hibernate等ORM框架开发,同时支持基于多数据源的读写分离、主备切换、故障转移,自动恢复、负载均衡、缓存等。可以大大提高开发速度

    mybatis 3.4.6 用户开发指南

    MyBatis作为一个优秀的持久层框架,它提供了对SQL查询、存储过程以及复杂映射的全面支持,极大地简化了Java应用程序中的数据访问层(DAL)开发。 在MyBatis中,SQL语句不再硬编码在Java代码中,而是通过XML配置文件...

    MyBatis jar包

    - mybatis-x.x.x.jar:MyBatis的核心库,包含了所有MyBatis运行时需要的类。 - mybatis-logging-xxx.jar(如mybatis-logging-log4j2.jar):日志相关的库,用于输出MyBatis的日志信息,根据实际使用的日志框架选择...

    SSM框架整合的资料(pdf版本),直接下载打开后即可查阅

    整合的核心是将MyBatis的Mapper配置和Spring的Bean管理结合起来,使得数据访问层(DAL)的对象可以通过Spring容器进行生命周期管理。整合的方式有两种:基于XML配置和基于注解的方式。在XML+注解的方式中,我们既可以...

    myBatis系列之一:搭建开发环境

    在IT行业中,MyBatis是一个广泛应用的持久层框架,它允许开发者将SQL语句与Java代码相结合,提供了灵活且强大的数据库操作方式。本教程将引导你一步步搭建MyBatis的开发环境,为后续的深入学习和实践打下基础。 ...

    orm-dal.zip

    自研ORM框架--仅供个人研究学习使用;该框架通过整合spring,freemarker模板引擎实现了类似mybatis一样的功能,但相比mybatis使用更简单,同时能够灵活的支持多个数据源之间的切换,和跨库事务。

    xmljava系统源码-uncode-dal-all:Uncode-DAL是Java通用数据访问组件,基于mybatis、springjdbc

    本着不重复造轮子的原则,基于mybatis、spring jdbc、hibernate、mongo等ORM的通用数据访问层,支持基于datasource的读写分离、主备自动切换和故障转移,支持简单的负载均衡。 [TOC] 功能概述 基于mybatis、spring ...

    java-oop-base.zip

    这个应用基于三层架构设计,包括实体类(Entity)、数据访问层(Data Access Layer, DAL)、业务逻辑层(Business Logic Layer, BLL)。同时,它还利用了Lombok库来简化对象模型的代码,并使用MySQL作为数据库。下面...

    SSM框架需要的jar包

    SSM框架是Java web开发中常用的三大框架——Spring、Spring MVC和MyBatis的组合,它们协同工作,为开发者提供了一种高效、灵活的后端架构解决方案。下面将详细介绍这三个框架以及它们之间的交互。 1. **Spring框架*...

    数据访问层配置文件.zip

    在IT行业中,数据访问层(Data Access Layer,DAL)是应用程序架构中的一个重要组成部分,它负责与数据库进行交互,实现对数据的增、删、改、查等操作。本压缩包"数据访问层配置文件.zip"可能包含的是用于配置数据...

    基于springboot+HTML5的问卷调查系统源码数据库.doc

    4. **SSM框架**(Spring、SpringMVC、MyBatis):这是一种常见的Java Web开发框架组合,其中Spring用于管理Bean,SpringMVC作为控制器层,MyBatis则是持久层框架。 5. **JSP**:全称Java Server Pages,是一种动态...

    基于ssm+mysql的医院病历管理系统源码数据库论文.doc

    MyBatis则是一个轻量级的数据访问层(Data Access Layer, DAL)框架,它简化了SQL操作,将SQL语句与Java代码紧密结合,使得数据库操作更加直观和灵活。 MySQL作为关系型数据库管理系统,用于存储病历数据。其具有高...

    Spring业务工程

    "Spring业务工程"是一个基于Java的Web应用程序,它利用了Spring框架的强大功能来构建教育平台。这个项目可能涉及用户管理、课程发布、在线学习、成绩管理等多个模块,旨在提供一个全面的教育服务环境。让我们深入...

    精品--基于java的校园二手交易系统毕业设计.zip

    基于Java的校园二手交易系统通常采用三层架构:表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。UI层负责用户交互,BLL层处理业务逻辑,而DAL层则处理数据库操作。核心技术选型可能包括: 1. 前端:HTML、CSS...

Global site tag (gtag.js) - Google Analytics