una sistema programa prestamos libros fuente control codigo biblioteca java sql sqlbuilder

sistema - ¿Hay alguna buena biblioteca dinámica de constructores de SQL en Java?



sistema de biblioteca en java netbeans (5)

Hibernate Criteria API (no es un SQL simple, pero muy poderoso y en desarrollo activo):

List sales = session.createCriteria(Sale.class) .add(Expression.ge("date",startDate); .add(Expression.le("date",endDate); .addOrder( Order.asc("date") ) .setFirstResult(0) .setMaxResults(10) .list();

Alguien conoce una buena biblioteca de compilador de SQL para Java, como Squiggle (ya no se mantiene). Preferiblemente, un proyecto en desarrollo activo.

Preferiblemente con sintaxis como Zend_Db_Select , algo que permitirá hacer una consulta como

String query = db.select().from(''products'').order(''product_id'');


Puede usar la siguiente biblioteca:

https://github.com/pnowy/NativeCriteria

La biblioteca está construida en la parte superior de Hibernate "create sql query", por lo que es compatible con todas las bases de datos admitidas por Hibernate (la sesión de Hibernate y los proveedores de JPA son compatibles). El patrón de construcción está disponible, etc. (mapeadores de objetos, mapeadores de resultados).

Puede encontrar los ejemplos en la página de github, la biblioteca está disponible en Maven Central, por supuesto.

NativeCriteria c = new NativeCriteria(new HibernateQueryProvider(hibernateSession), "table_name", "alias"); c.addJoin(NativeExps.innerJoin("table_name_to_join", "alias2", "alias.left_column", "alias2.right_column")); c.setProjection(NativeExps.projection().addProjection(Lists.newArrayList("alias.table_column","alias2.table_column")));


Puedo recomendar jOOQ . Proporciona muchas funciones excelentes, también un DSL intuitivo para SQL y un enfoque de ingeniería inversa extremadamente asequible.

jOOQ combina de manera efectiva SQL complejo, seguridad de tipo, generación de código fuente, registros activos, procedimientos almacenados, tipos de datos avanzados y Java en un DSL fluido e intuitivo.


ddlutils es mi mejor opción: http://db.apache.org/ddlutils/api/org/apache/ddlutils/platform/SqlBuilder.html

aquí está crear un ejemplo (maravilloso):

Platform platform = PlatformFactory.createNewPlatformInstance("oracle");//db2,... //create schema def db = new Database(); def t = new Table(name:"t1",description:"XXX"); def col1 = new Column(primaryKey:true,name:"id",type:"bigint",required:true); t.addColumn(col1); t.addColumn(new Column(name:"c2",type:"DECIMAL",size:"8,2")); t.addColumn( new Column(name:"c3",type:"varchar")); t.addColumn(new Column(name:"c4",type:"TIMESTAMP",description:"date")); db.addTable(t); println platform.getCreateModelSql(db, false, false) //you can read Table Object from platform.readModelFromDatabase(....) def sqlbuilder = platform.getSqlBuilder(); println "insert:"+sqlbuilder.getInsertSql(t,["id":1,c2:3],false); println "update:"+sqlbuilder.getUpdateSql(t,["id":1,c2:3],false); println "delete:"+sqlbuilder.getDeleteSql(t,["id":1,c2:3],false); //http://db.apache.org/ddlutils/database-support.html