java 枚舉(enum),枚舉在存入數據庫的時候是什么類型


先說結論:以我們定義枚舉的數據類型保存了

  1. Java 枚舉是一個特殊的類,一般表示一組常量.例如一周的七天,一年的12個月.
    大多數用戶一個字段的好多種類型,比如用戶的在線,下線,匹配中,游戲中 等等的狀態.

  2. 枚舉的一些操作

enum color {
        紅色, 綠色, 灰色
}
static class user {
        String name;
        color hairColor;
}
public static void main(String[] args) {
        color[] values = color.values();
        for (int i = 0; i < values.length; i++) {
            System.out.println(values[i]);
        }
        color a = color.灰色;
        System.out.println(color.灰色);

        user user = new user();
        user.setHairColor(color.灰色);
        user.setName("小櫻");
        System.out.println(user.toString());
    }
以上代碼輸出:

紅色 綠色 灰色 灰色 user{name='小櫻', hairColor=灰色}

  1. 關於枚舉的一些問題
    包含枚舉的對象存入數據庫的時候是以什么類型存儲的?
    在數據庫創建用戶表,hairColor 字段類型為 int 類型:

    插入時數據庫報錯:
SQL: insert into user (name,hairColor)values (?,?)
    Cause: java.sql.SQLException: Incorrect integer value: '灰色' for column 'hairColor' at row 1

將字段改為字符串類型:

后添加成功:

結論:雖然傳入數據庫的時候是枚舉,但是還是以我們定義枚舉的數據類型保存了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM