多条件検索機能のsql文スペルテクニック

1020 ワード

最初はどのようにして、まずテストコードを来て、効果を見てみましょう:複数のクエリー条件に基づいて検索機能を完了すると、sql文のスペルを行い、ある検索条件が空の場合、この条件を考慮しないことを示します.各検索条件をandで接続すると、sql文がwhere and列名like'......の場合が発生しやすくなります.これによりsql文の構文エラーが発生し,このような場合を避けるためにwhereの後に条件1=1を加えて他の検索条件を追加するのが一般的である.次のようになります.

private String getSql(UserInfoBean bean){
		
   String sql = "SELECT * FROM T_USERINFO T where 1=1";
   if(!"".equals(bean.getUserName()) && null != bean.getUserName()){
			sql += " and userName LIKE upper('%"+bean.getUserName()+"%')";
		}
   if(!"".equals(bean.getPhonenumber()) && null != bean.getPhonenumber()){
			sql += " AND PHONENUMBER LIKE '%"+bean.getPhonenumber()+"%'";	
		}
   if(null != bean.getId() && bean.getId().length()>0)
			sql += " AND ID = '"+bean.getId()+"'";
		
   return sql;
} 


菜鳥テスト、不適切があれば、よろしくお願いします!