日期:2014-05-16  浏览次数:20448 次

mybatis批量新增系列之类型处理

在前面批量新增中曾经提到jdbcType,关于这个类型的转化方法如下

 private String changeColumnType(String dataType){
  if("NUMBER".equals(dataType)){
   return "DOUBLE";
  }else if("VARCHAR2".equals(dataType)){
   return "VARCHAR";
  }else if(dataType.startsWith("TIMESTAMP")){
   return "TIMESTAMP"; 
  }else{
   return dataType;
  }
 }

从上面方法告诉我们要注意以下几点

1在Oracle中有VARCHAR2类型,但是你使用批量的时候要转化成VARCHAR

2数据为Date类型的他只会保存年月日要想解决有两种方式

2.1将Date类型的数据改成字符串,然后拼接的时候改成

to_date(#{obj.column,jdbcType=VARCHAR},'yyyy-MM-dd hh24:mi:ss')

2.2将Date类型转化成TIME类型,系统会自动保存年月日时分秒

3TIMESTAMP在数据库中可能会加精度,在这里只能统一改成TIMESTAMP不加精度