1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.generator.internal.types;
17
18 import java.sql.Types;
19 import java.util.HashMap;
20 import java.util.Map;
21
22
23
24
25
26
27 public class JdbcTypeNameTranslator {
28
29 private static Map<Integer, String> typeToName;
30 private static Map<String, Integer> nameToType;
31
32 static {
33 typeToName = new HashMap<Integer, String>();
34 typeToName.put(Types.ARRAY, "ARRAY");
35 typeToName.put(Types.BIGINT, "BIGINT");
36 typeToName.put(Types.BINARY, "BINARY");
37 typeToName.put(Types.BIT, "BIT");
38 typeToName.put(Types.BLOB, "BLOB");
39 typeToName.put(Types.BOOLEAN, "BOOLEAN");
40 typeToName.put(Types.CHAR, "CHAR");
41 typeToName.put(Types.CLOB, "CLOB");
42 typeToName.put(Types.DATALINK, "DATALINK");
43 typeToName.put(Types.DATE, "DATE");
44 typeToName.put(Types.DECIMAL, "DECIMAL");
45 typeToName.put(Types.DISTINCT, "DISTINCT");
46 typeToName.put(Types.DOUBLE, "DOUBLE");
47 typeToName.put(Types.FLOAT, "FLOAT");
48 typeToName.put(Types.INTEGER, "INTEGER");
49 typeToName.put(Types.JAVA_OBJECT, "JAVA_OBJECT");
50 typeToName.put(Types.LONGVARBINARY, "LONGVARBINARY");
51 typeToName.put(Types.LONGVARCHAR, "LONGVARCHAR");
52 typeToName.put(Types.NCHAR, "NCHAR");
53 typeToName.put(Types.NCLOB, "NCLOB");
54 typeToName.put(Types.NVARCHAR, "NVARCHAR");
55 typeToName.put(Types.LONGNVARCHAR, "LONGNVARCHAR");
56 typeToName.put(Types.NULL, "NULL");
57 typeToName.put(Types.NUMERIC, "NUMERIC");
58 typeToName.put(Types.OTHER, "OTHER");
59 typeToName.put(Types.REAL, "REAL");
60 typeToName.put(Types.REF, "REF");
61 typeToName.put(Types.SMALLINT, "SMALLINT");
62 typeToName.put(Types.STRUCT, "STRUCT");
63 typeToName.put(Types.TIME, "TIME");
64 typeToName.put(Types.TIMESTAMP, "TIMESTAMP");
65 typeToName.put(Types.TINYINT, "TINYINT");
66 typeToName.put(Types.VARBINARY, "VARBINARY");
67 typeToName.put(Types.VARCHAR, "VARCHAR");
68
69 nameToType = new HashMap<String, Integer>();
70 nameToType.put("ARRAY", Types.ARRAY);
71 nameToType.put("BIGINT", Types.BIGINT);
72 nameToType.put("BINARY", Types.BINARY);
73 nameToType.put("BIT", Types.BIT);
74 nameToType.put("BLOB", Types.BLOB);
75 nameToType.put("BOOLEAN", Types.BOOLEAN);
76 nameToType.put("CHAR", Types.CHAR);
77 nameToType.put("CLOB", Types.CLOB);
78 nameToType.put("DATALINK", Types.DATALINK);
79 nameToType.put("DATE", Types.DATE);
80 nameToType.put("DECIMAL", Types.DECIMAL);
81 nameToType.put("DISTINCT", Types.DISTINCT);
82 nameToType.put("DOUBLE", Types.DOUBLE);
83 nameToType.put("FLOAT", Types.FLOAT);
84 nameToType.put("INTEGER", Types.INTEGER);
85 nameToType.put("JAVA_OBJECT", Types.JAVA_OBJECT);
86 nameToType.put("LONGVARBINARY", Types.LONGVARBINARY);
87 nameToType.put("LONGVARCHAR", Types.LONGVARCHAR);
88 nameToType.put("NCHAR", Types.NCHAR);
89 nameToType.put("NCLOB", Types.NCLOB);
90 nameToType.put("NVARCHAR", Types.NVARCHAR);
91 nameToType.put("LONGNVARCHAR", Types.LONGNVARCHAR);
92 nameToType.put("NULL", Types.NULL);
93 nameToType.put("NUMERIC", Types.NUMERIC);
94 nameToType.put("OTHER", Types.OTHER);
95 nameToType.put("REAL", Types.REAL);
96 nameToType.put("REF", Types.REF);
97 nameToType.put("SMALLINT", Types.SMALLINT);
98 nameToType.put("STRUCT", Types.STRUCT);
99 nameToType.put("TIME", Types.TIME);
100 nameToType.put("TIMESTAMP", Types.TIMESTAMP);
101 nameToType.put("TINYINT", Types.TINYINT);
102 nameToType.put("VARBINARY", Types.VARBINARY);
103 nameToType.put("VARCHAR", Types.VARCHAR);
104 }
105
106
107
108
109 private JdbcTypeNameTranslator() {
110 super();
111 }
112
113
114
115
116
117
118
119
120
121 public static String getJdbcTypeName(int jdbcType) {
122 String answer = typeToName.get(jdbcType);
123 if (answer == null) {
124 answer = "OTHER";
125 }
126
127 return answer;
128 }
129
130
131
132
133
134
135
136
137
138 public static int getJdbcType(String jdbcTypeName) {
139 Integer answer = nameToType.get(jdbcTypeName);
140 if (answer == null) {
141 answer = Types.OTHER;
142 }
143
144 return answer;
145 }
146 }