StringBuilder querySelect = new StringBuilder("select * from messages");
StringBuilder queryWhere = new StringBuilder("where msg_id=?");
if (fileRSVO.getFileName()!= null){
queryWhere.append("and descr LIKE %?% ");
}
// query = "select * from messageswhere msg_id=?and descr LIKE %?% "
Как видите, запрос недействителен. Вы должны добавить пробелы:
StringBuilder querySelect = new StringBuilder("select * from messages ");
StringBuilder queryWhere = new StringBuilder("where msg_id=? ");
if (fileRSVO.getFileName()!= null){
queryWhere.append("and descr LIKE %?% ");
}
// query = "select * from messages where msg_id=? and descr LIKE %?% "
А про часть: descr LIKE%?%
Я не совсем уверен, как это передается через базу данных. Просто "как есть" или как второй параметр, который необходимо заполнить.
Если "как есть", то? рассматривается как подстановочный знак, и все результаты принимаются.
Если нет, 2-й? не заполнено (правильно). Попробуйте использовать:
descr LIKE ?
И добавьте% до и после значения в вашем Java-коде.