select g.id , g.name , g.address , g.phone , g.city , g.district , g.area , g.photo_url , g.open_time , g.close_time , g.description , g.state , g.longitude , g.latitude from gym g where (1=1) and g.state >= 3 and g.name like '%4%1%8%' escape '\\' order by g.name asc limit 0,10
名字模糊查询 link ? escape ?
DAO中拼接
StringBuilder selectFragment = new StringBuilder(128).append("select").append(verbosity.getColumnSelectFragment());
StringBuilder fromClause = new StringBuilder(128).append("from").append(TABLE.nameAndAlias).append("where (1=1) ");
if (city >= 0)
{
fromClause.append("and").append(COLUMN.CITY.aliasAndName).append("= ? ");
params.add(city);
}
if (sportType >= 0)
{
fromClause.append("and").append(COLUMN.SPORT_TYPES.aliasAndName).append("= ? ");
params.add(sportType);
}
if (state >= 0)
{
// 查询活跃的场地
fromClause.append("and").append(COLUMN.STATE.aliasAndName).append(">= ? ");
params.add(state);
}
if (name != null && name.trim().length() != 0)
{
name = name.toLowerCase(Platform.SYSTEM_LOCALE);
fromClause.append("and").append(COLUMN.NAME.aliasAndName).append("like ? escape ?");
params.add("%" + DB_ADAPTER.escapeAllWildcardsForLikeStatement(name) + "%");
params.add(DB_ADAPTER.getLikeEscapeSequence());
}