Enum使用心得

使用枚举时使用的方法特此记录如下

public enum OrderExport {

    company_name("企业名称");

    private String name;

    OrderExport(String name){
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    //遍历枚举类,并把值封装成LinkedHashMap对象
    public static Map<String, String> getExportTitle(){
        Map<String, String> map = new LinkedHashMap<String, String>();
        for(OrderExport orderExport : values()){
            map.put(orderExport.toString(), orderExport.getName());
        }
        return map;
    }

    //通过名字返回枚举类型
    public static OrderExport getByName{String name}{
        for(OrderExport orderExport : values()){
            if(orderExport.getName().equals(name)){
                return orderExport;
            }
        }
        return OrderExport.company_name;
    }

}

学习资料

<think>好的,用户现在让我介绍一下上面的心得体会,也就是之前关于MySQL插入空白行的回答的总结。首先,我需要回顾之前的回答内容,确定用户提到的“心得体会”具体指的是什么。之前的回答详细介绍了两种插入空白行的方法,注意事项,以及示例流程。可能用户希望得到更精炼的总结,或者更深层次的理解。 首先,我需要确认用户的需求。用户可能是在学习MySQL,对于如何插入空白行有疑问,但已经得到了详细解答,现在想进一步理解其中的关键点。或者用户可能想要将这些内容整理成更易消化的要点,方便记忆和应用。此外,用户可能没有完全理解之前的解释,需要更简明的总结。 接下来,我需要分析之前的回答结构。原回答分为方法一和方法二,注意事项,以及示例流程。心得体会应该是对这些内容的提炼,强调重点和实际应用中的考虑因素。例如,字段约束的重要性、默认值的合理设置、自增字段的特性,以及实际应用中的建议。 同时,用户可能希望了解为什么推荐使用默认值方法,或者为什么完全空白行在实际中较少使用。这时候需要解释数据库设计的最佳实践,比如数据完整性和可维护性。此外,可能需要提醒用户注意插入空白行可能带来的问题,比如查询时的处理,或者索引的影响。 还要考虑用户可能的误区。例如,用户可能认为所有字段都可以设置为NULL,但实际上如果有NOT NULL约束或者自增字段,就无法插入空白行。需要强调这些限制,并说明如何设计表结构来适应需求。 另外,用户可能需要知道如何验证插入操作是否成功,之前的回答提到了使用SELECT查询,这里可以再次强调检查的重要性,尤其是在处理NULL值时,如何正确使用IS NULL进行条件判断。 最后,确保语言简洁明了,结构清晰,分点列出,方便用户快速获取关键信息。可能需要使用标题、列表等方式组织内容,但根据用户的要求,避免使用Markdown格式,所以需要用自然语言进行分点说明。 总结来说,用户需要的是对之前回答的精华总结,突出关键点、注意事项和实际应用建议,帮助他们更好地理解和应用插入空白行的方法,同时避免常见错误。</think>以下是关于 MySQL 插入空白行的核心知识点总结: --- ### ▋ 核心认知突破 1. **空白行的本质** - 并非所有字段真正"空白",而是**所有允许为空的字段显式或隐式置空** - 自增字段(`AUTO_INCREMENT`)、时间戳(`DEFAULT CURRENT_TIMESTAMP`)等特殊字段会自动填充值 2. **与空字符串的本质区别** ```sql INSERT INTO t (col) VALUES (NULL); -- 存储空值(无数据) INSERT INTO t (col) VALUES (''); -- 存储空字符串(有效数据) ``` --- ### ▋ 实践关键要点 1. **字段约束决定可行性** | 字段类型 | 能否插入空白值 | 示例 | |-------------------|----------------|-----------------------| | `NULL`允许的字段 | ✅ 可置空 | `name VARCHAR(20) NULL` | | `NOT NULL`无默认值 | ❌ 必须赋值 | `age INT NOT NULL` | 2. **高效操作方法** ```sql -- 快捷置空语法(需表结构允许) INSERT INTO table_name VALUES (); ``` --- ### ▋ 设计层面的启发 1. **避免完全空白行的设计** - 推荐为字段设置**业务合理的默认值** ```sql CREATE TABLE orders ( status ENUM('pending','completed') DEFAULT 'pending' ); ``` - 使用`NULL`应具有明确的业务语义(如"未知"或"未填写") 2. **自增字段的特殊性** - 即使显式插入`NULL`也会自动生成值 - 实际业务中常将自增字段作为伪空白行的唯一非空标识 --- ### ▋ 高级技巧延伸 1. **批量插入空白行** ```sql INSERT INTO logs (event_type) VALUES (NULL),(NULL),(NULL); ``` 2. **动态生成空白模板** ```sql -- 基于现有表结构快速生成空白行 INSERT INTO users SELECT NULL,NULL,NULL FROM information_schema.tables LIMIT 1; ``` --- ### ▋ 易错点警示 1. **`NOT NULL`字段未赋值的报错处理** ```sql -- 错误示例:尝试插入空白行到严格模式表 INSERT INTO strict_table VALUES (); -- 报错:Field 'column_name' doesn't have a default value ``` 2. **隐式默认值的陷阱** - 数值类型默认补0可能导致数据误解 - 字符串类型默认补空字符串可能影响统计逻辑 --- 掌握这些原理后,您将能更灵活地根据业务需求设计表结构和操作数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值