RiverCat
  • Essays
  • Time
  • Tags
  • Search
  • About
  • Friends
Home » 🔖 标签

Java

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

April 15, 2023 · River

Java:代理与动态代理详解

Java:代理与动态代理详解 本文转载自优质博文 作者:小旋锋 链接:https://juejin.cn/post/6844903744954433544 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ...

March 19, 2023 · River

Java 注解及原理

Java 注解及原理 一、注解基础 注解是插入到源代码中使用其他工具可以对其进行处理的标签,也是附加在代码中的一些元信息,起到说明、配置的功能,语法为@Annotation(value=xxx)。这些工具可以在源码层次上进行操作,或者可以处理编译器在其中放置了注解的.class文件。 ...

March 19, 2023 · River

Java8: Lambda与Stream

Java8: 函数式数据处理|Lambda与Stream 一、行为参数化传递代码 在编写代码时,我们经常面对一些不断变化的需求:选出不同条件的水果、选用不同的策略做比较排序…… 所以我们经常把这样变化的需求做一层抽象,将变化的行为作为参数,传递行为的代码就好。 ...

March 12, 2023 · River
© 2024 RiverCat Home · Powered by Hugo & PaperMod