ObjectiveSQL ist ein ORM-Framework in Java, das auf dem ActiveRecord-Muster basiert und eine schnelle Entwicklung und saubere Codes mit minimalem Aufwand sowie Konventionen über die Konfiguration fördert.
Class
über alle Funktionen der SQL-Programmierunghas_one
, has_many
und belongs_to
) und seitenweise Abfragearithmetic
, comparison
und logical
) mithilfe der Java-Syntax Preferences/Settings
-> Plugins
-> Search with "ObjectiveSql" in market
-> Install
<!-- In standalone -->
< dependency >
< groupId >com.github.braisdom</ groupId >
< artifactId >objective-sql</ artifactId >
< version >1.4.6</ version >
</ dependency >
<!-- In Spring Boot -->
< dependency >
< groupId >com.github.braisdom</ groupId >
< artifactId >objsql-springboot</ artifactId >
< version >1.3.4</ version >
</ dependency >
Weitere Konfigurationen finden Sie in pom.xml
ObjectiveSQL bietet unten vollständige Beispiele für verschiedene Datenbanken. Sie können es direkt mit IntelliJ IDEA als eigenständiges Projekt öffnen. Tatsächlich handelt es sich nicht nur um Beispiele, sondern auch um Komponententests von ObjectiveSQL in verschiedenen Datenbanken.
Wenn Sie ohne Konfiguration ausführen möchten, können Sie Folgendes versuchen: SQLite
Andere: MySQL, Oracle, MS SQL Server, PostgreSQL, Spring Boot
Sie definieren nur eine JavaBean mit Anmerkungen
@ 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 ;
}
Member . create ( newMember );
Member . create ( new Member []{ newMember1 , newMember2 , newMember3 }, false );
Member . update ( 1L , newMember , true );
Member . update ( "name = 'Smith => Jackson'" , "name = ?" , "Alice" );
Member . destroy ( 1L );
Member . destroy ( "name = ?" , "Mary" );
Member . countAll ();
Member . count ( "id > ?" , 1 );
Member . queryByPrimaryKey ( 1 );
Member . queryFirst ( "id = ?" , 1 );
Member . query ( "id > ?" , 1 );
Member . queryAll ();
Page page = Page . create ( 0 , 10 );
PagedList < Member > members = Member . pagedQueryAll ( page , Member . HAS_MANY_ORDERS );
Member . queryAll ( Member . HAS_MANY_ORDERS );
Member . queryByPrimary ( 1 , Member . HAS_MANY_ORDERS );
Member . queryByName ( "demo" , Member . HAS_MANY_ORDERS );
...
Order . Table orderTable = Order . asTable ();
Select select = new Select ();
// In ObjectiveSQL, Java operator can be overloaded
select . project ( sum ( orderTable . amount ) / sum ( orderTable . quantity ) * 100 )
. from ( orderTable )
. where ( orderTable . quantity > 30 &&
orderTable . salesAt . between ( "2020-10-10 00:00:00" , "2020-10-30 23:59:59" ))
. groupBy ( orderTable . productId );
SELECT SUM ( ` T0 ` . ` amount ` ) / SUM ( ` T0 ` . ` quantity ` ) * 100
FROM ` orders ` AS ` T0 `
WHERE ` T0 ` . ` quantity ` > 30 AND
` T0 ` . ` sales_at ` BETWEEN ' 2020-10-10 00:00:00 ' AND ' 2020-10-30 23:59:59 ' )
GROUP BY ` T0 ` . ` product_id `