实战篇-仓储技术选型

仓储层是为了持久化数据,数据如何保存与存储介质息息相关,跟领域不是一对一关系。
一个领域对象,可以使用关系型数据库存储,也可以使用NoSql存储,甚至可以使用文件存储。
一个领域对象,可以保存在一个表中,可以保存在的多个表中,多个领域对象可以保存在一个表中。

领域对象是为了业务操作更合理,是纯内存操作,可能需要面对对象的方式更适合;仓储是为了查询,保存更合理,是IO操作,可能面向关系更适合。两种层次不同,使用成本不同,关注点不同。领域对象不应该依赖具体仓储实现,应该依赖于仓储接口。

flower-repository
领域仓储接口,主要定义接口,一般在domain层,无任何依赖。
flower-repository-mybatis
领域仓储mybatis实现,依赖mybatis,domain层,可以使用mybatis的相关技术,无限制。
flower-repository-jpa
领域仓储jpa实现,依赖spring boot jpa,domain层,可以使用jpa的相关技术,无限制。

MyBatis和JPA怎么选

各有特点

JPA:抽象层次高,适用于面向对象编程和DDD,一套语言走天下,数据库移植性好(伪需求),增删改查很方便,复杂查询支持差,学习难度大,技术要求高,sql语句难优化
MyBatis:上手容易,学习成本低,灵活性高,面向数据库编程,依赖数据库,需要面向XML和SQL编程,需要写大量模板SQL。

选型考虑
1. 成本考虑:国内环境,mybatis是主流,加上学习成本低,很容易上手和招人。JPA需要有较高的面向对象的设计和相对稳定的需求。
2. 性能考虑:小项目,随便选,那个简单,那个熟练用哪个,高并发项目需要慎重,不是JPA不适合高并发,是能掌握JPA的大神太少。

Mybatis 和 JPA 用哪个好? 优缺点 ?_FH-Admin的博客-CSDN博客_jpa和mybatis哪个好
Mybatis与Spring Data Jpa怎么选? - 掘金 (juejin.cn)


更好的搭档

MyBatis+mybatis-mapper
增删改查直接使用,复杂查询使用mapper,即可以省去编写大量模板SQL,又可以灵活控制复杂查询,支持自定义基类方法,支持JPA,完美!!

- 不选择MyBatis-Plus(github 12.7k):MyBatis-Plus名气更大,也非常好用,功能强大,支持乐观锁,多租户等,唯一的问题就是不支持JPA注解,本项目本着最小依赖的原则,domain层不依赖其他框架,只能选择JPA注解。
- 选择MyBatis-Mapper(tk-mybatis的新作):可以自定义方法,可以轻松扩展,支持JPA,喜欢的人自然喜欢,无关优劣。

JPA+Fenix
简单操作使用JPA,复杂,动态SQL使用Fenix,完美!!
Fenix,为解决复杂动态SQL而生的Spring Data JPA扩展库


更多选择

数据库存储方案选择后很难改变,所以多仓储实现意义不大,此方案仅作为依赖隔离示例。

数据库还是有选择的余地的,目前分布式数据百花齐放,很多协议都是兼容的:
PolarDB,100%兼容MySQL 5.6/5.7/8.0,PostgreSQL 11,高度兼容Oracle
TiDB,兼容 MySQL 5.7 协议和 MySQL 生态

关于分库分表方案:
Sharding-JDBC,增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架
Mycat,Java语言编写的MySQL数据库网络协议的开源中间件



SpringBoot入门系列

实战篇-项目架构,原则和分层
实战篇-基础设施,基类与配置
实战篇-接口实现,配置和部署
实战篇-仓储技术选型
实战篇-工具类实战

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容