任何人都可以提出一些很好的實現示例或SQL解析器可用於java的使用場景。用於搜索場景的Java的SQL解析器的使用
我這裏我們需要過濾數據基於某些參數對UI進行呈現的應用等進行排序標準 我對此有些懷疑:
1)這可以是這樣的一個理想的解決方案?
2)怎樣才能UI發揮到Java層提供查詢的作用是什麼?
任何人都可以提出一些很好的實現示例或SQL解析器可用於java的使用場景。用於搜索場景的Java的SQL解析器的使用
我這裏我們需要過濾數據基於某些參數對UI進行呈現的應用等進行排序標準 我對此有些懷疑:
1)這可以是這樣的一個理想的解決方案?
2)怎樣才能UI發揮到Java層提供查詢的作用是什麼?
你要動態地構造SQL查詢您的Java應用程序,然後使用這個SQL獲取數據?比方說,你有這樣的SQL:
select salary from emp where dept='sales'
用戶之後,從UI拿起一些其他過濾器,如年齡> 40,則SQL會是這樣:
select salary from emp where dept='sales' and age > 40
當然,你也許想要添加更復雜的過濾器或添加排序子句。
爲了實現這個功能,完整的SQL Parser很有幫助,下面是演示如何基於Java SQL Parser的Deconstruct, Modify, Rebuild a SQL statement的演示。
我不知道什麼是SQL語法分析程序應該是。應用程序不必分析SQL。 Thay必須執行SQL查詢,因此可能會動態生成SQL查詢。但它是解析SQL的數據庫,而不是應用程序。
的UI通常不提供查詢到服務層。用戶界面不必知道數據是如何保存的以及要執行哪些查詢。這不是它的責任。 UI只應將Filter或Criteria對象傳遞給服務層,服務層將過濾器或條件轉換爲SQL查詢,執行查詢,將結果轉換爲Java對象,然後將這些對象返回到顯示這些對象的UI。
我談論有關[jsqlparser]東西(http://jsqlparser.sourceforge.net/home.php)和任何實例[ZQL(http://zql.sourceforge.net/)。任何想法那些實施? – schhajed 2012-01-18 11:28:32
爲什麼你想解析SQL?你的問題說你想過濾數據。你不需要一個SQL解析器?將數據存儲在數據庫中,並使用SQL查詢進行過濾。如果你想實現一個數據庫,一個SQL解析器很有用。你想*使用*數據庫。 – 2012-01-18 11:32:16
基於對數據的過濾器的用戶用例我是喜歡,UI應該創造,而不是發送多個請求params.For.eg http://docs.amazonwebservices.com/AmazonSimpleDB/latest/DeveloperGuide/SDB_API_Select.html 所以有一些選擇表達式將是一個選擇表達式,例如'select field1,field2 from mydomain where field1 ='abc'and field2 ='cde'order by field1 desc limit 10,20' 所以像這樣的表達式將從UI傳遞到java API。 我希望Java API解析該選擇表達式來獲取這些參數並形成一個動態SQL字符串以傳遞給數據庫。 你建議什麼? – schhajed 2012-01-19 10:58:24
你需要形成這樣一個動態的sql:select field1,field2 from mydomain where field1 ='@ p1'and field2 ='@ p2'order by field1 desc limit 10,20用參數替換文字,還是別的? – 2012-01-20 02:11:28