Java后端数据持久化层技术选型与初始化
Java后端数据持久化层技术选型与初始化 最终选型 选型:MyBatis + MyBatis Generator + Mybatis-PageHelper 理由: 非侵入性,将数据持久化用sql实现,完全将数据持久化和service的逻辑解耦 灵活,可扩展性强,高速迭代 性能取决于sql,锻炼sql能力,倒逼自己熟悉sql 国内使用广泛,适用面广 出现bug好定位和fix generator也是官方维护 最方便使用的分页插件 选型比较 Mybatis 半自动化orm,不完全遵守jpa,其实还是要控制sql去和数据库交互,只是把sql结果用java对象封装 优点: 几乎完全将数据持久化和service的逻辑解耦,对sql的可操控性强 性能较高 灵活,简单高效,高速迭代。 缺点: 但是要手动编写sql,单表重复性元素太高,如果数据库修改了要重新generate很麻烦。 数据库移植性差,不能随意更换数据库 Mybatis-plus 基于mybatis实现jpa,封装的太多,总之不用写sql了 性能差点 灵活性差,问题也不好定位 入侵性太强了直接到了service层 还一堆自定义注解 Tk-mybatis、通用mapper 将generator生成的example只缩成了一个,简单的单表查询不用写了,仅仅是对dao层封装 我觉得主要还是解决了数据库表结构变化带来的修改成本 但是是个人开发者造的轮子,使用不广泛,有学习价值但是生产不敢用怕bug,侵入性也不小 Spring data jpa 完全实现jpa,更好实现DDD驱动的设计思想 复杂很多 性能略低一点 不好调试 国外其实更注重开发效率和面向对象的分析和设计(DDD) ...