Vla*_*sny 104 java sql sqlbuilder
任何人都知道像Squiggle这样的一些优秀的SQL构建器库(似乎不再维护).优选地,正在积极开发的项目.
最好使用类似Zend_Db_Select的语法,这样可以进行类似的查询
String query = db.select().from('products').order('product_id');
Run Code Online (Sandbox Code Playgroud)
pon*_*zao 49
ddlutils是我的最佳选择:http://db.apache.org/ddlutils/api/org/apache/ddlutils/platform/SqlBuilder.html
这里是创建示例(groovy):
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
Run Code Online (Sandbox Code Playgroud)