mysql字符串转数组,合并结果集,转成数组
1.使用GROUP_CONCAT函数将多个结果集合并2.使用CONCAT函数将结果集加[ ]3.实体类接收数据private String id;private String name;private String[] item;
·
1.使用GROUP_CONCAT函数将多个结果集合并
2.使用CONCAT函数将结果集加[ ]
3.实体类接收数据
private String id;
private String name;
private String[] item;
如果上面方法不行,就自定义注解处理
@TableField(typeHandler = ArrayStringTypeHandler.class, jdbcType = JdbcType.VARCHAR)
private String[] item;
/**
* 存储到数据库, 将String数组转换成字符串;
* 从数据库获取数据, 将字符串转为LONG数组.
*/
@MappedTypes({String[].class})
@MappedJdbcTypes({JdbcType.VARCHAR})
public class ArrayStringTypeHandler extends BaseTypeHandler<String[]> {
private static String[] l = new String[]{};
@Override
public void setNonNullParameter(PreparedStatement ps, int i,
String[] parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i, JSONUtil.toJsonStr(parameter));
}
@Override
public String[] getNullableResult(ResultSet rs, String columnName)
throws SQLException {
return JSONUtil.parseArray(rs.getString(columnName)).toArray(l);
}
@Override
public String[] getNullableResult(ResultSet rs, int columnIndex)
throws SQLException {
return JSONUtil.parseArray(rs.getString(columnIndex)).toArray(l);
}
@Override
public String[] getNullableResult(CallableStatement cs, int columnIndex)
throws SQLException {
return JSONUtil.parseArray(cs.getString(columnIndex)).toArray(l);
}
}
更多推荐
已为社区贡献5条内容
所有评论(0)