当前位置:   article > 正文

使用MyBatis中出现了ConversionException的解决方法

conversionexception

早上在使用mybatis做修改操作时候出现了这个异常:

ConversionException :DateConverter does not support default String to ‘Date’ conversion.
在这里插入图片描述
因为我的bean类中使用了Date属性
在这里插入图片描述

很明显这就是 beanutils 工具类无法将字符串转换为 Date(java.util.Date)

这里采用自己实现的方式,下面是工具类的实现:

//把map中的值注入到对应的JavaBean属性中

public static <T> T copyParamToBean(Map value, T bean){
    try {

        System.out.println("注入之前" + bean);

        ConvertUtils.register(new Converter() {
            @Override
            public Object convert(Class arg0, Object arg1) {
                if(arg1 == null){
                    return null;
                }
                if(!(arg1 instanceof String)){
                    throw new ConversionException("只支持字符串转换!");
                }
                String str = (String)arg1;
                if(str.trim().equals("")) return null;
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
                try {
                    return sd.parse(str);
                }catch (ParseException e){
                    throw new RuntimeException(e);
                }
            }
        }, java.util.Date.class);

        /**
             * 把所有请求的参数都注入到对象中
             */
        BeanUtils.populate(bean, value);
        System.out.println("注入之后" + bean);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return bean;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/173808
推荐阅读
相关标签
  

闽ICP备14008679号