//회원목록
public ArrayList<UserVO> list(String key,String query,int page){
ArrayList<UserVO> array= new ArrayList<UserVO>();
try {
String sql="select * from users where " + key + " like ? order by regDate desc limit ?,5";
PreparedStatement ps=Database.CON.prepareStatement(sql);
ps.setString(1, "%"+query+"%");
ps.setInt(2, (page-1)*5);
ResultSet rs=ps.executeQuery();
while(rs.next()) {
UserVO vo = new UserVO();
vo.setUid(rs.getString("uid"));
vo.setUpass(rs.getString("upass"));
vo.setUname(rs.getString("uname"));
vo.setPhone(rs.getString("phone"));
vo.setAddress1(rs.getString("address1"));
vo.setAddress2(rs.getString("address2"));
vo.setRegDate(rs.getTimestamp("regDate"));
vo.setPhoto(rs.getString("photo"));
array.add(vo);
}
}catch(Exception e) {
System.out.println("회원목록:" + e.toString());
}
return array;
}
보면 string sql이 있는데,
String sql="select * from users where " + key + " like ? order by regDate desc limit ?,5";
여기를 아주 잘 보면 where 공백 공백 like부분을 볼 수 있다. 이게 제대로 되지 않으면
systax오류를 뿜는다 따라서 이렇게 할 때는 반드시 공백을 넣어야 하고,
ps.setString(1, "%"+query+"%");
이렇게 하는 이유는 칼럼은 ?로 들어가지 못하기 때문이다.