jdbcTemplate.queryForList 参数使用错误导致报错
使用的代码
public List<PortalsUser> queryPortalsByOrgIdAndNameCh(Long orgId, String userName){
String sql = "select au.* from nres.restf_all_users au join nres.membership ms on au.id=ms.user_ join nres.restf_all_org ao on ao.id_=ms.org_id where 1=1";
String sql2 = "SELECT name FROM gsres.st_organization where 1=1";
//res_id <> 101 and name like '%"+"分公司"+"%' START WITH res_id = "+"orgId"+ "CONNECT BY PRIOR parentid=res_id
List <Object> queryList=new ArrayList<Object>();
List <Object> queryList2=new ArrayList<Object>();
//获取userName最后2个字符或者截取-后面的字符串,进行模糊匹配
String userName2 = null;
String orgName = null;
queryList2.add("%分公司%");
sql2+=" and res_id <> 101 and name like ? ";
queryList2.add(orgId);
sql2+="START WITH res_id = ? CONNECT BY PRIOR parentid=res_id";
//循环查询获取分公司,在分公司前加市字
List orgNames = jdbcTemplate.queryForList(sql2,java.lang.String.class,queryList2.toArray());
if (orgNames.size()!=0){
orgName = orgNames.get(0).toString();
System.out.println(orgName);
String orgName2 = orgName.replace("分公司","市分公司");
sql += " and ao.name_ = ?";
queryList.add(orgName2);
}else {
return null;
}
if (userName.contains("-")) {
String[] userNames = userName.split("-");
userName2 = userNames[1];
sql += " and au.namech like ?";
queryList.add("%" + userName2 + "%");
} else {
//新增时用户名只输入一个字符就会报错,判断两个以上字符情况使用查询条件
if (userName.length()>=2){
userName2 = userName.substring(userName.length()-2);
sql += " and au.namech like ?";
queryList.add("%" + userName2 + "%");
}
}
List<PortalsUser> nameChs = jdbcTemplate.query(sql,new RowMapper<PortalsUser>() {
public PortalsUser mapRow(ResultSet rs, int rowNum) throws SQLException {
PortalsUser us = new PortalsUser();
us.setNameCh(rs.getString("nameCh"));
us.setName(rs.getString("name"));
return us;
}
},queryList.toArray());
return nameChs;
}
获取 list 实体类集 方式
List<PortalsUser> nameChs = jdbcTemplate.query(sql,new RowMapper<PortalsUser>() {
public PortalsUser mapRow(ResultSet rs, int rowNum) throws SQLException {
PortalsUser us = new PortalsUser();
us.setNameCh(rs.getString("nameCh"));
us.setName(rs.getString("name"));
return us;
}
},queryList.toArray());
此处使用queryList不用queryObject避免查询结果为空的情况
List orgNames = jdbcTemplate.queryForList(sql2,java.lang.String.class,queryList2.toArray());
if (orgNames.size()!=0){
orgName = orgNames.get(0).toString();
System.out.println(orgName);
String orgName2 = orgName.replace("分公司","市分公司");
sql += " and ao.name_ = ?";
queryList.add(orgName2);
}else {
return null;
}