ObjectiveSql 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
ObjectiveSql 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
ObjectiveSql 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
ObjectiveSql 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
ObjectiveSql 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

ObjectiveSQL(简称: objsql,中文译为: 对象化SQL或者面向对象SQL)是一种ORM 技术在Java 中的应用,其主要思想为ActiveRecord,使传统应用程序开发中的VO,PO等变为真正的Java Class,不仅拥有相关状态,同时也应有相关行为。ObjectiveSQL 基于JSR 269,实现了数据库访问的动态代码生成,并且在其中封装了关系型数据库的常用逻辑,使得应用程序开发变得极其简单,由于动态代码生成,ObjectiveSQL 不依赖其它外部框架,可以在任何场景下独立运行,具体示例如下:

@DomainModel
public class Order {
    private String no;
    private Integer memberId;
    private Double amount;
    private Double quantity;

    @Relation(relationType = RelationType.BELONGS_TO)
    private Member member;

    @Transactional
    public static void makeOrder(Order order, OrderLine... orderLines) throws SQLException {
        Order.create(order, false);
        OrderLine.create(orderLines, false);
    }
}

上述示例代码中定义了Field(对应数据库表中的Column), 定义了关系(@Relation 意味着一个笔订单属于一个会员),在SELECT 时指定关系则可以自动填充该Field, 定义了数据库事务(@Transactional makeOrder)业务方法,方法体中的数据库操作均在数据库事务内运行,自动回滚和提交。部分使用API 如下:

Member newMember = new Member();
// To set the field value for "newMember"
newMember.save(false); //Skip the validation
// newMember.save(true); // Validating the field value before save
List<Member> members = Member.queryAll();
int count = Member.count("id > ?", 10);

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (57)

加载中
是不是eclipse无法使用?
01/20 00:06
回复
举报
ObjectiveSql软件作者
目前还不支持,
01/21 10:43
回复
举报
IDEA插件安装了还是报红
2020/12/14 12:14
回复
举报
ObjectiveSql软件作者
哪里报红,加我微信,或将问题原因贴到github issue 里。 github: https://github.com/braisdom/ObjectiveSql 微信:braisdom
2020/12/14 15:50
回复
举报
关联查询的时候 控制台打印的sql语句都是正确的但是不知怎就一直报空指针错误 我把swl语句拿到数据库查询也是有结果的 单表查询没有问题
2020/12/11 01:24
回复
举报
ObjectiveSql软件作者
有具体的异常吗,请把异常贴到github 中的issue 里,我会尽快修复
2020/12/11 10:58
回复
举报
ObjectiveSql软件作者
可以加我微信:braisdom
2020/12/12 09:35
回复
举报
好的 加您了
2020/12/12 18:37
回复
举报
2020/11/17 19:39
回复
举报
ObjectiveSql软件作者
感谢支持
2020/11/17 22:03
回复
举报
ObjectiveSql软件作者
打分: 力荐
只有高质量的项目,才能配得起高投入,希望大家能够支持
2020/11/13 23:06
回复
举报
厉害
2020/11/13 22:37
回复
举报
ObjectiveSql软件作者
感谢支持
2020/11/13 22:57
回复
举报
厉害啊
2020/11/13 21:35
回复
举报
ObjectiveSql软件作者
感谢支持
2020/11/13 22:57
回复
举报
哈哈,国人果然狠,直接找人刷票!
2020/11/09 17:33
回复
举报
ObjectiveSql软件作者
哈哈,是不是抢了你的风头了,你的比较早,积累比我多,还是要多向你学习呀。
2020/11/09 18:38
回复
举报
ObjectiveSql软件作者
只不过我解决的思路更底层,是从Java 的编译器出发进行设计的,目前大都数ORM 框架(也包括:sagacity-sqltoy)都是从编码层面解决,代码量相对较多。
2020/11/09 18:40
回复
举报
刷票了?
2020/11/09 09:37
回复
举报
ObjectiveSql软件作者
找了一些朋友帮忙而已
2020/11/09 10:35
回复
举报
咨询下,有多表查询、分页查询吗
2020/11/04 17:43
回复
举报
ObjectiveSql软件作者
1. 多表是join 是基础特性,我猜你说的是分库分表吧。分库分表需要在基础特性上封装,如果我来写代码,一天足够,有需要联系我 2. 分页是基础特性,只是简单的封装
2020/11/04 19:33
回复
举报
ObjectiveSql软件作者
ObjectiveSQL 动态生成了基础的数据库访问API,会逐渐生成常用代码,甚至具有普适性的业务代码
2020/11/04 19:35
回复
举报
更多评论
发表了资讯
2020/12/28 10:19

ObjectiveSQL 1.4.6 版本正式发布

ObjectiveSQL 1.4.6 版本主要包括以下特性: SQL 语句构造性能优化,基于JMH 进行性能测试,超越现有主要ORM 框架(测试代码见项目:benchmark 目录) 提供TableNameEncoder 扩展接口,用于注入表名称构造逻辑 修复 多个 IntelliJ IDEA 插件Bug 项目地址:https://github.com/braisdom/ObjectiveSql 性能测试图如下:...

2
2
2020/12/15 10:20

ObjectiveSQL 正式发布 1.4.3 版本

各位,本次新版本做了比较大的优化,主要修复的问题如下:#79,#48,#67,#56 项目地址:https://github.com/braisdom/ObjectiveSql 重点特性介绍: 1)优化SQL 生成逻辑 Order.Table orderTable = Order.asTable(); Select select = new Select(); select.project((sum(orderTable.amount) / sum(orderTable.quantity) * 100).as("unit_amount")) .from(orderTable) .where(orderTable.quantity > 30 ...

4
2
发表于数据库专区
2020/11/27 20:59

ObjectiveSQL 稳定版本发布 1.4.0

经过这段时间各位提交的Bug和版本的基本特性,发1.4.0 稳定版本,主要特性如下: 持久化 Member.create(newMember); Member.create(newMember, true); // Create a member without validating Member.create(Member.newInstanceFrom(memberHash)); Member.create(new Member[]{newMember1, newMember2, newMember3}, false); Member.update(1L, newMember, true); // Update a member with primary key Member.update(...

14
8
发表于数据库专区
2020/11/08 22:50

ObjectiveSQL 1.3.6 版本发布,过程化 SQL 编程&等价表达式

ObjectiveSQL 第一个正式版本提供了自动生成代码的特性,替代了简单SQL 的编程的编码工作,紧接着推出复杂SQL的解决方案。 ObjectiveSQL 通过修改Java 编译器,实现了运算符重载,可以实现Java 的运算符直接映射为SQL 的运算符,可以实现表达式的一致性,从而实现SQL 的过程化编程,使得复杂SQL 的编程变得简洁、易懂,具体请参考官方文档。 官方地址:http://www.objsql.com Github: https://github.com/braisdom/ObjectiveSq...

22
3
2020/10/22 13:45

ObjectiveSQL 正式发布 1.3.5 版本

ObjectiveSQL 是一个基于ActiveRecored 模式的Java ORM 框架,零配置,基于已定义的领域模型,自动生成数据库访问逻辑代码,并提供便捷的API,简化Java 编码过程中的SQL 编程,提升应用系统的开发效率,降低代码量。 经过三个月的开发和测试,在10月初发布稳定版本1.3.5,1.3.5 版本主要包括: 动态生成数据模型访问数据库的 JAVA API 代码,其中包括数据库访问的SELECT、INSERT、UPDATE 和DELETE 根据Relation 注解的定义,在查...

31
14
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2020/09/14 18:28

我理解的面向对象 (ObjectiveSql 实践)

最近参与一个项目,突然让我对“面向对象”有了重新的思考,一直以来,“面向对象”只存在于我的潜意识里,用Java 去设计系统时。先将问题域不断的细分,细分到一组相关的状态和行为能够合理的存在,这是我解决问题的基本逻辑,当然,上面一句话有太多的含糊不清的动作,例如:“细分”、“相关的状态”、“行为”、“合理”,这些词汇的包含了很多主观想法,仁者见仁,智者见智。 经济学里有一个概念称为“黑板经济学”,经济学...

3
1
2020/10/12 14:45

ObjectiveSQL 源码解读——DomainModelDescriptor

DomainModelDescriptor 设计的初衷是为了适应不同类型的模型定义能够通过ObjectiveSQL 写入数据库或从数据库中读取,在JDK 中也有类似的设计,如PropertyDescriptor,BeanDescriptor 等,其目的也是描述Java Bean 和Property 的基础元信息,只不过在ObjectiveSQL 中DomainModelDescriptor 是一个抽象的定义,描述的是一个能够被ObjectiveSQL 所认识的业务模型,可以是一个Java Bean,也可以是其它对象。 在我过往的项目中,除了...

4
3
2020/10/08 11:05

ObjectiveSQL(Java ORM) 之 MySQL 实战

第一步,引用Maven依赖: <dependency> <groupId>com.github.braisdom</groupId> <artifactId>objective-sql</artifactId> <version>1.3.4</version> </dependency> 第二步,使用Annotation 定义一个DomainModel : import com.github.braisdom.objsql.annotations.Column; import com.github.braisdom.objsql.annotations.DomainModel; import com.github.braisdom.objsql.annotations.Queryable; import ...

2
1
2020/10/10 17:53

ObjectiveSQL 原理之-Java 代码自动生成

Java 是传统意义上的静态语言,严格的类型限制和原始结构的保护,相应的IDE 也有严格的语法控制,并不像Ruby, Python 等动态语言的完全开放,这也就限制了Java 的扩展性,尤其针对纯技术型Framework 的开发的限制非常明显。目前,大都数技术型框架都是通过动态代理(Dynamic Proxy) 的方式实现技术逻辑的封装,例如:Cglib、ASM等,均为运行时动态生成字节码的形式进行逻辑封装,这样的封装会带来几个问题: 没有意义的接口定义:...

4
2
2020/10/07 12:18

Java ORM 框架ObjectiveSQL 集成SpringBoot

源码地址:https://github.com/braisdom/ObjectiveSql/tree/master/springboot_example ObjectiveSQL(简称: objsql,中文译为: 对象化SQL或者面向对象SQL)是一种ORM 技术在Java 中的应用,其主要思想为ActiveRecord,使传统应用程序开发中的VO,PO等变为真正的Java Class,不仅拥有相关状态,同时也应有相关行为。ObjectiveSQL 基于JSR 269,实现了数据库访问的动态代码生成,并且在其中封装了关系型数据库的常用逻辑,使得应...

11
5
2020/12/31 21:27

请在Java项目抛弃Mybatis、Hibernate,是时候上新了--ObjectiveSQL

ObjectvieSQL简介 ObjectiveSQL 是一个Java ORM 框架,它不仅是Active Record 模式在Java 中的应用,同时还针对复杂SQL 编程提供近乎完美的解决方案,使得Java 代码与SQL 语句有机的结合,改变了传统SQL 的编程模型(以字符串拼接为主的编程模型)。 ObjectiveSQL 项目分为两部分:一部分是运行期Maven 依赖 objective-sql 或 objsql-springboot,主要实现了基础的ORM 特性和SQL 编程模型,另一部分是IntelliJ IDEA 插件,兼容J...

0
0
2020/10/11 16:16

ObjectiveSQL 源码解读——工厂模式

理解设计模式,必须结合具体的案例,单纯的理论学习很难真正掌握设计方法。其实,你真实看透了设计模式后,当发现需要所依赖的逻辑处于一种不稳定的状态时,抽象也就产生了,所谓的设计模式也就是对一些不稳定的依赖形成的一种固有的模式,经过系统的理论整理后也就形成了今天所能见到的设计模式。 工厂模式系列主要是为了封装构建实例的过程,封装的目的主要有两点:1)构造实例的过程比较复杂,而且构造过程会被复用;2)构造...

3
3
02/05 08:34

国产的ORM开源框架火了,网友:真难,想用但不敢用~

点击上方蓝色字体,选择“标星公众号” 优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料+视频 开源地址:https://github.com/braisdom/ObjectiveSql 1 前言 ObjectiveSQL 是一个Java ORM 框架,它不仅是Active Record 模式在Java 中的应用,同时还针对复杂SQL 编程提供近乎完美的解决方案,使得Java 代码与SQL 语句有机的结合,改变了传统SQL 的编程模型(以字符串拼接为主的编程模型)。 ObjectiveSQL 项...

0
0
发表于程序人生专区
2020/11/24 09:03

超强工具集——GitHub 热点速览 Vol.47

作者:HelloGitHub-小鱼干 本周 GitHub 趋势榜精彩至极,先是 JetBrains 开源的图像渲染引擎 Skia 有了 Java 封装,一开源便获得 500+ star,再是支持开发者在页面展示网站运行状态,实时报告的 upptime 凭借单日 1k star 进账,上了 Trending 榜。另类 Kubernetes 发行版——K0s 也是颇为出色,一周获得了近 2k star。清华大学研究团队开源的 26 亿参数规模的中文语言模型 (CPM-LM) ,表现也很抢眼。最后,一定要提下超强的屏幕...

0
2
2020/10/09 08:27

开源的意义与价值

作为发刊词,也是即将进入开源组织的一员的一些感慨,当然以前也一直是,只不是从前只是一个观众,而如今却要成为演员,想从新认识开放源代码、开源社区以及开源的意义。 存在即合理,是一个自然规律,也有其背后的原因。开源形式的存在已经很多年了,开源改变了我们的工作方式,曾经的我一直以为开源是一件很神圣的事,沉浸在开源工作的程序员都是一批有理想、正直、有着个人独特价值观的人,只到有一天我终于明白了,这仅仅是...

3
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2020/12/15 12:35

分析一下Java ORM 框架的原理,大家怎么看?

Java 的ORM 框架发展了很多年,一直存在各种各样的问题,相信大家的体会比我还要深,到底这是什么什么呢?我从两个角度来分析一下,大家看看对不对? 1)语义表达的双重性 一个Java Bean 的定义,只能表达一种语义,就是与其它相关的Java 类相互协作实现一项特性,通常用于数据的载体,但不能表达数据库交互时的SQL 的语义,两种内存的语义差异很大(例如:Java Field 在数据库中映射为Column,一个Column 可以进行排序、算术运...

8
2
2020/10/13 22:14

MyBatis 好用吗?是应用系统开发唯一的选择吗?

我是的经历比较复杂,2007前写过Java,2007 至2016年写了Ruby,C,Python,2017年又回到了Java,用了MyBatis,Flyway,SpringBoot,发现用了之前特别不舒服,所以做了ObjectiveSQL 项目,想听听大家的意见。

44
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
57 评论
2.2K 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部