zoukankan      html  css  js  c++  java
  • 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
    

    将字段改为字符串类型:

    后添加成功:

    结论:虽然传入数据库的时候是枚举,但是还是以我们定义枚举的数据类型保存了

  • 相关阅读:
    C#转C++的一点分享
    数据挖掘十大经典算法
    在硅谷面试:如何证明你是最优秀的?
    .NET技术+25台服务器怎样支撑世界第54大网站
    如何将Vim打造成一个成熟的IDE
    24点算法
    12个Web设计师必备的Bootstrap工具
    程序员必须进行的10项投资
    转载:传说中的T检验
    三测
  • 原文地址:https://www.cnblogs.com/q-441465293/p/15002030.html
Copyright © 2011-2022 走看看