ObjectiveSqlJava 的 ORM 框架
ObjectiveSQL(簡稱: objsql,中文譯為: 對象化SQL或者面向?qū)ο骃QL)是一種ORM 技術(shù)在Java 中的應(yīng)用,其主要思想為ActiveRecord,使傳統(tǒng)應(yīng)用程序開發(fā)中的VO,PO等變?yōu)檎嬲腏ava Class,不僅擁有相關(guān)狀態(tài),同時也應(yīng)有相關(guān)行為。ObjectiveSQL 基于JSR 269,實現(xiàn)了數(shù)據(jù)庫訪問的動態(tài)代碼生成,并且在其中封裝了關(guān)系型數(shù)據(jù)庫的常用邏輯,使得應(yīng)用程序開發(fā)變得極其簡單,由于動態(tài)代碼生成,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(對應(yīng)數(shù)據(jù)庫表中的Column), 定義了關(guān)系(@Relation 意味著一個筆訂單屬于一個會員),在SELECT 時指定關(guān)系則可以自動填充該Field, 定義了數(shù)據(jù)庫事務(wù)(@Transactional makeOrder)業(yè)務(wù)方法,方法體中的數(shù)據(jù)庫操作均在數(shù)據(jù)庫事務(wù)內(nèi)運行,自動回滾和提交。部分使用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);
評論
圖片
表情
