新聞中心
枚舉類型是Java中常用的一種數(shù)據(jù)類型,用于定義一些常量值。在實際開發(fā)中,我們經(jīng)常需要將枚舉類型的值存儲到數(shù)據(jù)庫中,以便進行查詢和統(tǒng)計。本文將介紹在JavaWeb中如何將枚舉類存儲到數(shù)據(jù)庫中。

一、枚舉類的定義
在Java中定義枚舉類可以采用如下形式:
public enum Season {
SPRING, SUMMER, AUTUMN, WINTER
}
這里定義了一個季節(jié)的枚舉類Season,其中包含了四個枚舉值:SPRING,SUMMER,AUTUMN,WINTER。
二、將枚舉類存儲到數(shù)據(jù)庫中
在將枚舉類存儲到數(shù)據(jù)庫中時,需要注意兩點:
1、將枚舉值存儲到數(shù)據(jù)庫中
在將枚舉值存儲到數(shù)據(jù)庫中時,我們可以將枚舉值作為字符串存儲,也可以將枚舉值作為整數(shù)存儲。
在將枚舉值作為字符串存儲時,我們需要在數(shù)據(jù)庫中定義一個CHAR或VARCHAR類型的字段來存儲數(shù)據(jù)。比如:
CREATE TABLE students(
id INT PRIMARY KEY,
name VARCHAR(20),
gender CHAR(6),
grade INT
);
在這個表中,我們定義了一個gender字段,用于存儲學生的性別。由于枚舉類型的每個值都是一個字符串,所以我們可以在枚舉類中定義一個方法,將枚舉值轉(zhuǎn)換成字符串。比如:
public enum Gender {
MALE(“男”),
FEMALE(“女”);
private String value;
Gender(String value) {
this.value = value;
}
public String value() {
return value;
}
}
在這個枚舉類中,我們定義了兩個枚舉值:MALE和FEMALE,用于表示男性和女性。同時,我們還定義了一個value屬性,用于存儲枚舉值對應的字符串。在它的構(gòu)造器中,我們將字符串賦值給value屬性。在添加學生信息時,我們可以將枚舉值轉(zhuǎn)換成字符串,再存儲到數(shù)據(jù)庫中。比如:
String gender = Gender.MALE.value();
在將枚舉值作為整數(shù)存儲時,我們需要在數(shù)據(jù)庫中定義一個INT類型的字段來存儲數(shù)據(jù)。比如:
CREATE TABLE students(
id INT PRIMARY KEY,
name VARCHAR(20),
gender INT,
grade INT
);
在這個表中,我們定義了一個gender字段,用于存儲學生的性別。由于枚舉類型的每個值都是一個整數(shù),所以我們可以在枚舉類中定義一個方法,將枚舉值轉(zhuǎn)換成整數(shù)。比如:
public enum Gender {
MALE(1),
FEMALE(2);
private int value;
Gender(int value) {
this.value = value;
}
public int value() {
return value;
}
}
在這個枚舉類中,我們定義了兩個枚舉值:MALE和FEMALE,用于表示男性和女性。同時,我們還定義了一個value屬性,用于存儲枚舉值對應的整數(shù)。在它的構(gòu)造器中,我們將整數(shù)賦值給value屬性。在添加學生信息時,我們可以將枚舉值轉(zhuǎn)換成整數(shù),再存儲到數(shù)據(jù)庫中。比如:
int gender = Gender.MALE.value();
2、將枚舉類型存儲到數(shù)據(jù)庫中
在將枚舉類型存儲到數(shù)據(jù)庫中時,我們需要將枚舉類型轉(zhuǎn)換成一個能夠存儲到數(shù)據(jù)庫中的數(shù)據(jù)類型。通常情況下,我們可以將枚舉類型轉(zhuǎn)換成整數(shù)或字符串類型。比如:
public enum Season {
SPRING(1, “春”),
SUMMER(2, “夏”),
AUTUMN(3, “秋”),
WINTER(4, “冬”);
private int value;
private String name;
Season(int value, String name) {
this.value = value;
this.name = name;
}
public int value() {
return value;
}
public String name() {
return name;
}
// 根據(jù)value獲取枚舉值
public static Season valueOf(int value) {
for (Season season : values()) {
if (season.value == value) {
return season;
}
}
return null;
}
// 根據(jù)name獲取枚舉值
public static Season valueOf(String name) {
for (Season season : values()) {
if (season.name.equals(name)) {
return season;
}
}
return null;
}
}
在這個枚舉類中,我們定義了四個枚舉值:SPRING,SUMMER,AUTUMN,WINTER,用于表示四個季節(jié)。同時,我們還定義了一個value屬性,用于存儲枚舉值對應的整數(shù),以及一個name屬性,用于存儲枚舉值名稱的字符串。在構(gòu)造器中,我們將整數(shù)和字符串分別賦值給value和name屬性。在添加學生信息時,我們可以將枚舉類型轉(zhuǎn)換成整數(shù)或字符串,再存儲到數(shù)據(jù)庫中。比如:
// 將枚舉類型轉(zhuǎn)換成整數(shù)
int season = Season.SPRING.value();
// 將枚舉類型轉(zhuǎn)換成字符串
String season = Season.SPRING.name();
三、
將枚舉類型存儲到數(shù)據(jù)庫中并不困難,只需要將枚舉類型轉(zhuǎn)換成一個能夠存儲到數(shù)據(jù)庫中的數(shù)據(jù)類型,并按照相應的格式存儲到數(shù)據(jù)庫中即可。在實際開發(fā)中,我們需要根據(jù)實際情況選擇合適的轉(zhuǎn)換方式,以便更好地操作數(shù)據(jù)庫。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220enum怎么用?
一個enum是定義一組值的對象,歷粗嫌它可以包括零個或多個值成員。只須定義一個enum型的對象.enum對象的值都會自動獲得一個數(shù)字值,從0開始,依次遞增。如:
EnumDemo.java
package net.javagarage.enums;
public class EnumDemo{
private enum Seasons{
winter,spring,summer,fall
}
public static void main(String[]args){
for(Seasons s:Seasons.values()){
System.out.println(s);
}
}
}
盡管enums有這么多的屬性,但并不是用的越多越肢手好,如果那樣還不如直接用類來的直接.enums的優(yōu)勢在定義int最終變量僅當這些值有一定特殊含義時.但是如果需要的是一個類,就定義一個類,而不是enum。
擴展資料:
枚舉值是常量,不是變量。不能在程序中用賦值語句再對它賦值。枚舉元素本身由系統(tǒng)定義了一個表示序號的數(shù)值,從0開始順序定義凳態(tài)為0,1,2…。如在weekday中,sun值為0,mon值為1,sat值為6。
只能把枚舉值賦予枚舉變量,不能把元素的數(shù)值直接賦予枚舉變量。如一定要把數(shù)值賦予枚舉變量,則必須用強制類型轉(zhuǎn)換。
11.10 枚舉類型
在實際問題中,有些變量的取值被限定在一個有限的范圍內(nèi)。例如,一個星期內(nèi)只有七天,一年只有十二個月,一個班每周有六門課程等等。如果把這些量說明為整型,字符如局或型或其它類型顯然是不妥當?shù)摹榇?,C語言提供了一種稱為“枚舉”的類型。在“枚舉”類型的定義中列舉出所有可能的取值,被說明為該“枚舉”類型的變量取值不能超過定義的范圍。應該說明的是,枚舉類型是一種基本數(shù)據(jù)類型,而不是一種構(gòu)造類型,因為它不能再分解為任何基本類型。
11.10.1 枚舉類型的定義和枚舉變量的說明
1. 枚舉的定義枚舉類型定義的一般形式為:
enum 枚舉名{ 枚舉值表 };
在枚舉值表中應羅列出所有可用值。這些值也稱為枚舉元素。
例如:
該枚舉名為weekday,枚舉值共有7個,即一周中的七天。凡被說明為weekday類型變量的取值只能是七天中的某一天。
2. 枚舉變量的說明
如同結(jié)構(gòu)和聯(lián)合一樣,枚舉變量也可用不同的方式說明,即先定義后說明,同時定義說明或直接說明。
設有變量a,b,c被說明為上述的weekday,可采用下述任一種方式:
enum weekday{ sun,mou,tue,wed,thu,fri,sat };
enum weekday a,b,c;
或者為:
enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;
或者為:
enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;
11.10.2 枚舉類型變量的賦值和使用
枚舉類型在使用中渣伍有以下規(guī)定:
1. 枚舉值是常量,不是變量。不能在程序中用賦值語句再對它賦值。
例如對枚舉weekday的元素再作以下賦值:
sun=5;
mon=2;
sun=mon;
都是錯誤的。
2. 枚舉元素本身由系統(tǒng)定義了一個表示序號的數(shù)值,從0開始順序定義為0,1,2…。如在weekday中,sun值為0,mon值為1,…,sat值為6。
【例11.10】臘殲
main(){
enum weekday
{ sun,mon,tue,wed,thu,fri,sat } a,b,c;
a=sun;
b=mon;
c=tue;
printf(“%d,%d,%d”,a,b,c);
}
說明:
只能把枚舉值賦予枚舉變量,不能把元素的數(shù)值直接賦予枚舉變量。如:
a=sum;
b=mon;
是正確的。而:
a=0;
b=1;
是錯誤的。如一定要把數(shù)值賦予枚舉變量,則必須用強制類型轉(zhuǎn)換。
如:
a=(enum weekday)2;
其意義是將順序號為2的枚舉元素賦予枚舉變量a,相當于:
a=tue;
還應該說明的是枚舉元素不是字符常量也不是字符串常量,使用時不要加單、雙引號。
【例11.11】
main(){
enum body
{ a,b,c,d } month,j;
int i;
j=a;
for(i=1;id) j=a;
}
for(i=1;i
switch(month)
{
case a:printf(” %2d %c\t”,i,’a’); break;
case b:printf(” %2d %c\t”,i,’b’); break;
case c:printf(” %2d %c\t”,i,’c’); break;
case d:printf(” %2d %c\t”,i,’d’); break;
default:break;
}
}
printf(“\n”);
在數(shù)據(jù)庫中存枚舉值,用數(shù)字還是字符好?
這個要看你的
枚舉
, 是 僅僅一次只能選擇一個的? 還是一次可以選擇多個的.
例如你的
order_id order_status
SUCS(成功success)
PCES(處理process)
某行拆姿數(shù)據(jù), 要么就是 SUCS(成功success) , 要么就是 PCES(處理process)
這種情況下, 用字畢昌符是比較合適的。
但是如果枚舉是可以選擇多個的, 例如:
id desc
1 無黨派
2 知識分子
4 少數(shù)民族
8 女性
16 ……
這種情況下, 如果一個人, 多個枚舉都滿足的情況下, 那么這種情況下, 使用 數(shù)字 是比較適合的。
也就是
如果某個人,是 無黨派漢族女性研究生, 那么枚旅數(shù)絕舉值 = 1+2+8
.做個字典表 試試。這樣就不怕 忘了。
一般在主表上存儲的是枚舉值,另建立一個值對應說明表,查詢時關聯(lián)取出說明內(nèi)容
javaweb enum存數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于javaweb enum存數(shù)據(jù)庫,JavaWeb中如何將枚舉類存儲到數(shù)據(jù)庫中?,enum怎么用?,在數(shù)據(jù)庫中存枚舉值,用數(shù)字還是字符好?的信息別忘了在本站進行查找喔。
成都網(wǎng)站建設選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設計,高端小程序APP定制開發(fā),成都網(wǎng)絡營銷推廣等一站式服務。
本文標題:JavaWeb中如何將枚舉類存儲到數(shù)據(jù)庫中?(javawebenum存數(shù)據(jù)庫)
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/codhhdc.html


咨詢
建站咨詢
