ObjectiveSql

Java 的 ORM 框架
授权协议 Apache
开发语言 Java
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 国产
投 递 者 葛雪松
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

 

  • 第一步,引用Maven依赖: com.github.braisdom objective-sql 1.3.4 复制代码 第二步,使用Annotation 定义一个DomainModel : import com.github.braisdom.objsql.annotations.Column; import com.github.braisdom.objsql.annotations.Domai

  • 事情是这样的,前阵子跟同事讨论关于ORM的事,发现我们熟悉的各自领域.Net和Java之间关于ORM有分歧。 他现在用的是.Net 的 ef core框架,我用的是Java的Mybatis的扩展框架tkmybatis和mybatis-plus。 他的观点是认为2021年了,不要再手撸sql了,全部交给框架,只在代码里实现逻辑即可。然而Mybatis框架严格意义来说,不能算ORM框架,它只是个半自动

  • 第一步,引用Maven依赖: com.github.braisdom objective-sql 1.3.4 第二步,使用Annotation 定义一个DomainModel : import com.github.braisdom.objsql.annotations.Column; import com.github.braisdom.objsql.annotations.DomainMode

  • java中sql统一解决方案 - ObjectiveSQL 最近看到一个国内的开源组件:ObjectiveSQL,作者的想法很棒,通过在编译过程中生成代码解决了一些mybatis也好,hibernate也好解决不了的问题。话不多说大家自己看一下吧。 文章连接:https://xie.infoq.cn/article/f89072dc76820b595edb4e1b2 项目连接:https://gi

 相关资料
  • 从戏剧!框架文档: Play2.0中没有内置的JPA实现;您可以选择任何可用的实现。例如,要使用Hibernate,只需将依赖项添加到项目中: 我的选择是什么而不是冬眠? 你认为什么最适合留言板网站? 我知道Hibernate有一点开销,对吗?

  • 本文向大家介绍什么是 ORM 框架?相关面试题,主要包含被问及什么是 ORM 框架?时的应答技巧和注意事项,需要的朋友参考一下 ORM(Object Relation Mapping)对象关系映射,是把数据库中的关系数据映射成为程序中的对象。 使用 ORM 的优点:提高了开发效率降低了开发成本、开发更简单更对象化、可移植更强。

  • ORM(Object-relational mapping),对象关系映射。 是为了解决面向对象与关系型数据库存在的不匹配问题。 ORM框架的优点: 开发效率更高 数据访问更抽象、轻便 支持面向对象封装

  • 本文向大家介绍用 Composer构建自己的 PHP 框架之使用 ORM,包括了用 Composer构建自己的 PHP 框架之使用 ORM的使用技巧和注意事项,需要的朋友参考一下 回顾 经过前三篇文章 基础准备 、 构建路由 和 设计 MVC ,我们已经得到了一个结构比较完整的 MVC 架构的 PHP 微框架,但是距离一个真正能够上手使用的框架还差一样东西: 数据库封装 ,本篇就将讲述如何集成一个

  • 大多数现代应用程序使用关系数据库来存储数据。 最近,许多供应商转而使用对象数据库来减轻数据维护的负担。 这意味着对象数据库或对象关系技术正在处理存储,检索,更新和维护。 此对象关系技术的核心部分是映射orm.xml文件。 由于xml不需要编译,因此我们可以轻松地对管理多个数据源进行更改。 对象关系映射 对象关系映射(ORM)简要介绍了什么是ORM以及它是如何工作的。 ORM是一种编程功能,可以将数

  • 问题内容: 我已经使用Hibernate多年了,从来没有遇到过任何问题,但是刚刚意识到我的大部分工作都涉及CRUD方法,在这种方法中,我需要随意保存和修改数据。 问题是有些人想要制作2个单独的应用程序,一个要批量插入,另一个要对插入的数据执行搜索。 由于这种情况下的持久性有点用处,因此团队希望不使用Hibernate,而是在插入应用程序上使用原始查询,而在查询应用程序上使用jOOQ之类的东西。 那

  • ORM

    介绍 imi 中目前支持两个模型:数据库模型、内存表模型 数据库模型与传统 php-fpm 框架下使用并无多大差别,甚至更加好用。 在 imi 框架中,提供了一个模型生成工具。使用该工具生成的模型,在使用时无需手动定义字段,支持 IDE 代码提示。 模型生成命令使用说明:https://doc.imiphp.com/dev/generate/model.html 模型字段和序列化 模型实例对象可以

  • orm

    Laravel Doctrine ORM A drop-in Doctrine ORM 2 implementation for Laravel 5+ $scientist = new Scientist( 'Albert', 'Einstein');$scientist->addTheory( new Theory('Theory of relativity'));Entity