Java SQL Server即席查询将整数列表转换为varchar
我使用的是这样的临时查询Java SQL Server即席查询将整数列表转换为varchar,java,sql-server,Java,Sql Server,我使用的是这样的临时查询 SELECT MemberName FROM Member WHERE MemberNo IN (:memberNumberList) 然而,MemberNo是varchar列,memNumberList是nvarchar值的列表。当我使用单值时,我将整型变量转换为varchar,如下所示 SELECT MemberName FROM Member WHERE MemberNo = CONVERT(VARCHAR(10), :memberNumber) 如果我不
SELECT MemberName
FROM Member
WHERE MemberNo IN (:memberNumberList)
然而,MemberNo是varchar列,memNumberList是nvarchar值的列表。当我使用单值时,我将整型变量转换为varchar,如下所示
SELECT MemberName
FROM Member
WHERE MemberNo = CONVERT(VARCHAR(10), :memberNumber)
如果我不转换变量,就会发生隐式转换。所以我想把memNumberList转换成varchar
有什么想法吗
下面是它的JAVA代码
MapSqlParameterSource param=新的MapSqlParameterSource();
参数addValue(“memberNumberList”,memberNumberList)
试试看{
List List=jdbcTemplate.query(
“选择MemberName”+
“来自成员”+
“WHERE MemberNo IN(:memberNumberList)”,
参数,新BeanPropertyRowMapper(MemberInfo.class));
return list.stream().collect(Collectors.toMap(MemberInfo::getMemberNumber,Function.identity());
}捕获(数据访问异常){
抛出新成员异常(“搜索成员时出现问题(+“+e.getMessage()+”),e);
}
try {
List<MemberInfo> list = jdbcTemplate.query(
" SELECT MemberName " +
" FROM Member " +
" WHERE MemberNo IN (:memberNumberList) ",
param, new BeanPropertyRowMapper<>(MemberInfo.class));
return list.stream().collect(Collectors.toMap(MemberInfo::getMemberNumber, Function.identity()));
} catch (DataAccessException e) {
throw new MemberException(“There is an issue to search member (+" + e.getMessage() + ")", e);
}