多类型的处理
程序员文章站
2022-05-23 13:04:19
...
在业务中,一个会员会有很多身份,比如全球购,超级卖家,黄金会员。这些标志只是对某些业务有控制作用,所以通过一个字段通过字符串来保存就可以了。对于模型来说是List<String>的格式,但是对于数据库只需要一个varcher即可格式xx|yy|zz|,在ibatis通过实现一个自己的handler即可。
public class StringListHandler implements TypeHandlerCallback {
public Object getResult(ResultGetter getter) throws SQLException {
List<String> strings = new ArrayList<String>();
if (StringUtil.isNotBlank(values)) {
String[] typesArray = values.split("\\|");
for (int i = 0; i < typesArray.length; i++) {
strings.add(StringUtil.trim(typesArray[i]));
}
}
return strings;
}
public void setParameter(ParameterSetter setter, Object parameter) throws SQLException {
List<String> list = (List<String>) parameter;
setter.setString(StringUtil.join(list.toArray(), "|"));
}
}
上一篇: Angular2 父子组件通信方式
下一篇: MFC 创建键盘按键触发事件