字符串是A,B 后台要把字符串写到sql里,所以字符串要转为'A','B' 查询用的JdbcTemplate

前台传的字符串是A,B 后台要把字符串写到sql里,所以字符串要转为'A','B' sql写成in('A','B'),怎么转?查询用的JdbcTemplate,或者还有什么比较好的方案嘛,小弟感激不尽

google的CharMatcher和Strings工具类

public List<TypePriceInfo> listTypePriceByProductIds(List<Long> productIds) {
        String sqlInParam = CharMatcher.is(',').trimFrom(Strings.repeat("?,", productIds.size()));
        String sql = BASE_TYPE_PRICE_INFO_SQL + "where p.product_id in(" + sqlInParam + ")";
        List<TypePriceInfo> priceInfos = jdbcTemplate.query(sql, productIds.toArray(), typePriceInfoRowMapper);
        if (priceInfos == null) {
            return Collections.emptyList();
        } else {
            return priceInfos;
        }
}

使用NamedParameterJdbcTemplate访问一批数据

public List<Type> queryByFundid(int fundId) { 
     String sql = "select * from employee where id in (:ids);

    List<String> ids = new ArrayList<>();
    ids.add('3');
    ids.add('32');
    args.put("ids", ids);
    NamedParameterJdbcTemplate givenParamJdbcTemp = new NamedParameterJdbcTemplate(jdbcTemplate);
    List<Type> data = givenParamJdbcTemp.queryForList(sql, args, Type.class);
    return data;
}
    public static void main(String[] args) {
        String sql = "你的sql in ";
        String str = "A,B";
        String[] split = str.split(",");
        String inCondition = "(";
        for (String string : split) {
            inCondition += "'"+string+"',";
        }
        inCondition = inCondition.substring(0,inCondition.length()-1)+")";
        sql += inCondition;
        System.out.println(sql);
    }

其实这个根本就不用转的吧,sql是可以识别的呀