這是對Cnd.wrap 官方用法 , 直接硬編碼 ,
[JAVA]
List<Person> crowd = dao.query(Person.class, Cnd.wrap("name LIKE
'J%' AND age>20"), null);
這句話,就會將所有名稱以 J 開頭,並且年齡超過20歲的人全部查詢出來。上面那句話執行的 SQL 程式碼為:
[SQL]
SELECT * FROM t_person WHERE name LIKE 'J%' AND age>20;
當然你要是寫
[JAVA]
Cnd.wrap("name LIKE 'J%' AND age>20 ORDER BY name ASC");
就會按照 name 欄位排序。
就是直接傳where後面的判斷。但是還有一個過載方法
public static Condition wrap(java.lang.String sql, java.lang.Object value)
文件並沒有給出使用記錄。我檢視了原始碼。找到了用法
Map<String,String> ms = new HashMap<>(); ms.put("name","'p0'"); List<Pet> crowd = dao.query(Pet.class, Cnd.wrap("name = ${name}", ms), null);
生成的語句
SELECT * FROM tb_pet WHERE name = 'p0'
這樣可以方便的編寫原生sql類似 preparedstatement