最新java持久层框架三 summer-data架构设计

官网地址: https://www.summer-data.com
代码库地址:https://gitee.com/hahan2020/summer-data

架构设计

总体架构图

summer-data的架构设计比较简单,主要分为三个部分:

  • 顶层概念
    • Jql 负责查询
    • Table 负责持久化
  • 基础概念
    • Jsql 封装JDBC,主要是将 SQL 语句与 Parameter 打包
    • DTO&Map 负责保存查询返回的结果集
    • Transaction 处理事务相关,summer-data提倡用显示的事务代码来控制事务
    • Dialect 在 Jql -> SQL 过程中,根据数据库产品生成符合语法的 SQL
  • JDBC层
    • 这一层的概念与 JDBC 基本相同,最多是做了一些小小的增强

查询 api 设计

与其它3大架构相比,summer-data的 API 非常不同。其它框架是 DataSource 去执行一个 SQL,summer-data是一个 SQL 在某个 Connection/DataSource/Transaction 上执行。

查询API的范式如下:${动作}For${结果类型}

  • 动作
    • query 返回表数据的列表,可以是0条
    • find 返回一条表数据,不是一条会抛异常
    • page 返回一页数据
  • 结果类型
    • Map 类型是Map<String, Object>
    • Object 类型是一个实体类

所以有 3*2 = 6个查询API

  • queryForMap, queryForObject
  • findForMap, findForObject
  • pageForMap, pageForObject

还有一个查询API count 返回查询数据总数

设计理念

summer-data的架构比较简单、朴素,总的思路是由用户端出发,设计API,然后逐步完成底层实现。

summer-data最重要的一个原则是将querypersistence分开,这个想法是在大约10年前形成的,并且使用PHP语言进行了实现,在项目中使用反应很好。

summer-data的数据库操作角度不同,其它框架基本上是连接·执行·SQL,而summer-dataSQL·在连接上·执行的感觉,目的是有更多的操作空间构建 SQL 。
`

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值