mysql和java對照表java
類型名稱 | 顯示長度 | 數據庫類型 | JAVA類型 | JDBC類型索引(int) | 描述 |
VARCHAR | L+N | VARCHAR | java.lang.String | 12 | |
CHAR | N | CHAR | java.lang.String | 1 | |
BLOB | L+N | BLOB | java.lang.byte[] | -4 | |
TEXT | 65535 | VARCHAR | java.lang.String | -1 | |
INTEGER | 4 | INTEGER UNSIGNED | java.lang.Long | 4 | |
TINYINT | 3 | TINYINT UNSIGNED | java.lang.Integer | -6 | |
SMALLINT | 5 | SMALLINT UNSIGNED | java.lang.Integer | 5 | |
MEDIUMINT | 8 | MEDIUMINT UNSIGNED | java.lang.Integer | 4 | |
BIT | 1 | BIT | java.lang.Boolean | -7 | |
BIGINT | 20 | BIGINT UNSIGNED | java.math.BigInteger | -5 | |
FLOAT | 4+8 | FLOAT | java.lang.Float | 7 | |
DOUBLE | 22 | DOUBLE | java.lang.Double | 8 | |
DECIMAL | 11 | DECIMAL | java.math.BigDecimal | 3 | |
BOOLEAN | 1 | 同TINYINT | |||
ID | 11 | PK (INTEGER UNSIGNED) | java.lang.Long | 4 | |
DATE | 10 | DATE | java.sql.Date | 91 | |
TIME | 8 | TIME | java.sql.Time | 92 | |
DATETIME | 19 | DATETIME | java.sql.Timestamp | 93 | |
TIMESTAMP | 19 | TIMESTAMP | java.sql.Timestamp | 93 | |
YEAR | 4 | YEAR | java.sql.Date | 91 |
對於bolb,通常用於對圖片的數據庫存儲,原理是把圖片打成二進制,而後進行的一種存儲方式,在java中對應byte[]數組。
對於boolen類型,在mysql數據庫中,我的認爲用int類型代替較好,對bit操做不是很方便,尤爲是在具備web頁面開發的項目中,表示0/1,對應java類型的Integer較好。mysql
/** * 數據類型轉化JAVA * @param sqlType:類型名稱 * @return */ public static String toSqlToJava(String sqlType) { if( sqlType == null || sqlType.trim().length() == 0 ) return sqlType; sqlType = sqlType.toLowerCase(); switch(sqlType){ case "nvarchar":return "String"; case "char":return "String"; case "varchar":return "String"; case "text":return "String"; case "nchar":return "String"; case "blob":return "byte[]"; case "integer":return "Long"; case "tinyint":return "Integer"; case "smallint":return "Integer"; case "mediumint":return "Integer"; case "bit":return "Boolean"; case "bigint":return "java.math.BigInteger"; case "float":return "Fload"; case "double":return "Double"; case "decimal":return "java.math.BigDecimal"; case "boolean":return "Boolean"; case "id":return "Long"; case "date":return "java.util.Date"; case "datetime":return "java.util.Date"; case "year":return "java.util.Date"; case "time":return "java.sql.Time"; case "timestamp":return "java.sql.Timestamp"; case "numeric":return "java.math.BigDecimal"; case "real":return "java.math.BigDecimal"; case "money":return "Double"; case "smallmoney":return "Double"; case "image":return "byte[]"; default: System.out.println("-----------------》轉化失敗:未發現的類型"+sqlType); break; } return sqlType; }