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

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
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的源码

 

posted @   奥兰王子  阅读(9687)  评论(1编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2020-06-10 模拟读取CSV数据文件,查找标题行和数据行
点击右上角即可分享
微信分享提示