ORM框架分析之DB到Entity的映射(四)

  • Post author:
  • Post category:其他


/**

* 负责java数据类型和数据库类型的互相转换

* @author yanggang

*/

public interface TypeConvertor {

/**

* 将数据库数据类型装换成Java的数据类型

* @param columnType 数据库字段的数据类型

* @return java的数据类型

*/

public String databaseTypeToJavaType(String columnType);

/**

* 将java的数据类型转化成数据库数据类型

* @param javaType java数据类型

* @return 数据库类型

*/

public String javaTypeToDatabaseType(String javaType);

}

package com.yanggang.sorm.core;

public class MySqlTypeConvertor implements TypeConvertor {

@Override

public String databaseTypeToJavaType(String columnType) {


if(“varchar”.equalsIgnoreCase(columnType)||”char”.equalsIgnoreCase(columnType)||”text”.equalsIgnoreCase(columnType)){


return “String”;

}else if(“int”.equalsIgnoreCase(columnType)

||”tinyint”.equalsIgnoreCase(columnType)

||”smallint”.equalsIgnoreCase(columnType)

||”integer”.equalsIgnoreCase(columnType)){


return “Integer”;

}else if(“bigint”.equalsIgnoreCase(columnType)){


return “Long”;

}else if(“double”.equalsIgnoreCase(columnType)

||”float”.equalsIgnoreCase(columnType)){


return “Double”;

}else if(“clob”.equalsIgnoreCase(columnType)){


return “java.sql.CLob”;

}else if(“blob”.equalsIgnoreCase(columnType)){


return “java.sql.BLob”;

}else if(“date”.equalsIgnoreCase(columnType)||”datetime”.equalsIgnoreCase(columnType)){


return “java.sql.Date”;

}else if(“time”.equalsIgnoreCase(columnType)){


return “java.sql.Time”;

}else if(“timestamp”.equalsIgnoreCase(columnType)){


return “java.sql.Timestamp”;//时间戳类型

}else if(“decimal”.equalsIgnoreCase(columnType)){


return “java.math.BigDecimal”;

}else{


return null;

}

}

@Override

public String javaTypeToDatabaseType(String javaType) {


return null;

}

}



版权声明:本文为u011463470原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。