欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

多类型的处理

程序员文章站 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(), "|"));
 }
}
相关标签: iBATIS