jdbctemplate中用in查询用法

试了半天,终于找到了
JdbcTemplate中in的用法,
JdbcTemplate自己不能使用in,借助
NamedParameterJdbcTemplate 能实现in的用法
@Autowired
private 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),"指派服务");
    }
}

版权声明:本文为sinat_32247833原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。