// Fetch a SQL string from a jOOQ Query in order to manually execute it with another tool.
String sql = create.select(field("BOOK.TITLE"), field("AUTHOR.FIRST_NAME"), field("AUTHOR.LAST_NAME"))
.from(table("BOOK"))
.join(table("AUTHOR"))
.on(field("BOOK.AUTHOR_ID").equal(field("AUTHOR.ID")))
.where(field("BOOK.PUBLISHED_IN").equal(1948))
.getSQL();
可以使用jOOQ,一个轻量级orm框架
根据需求,你可以只用其中的sql builder(doc)
这种用户/界面驱动的组合查询,我之前一个项目中处理过,采用Hibernate的Criteria Query实现的。
程序处理其实是比较简单的,重点在于这类真正的自定义组合查询的性能优化,这个才是关键。
希望对你有点帮助。
P.S. 在任何情况下,请不要直接拼装SQL,很可能不小心引入一个SQL注入点,犯下不可挽回的错误。
采用builder模式
怎么代码写得和我一样烂?
拼复杂的sql建议用模板引擎来做,见我的文章:http://blog.csdn.net/rocks_le...