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

本文介绍了一个名为MySqlTypeConvertor的接口,它负责Java数据类型和数据库类型的互相转换。通过该接口,可以将数据库字段的数据类型转换为Java的数据类型,反之亦然。
/**
 * 负责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;
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值