java - 如何优雅的根据查询条件拼接sql
大家讲道理
大家讲道理 2017-04-17 11:52:56
0
6
622

管理平台很多查询条件,需要根据不同的查询条件拼接sql比如 a='xx' b like 'xx' c is null 等。我知道用mybatis的话可以根据是否查询条件为空来拼接sql。但是用其他框架比如JFinal 怎么更好的拼接,又能有效的防止sql注入?请前辈给个思路。谢谢

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(6)
阿神

雷雷

伊谢尔伦

可以使用jOOQ,一個輕量級orm框架
根據需求,你可以只用其中的sql builder(doc)

// 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();
刘奇

這種使用者/介面驅動的組合查詢,我之前一個專案中處理過,採用Hibernate的Criteria Query實現的。

程式處理其實是比較簡單的,重點在於這類真正的自訂組合查詢的效能最佳化,這個才是關鍵。

希望對你有點幫助。

P.S. 在任何情況下,請不要直接拼裝SQL,很可能不小心引入一個SQL注入點,犯下不可挽回的錯誤。

Peter_Zhu

採用builder模式

PHPzhong

怎麼程式碼寫得跟我一樣爛?

Ty80

拼複雜的sql建議用模板引擎來做,請看我的文章:http://blog.csdn.net/rocks_le...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!