ObjectiveSql
1.0.0
ObjectiveSQL é uma estrutura ORM em Java baseada no padrão ActiveRecord, que incentiva o desenvolvimento rápido e limpo, códigos com o mínimo e convenção sobre configuração.
Class
possui recursos completos de programação SQLhas_one
, has_many
e belongs_to
) e consulta paginadaarithmetic
, comparison
e logical
) usando sintaxe Java 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 >
Consulte o pom.xml para obter mais configurações
ObjectiveSQL fornece um exemplo completo para vários bancos de dados abaixo. Você pode abri-lo diretamente com o IntelliJ IDEA como um projeto independente. Na verdade, não são apenas exemplos, mas também testes unitários de ObjectiveSQL em diversos bancos de dados.
Se quiser rodar sem configuração, você pode tentar: SQLite
Outros: MySQL, Oracle, MS SQL Server, PostgreSQL, Spring Boot
Você define apenas um JavaBean com anotações
@ 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 `