* 负责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;
}
}