本着不重复造轮子的原则,基于mybatis、spring jdbc、hibernate、mongo等ORM的通用数据访问层,支持基于datasource的读写分离、主备自动切换和故障转移,支持简单的负载均衡。
![1945f3c0d1562f8e244576df8fbbddf3.png](https://i-blog.csdnimg.cn/blog_migrate/ed4a90555e09cdf5ee8e95b31789b9e3.jpeg)
功能概述
- 基于mybatis、spring jdbc、hibernate等各大orm框架实现通用dal层功能,并可以与已有项目完全兼容。同时也可以在已经实现的orm框架之间任意切换,不需要对代码作任何改动。
- 实现dal层cache,可以自由设置过期时间。
- 实现基于多数据源(datasource)的读写分离、主备切换、故障转移、恢复检测和负载均衡
- 使用该组件必须遵循以下规则:
- 在使用DTO时,字段名称与数据库表字段一致,也可以不使用任何DTO类。
- 不支持连表查询,主要是单表操作,如果需要连表请与原生orm框架配合使用。
- sql默认主键字段为id,nosql默认主键字段为_id。
- 支持工具生成dto和service类
使用场景
随着nosql等新方案的出现,关系型数据库更多的被用在业务数据存储中,对于一些像报表等复杂数据处理的工作大部分公司已经不再使用关系型数据库,而对于业务数据90%以上是不需要连表查询等复杂操作的,该组件设计目标是将这90%的工作量变成零,避免重复工作,提高开发速度。使用该组件后将不再需要mybatis的自动生成,spring jdbc的sql语句,hibernate的各种注解,因为组件可以忙你处理。同时该组件只是基于orm框架对所有单表操作的提取和封装,最终还是由相应的orm框架完成持久化工作,所以不会代替orm的工作。因此论你的项目是新项目,还是老项目都可以使用,不会对原有业务生产任何影响,只是使你的操作更加便利,不再需要无数dao类,只要在需要的service中注入即可。组件需要遵循一定的COC规则,所以存在一定的使用限制,请大家注意。
作用示图
![98a0f2f99cce53127048e1ab4bcc131f.png](https://i-blog.csdnimg.cn/blog_migrate/e83525c61ceb80b937cd12226ddcd5c3.jpeg)
maven
下载最近版本请到release列表:http://git.oschina.net/uncode/uncode-dal-all/releases
1 mybatis
cn.uncode uncode-dal 1.0.3cn.uncode uncode-dal-mybatis 1.0.3
2 spring jdbc
cn.uncode uncode-dal 1.0.3cn.uncode uncode-dal-spring-jdbc 1.0.3
3 mongo
cn.uncode uncode-dal 1.0.3cn.uncode uncode-dal-mongo 1.0.3
自动生成工具
![47d381050d8cb0641de88c4bcb85a010.png](https://i-blog.csdnimg.cn/blog_migrate/316fd3f8c498c69e24057d37df0d093b.jpeg)
![62eaae70020e281f4158548713c47d2d.png](https://i-blog.csdnimg.cn/blog_migrate/04de313f76743e258b7c03ad474848b7.jpeg)