Java ORM 框架,基于ActiveRecored 模式
source link: https://github.com/braisdom/ObjectiveSql
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
ObjectiveSql’s mission is to provide the most intuitive and convenient approach to access various databases, without configuration, without coding relevant to JDBC
& ORM
. It is an abstraction and encapsulation of java in relation database domain logic.
ObjectiveSql-based programming is the best practice in ActiveRecord
pattern in Java, which incorporates both behavior and data and avoids meaningless Interface
declaration of Java. Thus, ObjectiveSql-based programming will change the way to build an application base on relation database especially in the WEB development.
Features
-
Defining a domain model, which carries the query and persistence capabilities by itself, no configuration, no no-implementational
Interface
-
Validating the Java Bean with Jakarta Bean Validation integrated to
ObjectiveSql
-
Database transactions simply add an
Annotation
to the method -
Add
Queryable
annotation to field, which can be queried by static methodqueryByFieldName
Defining domain models
@DomainModel public class Member { private String no; @Queryable private String name; private Integer gender; private String mobile; private String otherInfo; @Relation(relationType = RelationType.HAS_MANY) private List<Order> orders; } @DomainModel public class Order { private String no; private Integer memberId; private Double amount; private Double quantity; @Relation(relationType = RelationType.BELONGS_TO) private Member member; }
Query methods
Member member = Member.queryByPrimaryKey(11);
Member member = Member.queryFirst("id = ?", 11);
List<Member> members = Member.query("id > ?", 8);
List<Member> members = Member.queryAll();
int count = Member.count("id > ?", 10);
...
Validation methods
try { Map<String, String> requestObject = ...; // From the POST request of SpringBoot Member rawMember = Member.newInstanceFrom(requestObject, false); newMember.validate(); //Skip the validation } catch(ValidationException ex) { ... }
Persistence methods
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
Map<String, String> requestObject = ...; // From the POST request of SpringBoot Member rawMember = Member.newInstanceFrom(requestObject, false); newMember.save(false); //Skip the validation // newMember.save(true); // Validating the field value before save
Member.update(1, changedMemberInstance, false);
Member.destory(1);
Member.destory("id = ?", 1);
...
The relation query
Member member = Member.queryPrimary(1, Member.HAS_MANY_ORDERS); List<Order> orders = member.getOrders();
Member member = Member.queryPrimary(1, Member.HAS_MANY_ORDERS); List<Order> orders = member.getOrders();
Member member = Member.queryByName("demo", Member.HAS_MANY_ORDERS); List<Order> orders = member.getOrders();
Transactional
@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); } }
Guides/ 中文
If you are using Maven just add the following dependency to your pom.xml:
<dependency> <groupId>com.github.braisdom</groupId> <artifactId>objective-sql</artifactId> <version>1.3.4</version> </dependency>
Installing IntelliJ Plugin: Preferences/Settings -> Plugins -> Search with "ObjectiveSql" in market -> Install
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK