jdbctemplate中用in查询用法

来源:互联网 发布:肩颈按摩仪 知乎 编辑:程序博客网 时间:2024/06/14 08:16
试了半天,终于找到了
JdbcTemplate中in的用法,
JdbcTemplate自己不能使用in,借助
NamedParameterJdbcTemplate 能实现in的用法
@Autowiredprivate DataSource dataSource;//数据源注入即可使用

public void assignBatch(List<String> todoIds, String teamMemberId) {    todoDao.assignBatch(todoIds,teamMemberId);    //批量指派添加消息提醒    String sql = "select fm.id,sa.username,td.TODO_CONTENT from todo td \n" +            "INNER JOIN ORG_MEMBER_INFO omi on td.TEAM_MEMBER_ID = OMI.id\n" +            "INNER JOIN SYS_ACCOUNT sa on omi.sys_account_id = sa.id\n" +            "INNER JOIN FAMILY_MEMBER fm on td.family_member_id = fm.id\n" +            "where td.todo_id in (:todoIds)";    Map<String, Object> paramMap = new HashMap<>();    paramMap.put("todoIds", todoIds);    NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);    List<Map<String, Object>> mapList = namedParameterJdbcTemplate.queryForList(sql,paramMap);    List<String> familyMemberIds = new ArrayList<>();    List<String> executorNames = new ArrayList<>();    List<String> todoContents = new ArrayList<>();    for(Map<String, Object> map : mapList){        for(String key : map.keySet()){            if(key.equals("ID")){                familyMemberIds.add(map.get(key).toString());            }else if(key.equals("USERNAME")){                executorNames.add(map.get(key).toString());            }else if(key.equals("TODO_CONTENT")){                todoContents.add(map.get(key).toString());            }        }    }    for(int i = 0; i <  familyMemberIds.size(); i ++){        iMessageService.addAdminMessage(familyMemberIds.get(i),"1","团队长已指派医生"+ executorNames.get(i) +"为你服务,内容为:"+todoContents.get(i),"指派服务");    }}
原创粉丝点击