对比mybatis!谈开发Obatis开源框架的初衷

原创     发表于 2020-09-01 13:37     阅读 270  


前几天在群里讨论的时候,有网友问到Obatis开源框架主要解决了什么痛点,今天刚好有时间,主要围绕以下三点来作一次统一回复。

  • Obatis开源框架和mybatis的区别
  • Obatis开源框架和springcloud的区别
  • Obatis开源框架在开发工作中发挥的角色


在Obatis开源框架的主页,项目介绍是这么写的, Obatis开源框架是基于springboot、springcloud、mybatis等开源技术,旨在快速集成、统一开发模式和技术标准、真正实现Java面向对象的思想致力于为中小企业提供Java快速开发服务。项目立项的原则是面向中小企业(团队)提供Java开发服务,减少项目繁琐配置,规范数据的输入和输出格式。丰富的API接口,基于Spring项目、源于ORM思想,真正体现Java面向对象的编程思维,为开发者或团队提供开箱即用的开源框架。项目理念为风格一致、减少重复工作、提高团队协作效率。

项目介绍已经写了,Obatis开源框架是基于springboot、springcloud、mybatis等开源技术的衍生品,旨在快速集成、统一开发模式和技术标准、真正实现Java面向对象的思想致力于为中小企业提供Java快速开发服务。


Obatis开源框架和mybatis的区别

在常规的mybatis项目中,我们需要用到大量的xml配置文件或者注解映射SQL,在整个开发过程中,比如insert、update、delete 这样的具有高度相似性的SQL执行语句,造成大量工作冗余(关键是还不得不去写),那有没有把什么手段或者方法这些重复性工作抽象出来呢?

答案是肯定的,对于活跃的Java开发社区而言,这东西必须有!

Obatis开源框架持久层采用通用Mapper的形式,扫描实体类根据Java(tools.jar) API 动态生成对应Mapper,省去了开发者手动新建Mapper的工作,并且通用Mapper基类已经实现了丰富的数据库操作接口,实现了入口统一,SQL解析统一的设计。

Obatis开源框架封装了持久层,开发者无需关注SQL层面的工作,将更多的关注度放在业务层面,只需弄懂QueryProvider提供的SQL API 以及 DBHandleFactory 提供的数据库操作API即可,最大限度的实现了Java面向对象编码的核心思想,让开发者甚至感觉不到自己是基于mybatis做项目开发。

更深理解,请参考obatis-core子项目:https://github.com/obatis/obatis-core


Obatis开源框架和springcloud的区别

Obatis开源框架基于springcloud体系,可谓站在巨人的肩膀上,没有过多的封装,仅自行实现了部分注解,具体可以参考包路径(包含obatis-web和obatis-core两个子项目):

package com.obatis.core.annotation;

更多的封装在数据的请求(HttpServletRequest)格式的处理、数据响应(HttpServletResponse),加入了Redis操作类、Email发送类等额外支持功能。项目中引入了Swagger模块,默认状态下为开启。

如果比喻springcloud为一个开放式景区,那Obatis开源框架这个景区的每条路都有摄像头,每道门都有检票员,进出口都带有违禁品红外线检测。

更深理解,请参考obatis-web子项目:https://github.com/obatis/obatis-web


Obatis开源框架在开发工作中发挥的角色

Obatis开源框架主要分为obatis-web和obatis-core两个子项目,其中obatis-core主要体现在包含数据库编程,旨在快速集成、统一开发模式和技术标准、真正实现Java面向对象的思想致力于为中小企业提供Java快速开发服务。对于中小型,采用Obatis开源框架,可以减少不必要的冗余工作。体现如下:

  1. 无需每次为新项目检索各种jar文件及maven配置,不用考虑框架搭建,一键引用即可;
  2. 开发者将更多精力放在业务代码上,省略掉持久层的开发工作;
  3. 只需强调编码规范,需要强调SQL书写规范,忽略不同开发者SQL语句大小写强迫症问题;
  4. 所有项目输入、输出规范高度一致,方便移动端、PC端等接口对接;
  5. 请求错误处理机制,不暴露服务端敏感信息,所有错误信息转化为中文输出或开发者指定输出,规避开发者能力差异造成服务端异常日志输出到前端。对于每个错误返回,都定义了响应的错误编码,运维人员根据编码对照表大体排查问题所在,错误编码也可以自定义拓展;
  6. 规范开发者编码习惯,统一项目风格,避免个性化输出及个性化编程;

大体先介绍到这,后期继续更新。 更深理解、更多文档,参考Obatis开源框架使用文档: https://www.obatis.com/source/document/index.html

参与项目:

欢迎您参与Obatis项目的开发,如果有问题或者建议,欢迎直接提出Issue意见或者发送邮件至service@obatis.com,期待您的参与……
也可以加入QQ群:250577580,一起和其他人讨论、分享使用心得。更多内容尽在Obatis