zoukankan      html  css  js  c++  java
  • java数据类型对应postgresql的数据类型

      java8 postgreSQL Oracle
    1 LocalDate date  
    2 LocalTime time  
    3 LocalDateTime timestamp without timezone  
    4 OffsetDateTime timestamp with timezone  
    5 String varchar  
    6 String text  
    7 Integer int2  
    8 Integer int4  
    9 Long int8  
    10 Float float4  
    11 Double float8  
    12 BigDecimal numeric  
    13 Boolean bool  
           
           
           
           
           
           

    总结java数据类型和mysql、oracle、pgsql数据类型对应关系,附数据库字段类型转java类型代码

    https://blog.csdn.net/qq_21187515/article/details/91495237?utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromMachineLearnPai2~default-3.control

    mysql字段类型转java类型的方法代码
    public class MySqlTypeConvert implements ITypeConvert {
        public MySqlTypeConvert() {
        }
    
        /**
         * mysql字段类型转java类型
         * @param fieldType mysql字段类型
         * @return
         */
        public DbColumnType processTypeConvert(String fieldType) {
            String t = fieldType.toLowerCase();
            if (!t.contains("char") && !t.contains("text")) {
                if (t.contains("bigint")) {
                    return DbColumnType.LONG;
                } else if (t.contains("int")) {
                    return DbColumnType.INTEGER;
                } else if (!t.contains("date") && !t.contains("time") && !t.contains("year")) {
                    if (t.contains("text")) {
                        return DbColumnType.STRING;
                    } else if (t.contains("bit")) {
                        return DbColumnType.BOOLEAN;
                    } else if (t.contains("decimal")) {
                        return DbColumnType.BIG_DECIMAL;
                    } else if (t.contains("clob")) {
                        return DbColumnType.CLOB;
                    } else if (t.contains("blob")) {
                        return DbColumnType.BLOB;
                    } else if (t.contains("binary")) {
                        return DbColumnType.BYTE_ARRAY;
                    } else if (t.contains("float")) {
                        return DbColumnType.FLOAT;
                    } else if (t.contains("double")) {
                        return DbColumnType.DOUBLE;
                    } else {
                        return !t.contains("json") && !t.contains("enum") ? DbColumnType.STRING : DbColumnType.STRING;
                    }
                } else {
                    return DbColumnType.DATE;
                }
            } else {
                return DbColumnType.STRING;
            }
        }
    }
    
    
    oracle字段类型转java类型的方法代码
    public class OracleTypeConvert implements ITypeConvert {
        public OracleTypeConvert() {
        }
    
        /**
         * oracle字段类型转java类型
         * @param fieldType oracle字段类型
         * @return
         */
        public DbColumnType processTypeConvert(String fieldType) {
            String t = fieldType.toUpperCase();
            if (t.contains("CHAR")) {
                return DbColumnType.STRING;
            } else if (!t.contains("DATE") && !t.contains("TIMESTAMP")) {
                if (t.contains("NUMBER")) {
                    if (t.matches("NUMBER\(+\d\)")) {
                        return DbColumnType.INTEGER;
                    } else {
                        return t.matches("NUMBER\(+\d{2}+\)") ? DbColumnType.LONG : DbColumnType.DOUBLE;
                    }
                } else if (t.contains("FLOAT")) {
                    return DbColumnType.FLOAT;
                } else if (t.contains("clob")) {
                    return DbColumnType.CLOB;
                } else if (t.contains("BLOB")) {
                    return DbColumnType.OBJECT;
                } else if (t.contains("binary")) {
                    return DbColumnType.BYTE_ARRAY;
                } else {
                    return t.contains("RAW") ? DbColumnType.BYTE_ARRAY : DbColumnType.STRING;
                }
            } else {
                return DbColumnType.DATE;
            }
        }
    }
    
    pgsql字段类型转java类型的方法代码
    public class PostgreSqlTypeConvert implements ITypeConvert {
        public PostgreSqlTypeConvert() {
        }
    
        public DbColumnType processTypeConvert(String fieldType) {
            String t = fieldType.toLowerCase();
            if (!t.contains("char") && !t.contains("text")) {
                if (t.contains("bigint")) {
                    return DbColumnType.LONG;
                } else if (t.contains("int")) {
                    return DbColumnType.INTEGER;
                } else if (!t.contains("date") && !t.contains("time") && !t.contains("year")) {
                    if (t.contains("text")) {
                        return DbColumnType.STRING;
                    } else if (t.contains("bit")) {
                        return DbColumnType.BOOLEAN;
                    } else if (t.contains("decimal")) {
                        return DbColumnType.BIG_DECIMAL;
                    } else if (t.contains("clob")) {
                        return DbColumnType.CLOB;
                    } else if (t.contains("blob")) {
                        return DbColumnType.BYTE_ARRAY;
                    } else if (t.contains("float")) {
                        return DbColumnType.FLOAT;
                    } else if (t.contains("double")) {
                        return DbColumnType.DOUBLE;
                    } else if (!t.contains("json") && !t.contains("enum")) {
                        return t.contains("boolean") ? DbColumnType.BOOLEAN : DbColumnType.STRING;
                    } else {
                        return DbColumnType.STRING;
                    }
                } else {
                    return DbColumnType.DATE;
                }
            } else {
                return DbColumnType.STRING;
            }
        }
    }
    
    public enum DbColumnType {
        BASE_INT("int", (String)null),
        BASE_BOOLEAN("boolean", (String)null),
        BASE_FLOAT("float", (String)null),
        BASE_DOUBLE("double", (String)null),
        STRING("String", (String)null),
        LONG("Long", (String)null),
        INTEGER("Integer", (String)null),
        FLOAT("Float", (String)null),
        DOUBLE("Double", (String)null),
        BOOLEAN("Boolean", (String)null),
        BYTE_ARRAY("byte[]", (String)null),
        CHARACTER("Character", (String)null),
        OBJECT("Object", (String)null),
        DATE("Date", "java.util.Date"),
        TIME("Time", "java.sql.Time"),
        BLOB("Blob", "java.sql.Blob"),
        CLOB("Clob", "java.sql.Clob"),
        TIMESTAMP("Timestamp", "java.sql.Timestamp"),
        BIG_INTEGER("BigInteger", "java.math.BigInteger"),
        BIG_DECIMAL("BigDecimal", "java.math.BigDecimal"),
        LOCAL_DATE("LocalDate", "java.time.LocalDate"),
        LOCAL_TIME("LocalTime", "java.time.LocalTime"),
        LOCAL_DATE_TIME("LocalDateTime", "java.time.LocalDateTime");
    
        private final String type;
        private final String pkg;
    
        private DbColumnType(String type, String pkg) {
            this.type = type;
            this.pkg = pkg;
        }
    
        public String getType() {
            return this.type;
        }
    
        public String getPkg() {
            return this.pkg;
        }
    }
    

      

    注:
    这里参考了mybatis-plus-2.0.6.jar的生成实体类的源码,具体可以查看mybatis-plus的源码

  • 相关阅读:
    iOS 微信支付SDK与微信友盟分享两者同时集成时,出现的问题与解决之路。
    Object-C语言Block的实现方式
    使用Mac命令别名,提升工作效率
    利用OC对象的消息重定向forwardingTargetForSelector方法构建高扩展性的滤镜功能
    渐变色进度条的两种绘制方案
    设计模式应用场景之Model设计中可以用到的设计模式
    有趣的赫夫曼树
    技术团队管理者的问题视角
    SSH安全登陆原理:密码登陆与公钥登陆
    为什么HashMap继承了AbstractMap还要实现Map?
  • 原文地址:https://www.cnblogs.com/wzihan/p/14872691.html
Copyright © 2011-2022 走看看