ObjectvieSQL简介
ObjectiveSQL 是一个Java ORM 框架,它不仅是Active Record 模式在Java 中的应用,同时还针对复杂SQL 编程提供近乎完美的解决方案,使得Java 代码与SQL 语句有机的结合,改变了传统SQL 的编程模型(以字符串拼接为主的编程模型)。
ObjectiveSQL 项目分为两部分:一部分是运行期Maven 依赖 objective-sql 或 objsql-springboot,主要实现了基础的ORM 特性和SQL 编程模型,另一部分是IntelliJ IDEA 插件,兼容Java 运算符重载和动态代码提示。
ObjectiveSQL 主要解决:
- 动态代码生成:基于领域模型(Domain Model),自动生成简单SQL 编程代码,使应用系统开发只关注自身的业务特性,提升开发效率;
- 可编程SQL:将SQL 中的控制原语、谓词、函数以及过程化逻辑等抽象为Java 中的高级类型,与Java 融为一体,使得SQL 成为真正过程化、逻辑型编程语言,可封装、可复用以及单元测试;
- 表达式语法一致性:Java 语法与SQL 语法等价替换,包括:数学计算、函数调用、比较与逻辑计算表达式,Java 表达式可以直接转换为SQL 表达式;
ObjectiveSQL特性
- 使用一个注释,您便Class具有SQL编程的全功能
- 简单的关系查询(has_one,has_many和belongs_to)和分页查询
- 使用Java语法编写SQL表达式(arithmetic,comparison和logical)
为什么要选择ObjectiveSQL
- 如果您的项目专注于基于关系数据库的数据分析,以及SQL语句中的许多算术表达式。ObjectiveSQL将帮助您使用Java语法方便且安全地编写表达式。
- 如果您不想编写数据库访问和各种配置文件的Java代码,ObjectiveSQL的动态代码生成将帮助您无需编码即可访问数据库
性能展示

ObjectiveSQL使用例子
复杂的SQL编程

如您所见,Java运算符可以转换为SQL运算符,这意味着您可以使用Java语法编写SQL。在Java中,可以进行SQL动态编程,逻辑等。
零编码的简单SQL编程

持久化(Persistence)

计数和查询(Counting and Quering)

关联查询(Relation Quering)

分页查询(Paged Quering)

总结
看完这个ORM框架,让我想起了以前的JFINAL里的ORM,当然如何选择项目的ORM还是要依据项目具体情况具体分析,看项目里Model是贫血模型还是充血模型,是重关系数据库还是其他等等,不能简单的看纸面数据,因为你不深入补课,会在项目开发中碰到意想不到的问题,拖延进度。
因此,Myabtis、Hibernate、JPA和ObjectiveSQL等等,你会如何选择呢?
原文地址:https://www.toutiao.com/a6912400718544699916/