模糊查詢的sql語句


Java程序中使用的sql語句一直不明白是什么作用,在網上搜索了一些資料,看到一篇博客,稍微解答了具體每條代碼的作用,因為作者加了詳細的注解,可以作為參考

《JavaWeb dao層條件查詢(模糊查詢)的sql語句》

 --------------------- 本文來自 阿顧1234 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/u010452388/article/details/80548970

目的:通過一條查詢語句能夠實現用戶所有的條件進行查詢

代碼

/**
     * 通過用戶輸入的參數,到數據庫中查詢到商品信息,並以集合的方式返回
     * @param pname 傳入的查詢參數
     * @param pdesc 傳入的查詢參數
     * @return 返回一個集合,其集合由實體Product組成
     * @throws SQLException
     */ 

public List<Product> findProByIndis(String pname, String pdesc) throws SQLException {
 //創建dbutils下的QueryRunnner 
QueryRunner runner = new QueryRunner(C3P0Utils.getDataSource()); 

//☆☆☆注意where 1=1后面一定要留空格,否則和后面進行字符串拼接后,到數據庫查詢會出現錯誤 
String sql = "select * from product where 1=1 "; 

//創建一個集合用來存儲查詢的參數,因為我們不清楚客戶到底輸入幾個參數,所以用集合來存放
 List<String> list = new ArrayList<String>(); if (pname != "") { 

//如果用戶輸入的pname不為空,那需要進行字符串拼接 
sql += "and pname like ? "; 
//將用戶輸入的參數添加到集合 
list.add("%" + pname + "%"); 
} 
if (pdesc != "") { 
sql += "and pdesc like ? "; list.add("%" + pdesc + "%");
 } 

//最后將集合轉化成數組 
Object[] params = list.toArray();
 //調用runner對象的query查詢方法,並將集合返回
 return runner.query(sql, new BeanListHandler<Product>(Product.class), params);

注意點:

這里作者說一定要加上空格是對的,之前敲的代碼都是在sql語句最前面加上空格,是一個道理

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com