在我的java應用程序中,我想從我的數據庫中檢索所有與給定句子中的任何單詞映射的句子。以下兩種方法對我來說都不起作用。如何通過sql「Like」運算符找到合適的句子?
/*...1st approach...*/
String sentence1 ="Java is very famous programming language";
String selectSQL = "SELECT Data_Sentences FROM table1 Where Data_Sentences LIKE '%"+sentence1+"%'";
PreparedStatement ps=conn.prepareStatement(selectSQL);
rs = pstmtFGram.executeQuery();
這不是輸出任何句子,並沒有給出任何sql錯誤。
/*...2nd approach...*/
String selectSQL = "SELECT Data_Sentences FROM table1 Where Data_Sentences LIKE '%Java%'||%'is'%||%'very'%||%'famous'%||%'programming'%||%'language'%";
在上面的方法中,檢索句子,該句子只與句子的第一個('%Java%')字相映射。即使有一個句子的單詞,我怎樣才能得到所有的句子地圖?
非常多。這工作正常。但是我有另一個問題,我是如何在「where」部分之後改變它的? Bcz我不知道「sentence1」中單詞的長度,這個大小會動態變化。我如何改進代碼? – Maduri 2014-08-29 06:05:13
嘗試使用http://docs.oracle.com/javaee/6/api/javax/persistence/criteria/CriteriaBuilder.html – 2014-08-29 06:07:17