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

一、枚舉類的定義
在Java中定義枚舉類可以采用如下形式:
public enum Season {
SPRING, SUMMER, AUTUMN, WINTER
}
這里定義了一個(gè)季節(jié)的枚舉類Season,其中包含了四個(gè)枚舉值:SPRING,SUMMER,AUTUMN,WINTER。
二、將枚舉類存儲(chǔ)到數(shù)據(jù)庫中
在將枚舉類存儲(chǔ)到數(shù)據(jù)庫中時(shí),需要注意兩點(diǎn):
1、將枚舉值存儲(chǔ)到數(shù)據(jù)庫中
在將枚舉值存儲(chǔ)到數(shù)據(jù)庫中時(shí),我們可以將枚舉值作為字符串存儲(chǔ),也可以將枚舉值作為整數(shù)存儲(chǔ)。
在將枚舉值作為字符串存儲(chǔ)時(shí),我們需要在數(shù)據(jù)庫中定義一個(gè)CHAR或VARCHAR類型的字段來存儲(chǔ)數(shù)據(jù)。比如:
CREATE TABLE students(
id INT PRIMARY KEY,
name VARCHAR(20),
gender CHAR(6),
grade INT
);
在這個(gè)表中,我們定義了一個(gè)gender字段,用于存儲(chǔ)學(xué)生的性別。由于枚舉類型的每個(gè)值都是一個(gè)字符串,所以我們可以在枚舉類中定義一個(gè)方法,將枚舉值轉(zhuǎn)換成字符串。比如:
public enum Gender {
MALE(“男”),
FEMALE(“女”);
private String value;
Gender(String value) {
this.value = value;
}
public String value() {
return value;
}
}
在這個(gè)枚舉類中,我們定義了兩個(gè)枚舉值:MALE和FEMALE,用于表示男性和女性。同時(shí),我們還定義了一個(gè)value屬性,用于存儲(chǔ)枚舉值對(duì)應(yīng)的字符串。在它的構(gòu)造器中,我們將字符串賦值給value屬性。在添加學(xué)生信息時(shí),我們可以將枚舉值轉(zhuǎn)換成字符串,再存儲(chǔ)到數(shù)據(jù)庫中。比如:
String gender = Gender.MALE.value();
在將枚舉值作為整數(shù)存儲(chǔ)時(shí),我們需要在數(shù)據(jù)庫中定義一個(gè)INT類型的字段來存儲(chǔ)數(shù)據(jù)。比如:
CREATE TABLE students(
id INT PRIMARY KEY,
name VARCHAR(20),
gender INT,
grade INT
);
在這個(gè)表中,我們定義了一個(gè)gender字段,用于存儲(chǔ)學(xué)生的性別。由于枚舉類型的每個(gè)值都是一個(gè)整數(shù),所以我們可以在枚舉類中定義一個(gè)方法,將枚舉值轉(zhuǎn)換成整數(shù)。比如:
public enum Gender {
MALE(1),
FEMALE(2);
private int value;
Gender(int value) {
this.value = value;
}
public int value() {
return value;
}
}
在這個(gè)枚舉類中,我們定義了兩個(gè)枚舉值:MALE和FEMALE,用于表示男性和女性。同時(shí),我們還定義了一個(gè)value屬性,用于存儲(chǔ)枚舉值對(duì)應(yīng)的整數(shù)。在它的構(gòu)造器中,我們將整數(shù)賦值給value屬性。在添加學(xué)生信息時(shí),我們可以將枚舉值轉(zhuǎn)換成整數(shù),再存儲(chǔ)到數(shù)據(jù)庫中。比如:
int gender = Gender.MALE.value();
2、將枚舉類型存儲(chǔ)到數(shù)據(jù)庫中
在將枚舉類型存儲(chǔ)到數(shù)據(jù)庫中時(shí),我們需要將枚舉類型轉(zhuǎn)換成一個(gè)能夠存儲(chǔ)到數(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;
}
}
在這個(gè)枚舉類中,我們定義了四個(gè)枚舉值:SPRING,SUMMER,AUTUMN,WINTER,用于表示四個(gè)季節(jié)。同時(shí),我們還定義了一個(gè)value屬性,用于存儲(chǔ)枚舉值對(duì)應(yīng)的整數(shù),以及一個(gè)name屬性,用于存儲(chǔ)枚舉值名稱的字符串。在構(gòu)造器中,我們將整數(shù)和字符串分別賦值給value和name屬性。在添加學(xué)生信息時(shí),我們可以將枚舉類型轉(zhuǎn)換成整數(shù)或字符串,再存儲(chǔ)到數(shù)據(jù)庫中。比如:
// 將枚舉類型轉(zhuǎn)換成整數(shù)
int season = Season.SPRING.value();
// 將枚舉類型轉(zhuǎn)換成字符串
String season = Season.SPRING.name();
三、
將枚舉類型存儲(chǔ)到數(shù)據(jù)庫中并不困難,只需要將枚舉類型轉(zhuǎn)換成一個(gè)能夠存儲(chǔ)到數(shù)據(jù)庫中的數(shù)據(jù)類型,并按照相應(yīng)的格式存儲(chǔ)到數(shù)據(jù)庫中即可。在實(shí)際開發(fā)中,我們需要根據(jù)實(shí)際情況選擇合適的轉(zhuǎn)換方式,以便更好地操作數(shù)據(jù)庫。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220enum怎么用?
一個(gè)enum是定義一組值的對(duì)象,歷粗嫌它可以包括零個(gè)或多個(gè)值成員。只須定義一個(gè)enum型的對(duì)象.enum對(duì)象的值都會(huì)自動(dòng)獲得一個(gè)數(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)勢(shì)在定義int最終變量?jī)H當(dāng)這些值有一定特殊含義時(shí).但是如果需要的是一個(gè)類,就定義一個(gè)類,而不是enum。
擴(kuò)展資料:
枚舉值是常量,不是變量。不能在程序中用賦值語句再對(duì)它賦值。枚舉元素本身由系統(tǒng)定義了一個(gè)表示序號(hào)的數(shù)值,從0開始順序定義凳態(tài)為0,1,2…。如在weekday中,sun值為0,mon值為1,sat值為6。
只能把枚舉值賦予枚舉變量,不能把元素的數(shù)值直接賦予枚舉變量。如一定要把數(shù)值賦予枚舉變量,則必須用強(qiáng)制類型轉(zhuǎn)換。
11.10 枚舉類型
在實(shí)際問題中,有些變量的取值被限定在一個(gè)有限的范圍內(nèi)。例如,一個(gè)星期內(nèi)只有七天,一年只有十二個(gè)月,一個(gè)班每周有六門課程等等。如果把這些量說明為整型,字符如局或型或其它類型顯然是不妥當(dāng)?shù)?。為此,C語言提供了一種稱為“枚舉”的類型。在“枚舉”類型的定義中列舉出所有可能的取值,被說明為該“枚舉”類型的變量取值不能超過定義的范圍。應(yīng)該說明的是,枚舉類型是一種基本數(shù)據(jù)類型,而不是一種構(gòu)造類型,因?yàn)樗荒茉俜纸鉃槿魏位绢愋汀?/p>
11.10.1 枚舉類型的定義和枚舉變量的說明
1. 枚舉的定義枚舉類型定義的一般形式為:
enum 枚舉名{ 枚舉值表 };
在枚舉值表中應(yīng)羅列出所有可用值。這些值也稱為枚舉元素。
例如:
該枚舉名為weekday,枚舉值共有7個(gè),即一周中的七天。凡被說明為weekday類型變量的取值只能是七天中的某一天。
2. 枚舉變量的說明
如同結(jié)構(gòu)和聯(lián)合一樣,枚舉變量也可用不同的方式說明,即先定義后說明,同時(shí)定義說明或直接說明。
設(shè)有變量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. 枚舉值是常量,不是變量。不能在程序中用賦值語句再對(duì)它賦值。
例如對(duì)枚舉weekday的元素再作以下賦值:
sun=5;
mon=2;
sun=mon;
都是錯(cuò)誤的。
2. 枚舉元素本身由系統(tǒng)定義了一個(gè)表示序號(hào)的數(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;
是錯(cuò)誤的。如一定要把數(shù)值賦予枚舉變量,則必須用強(qiáng)制類型轉(zhuǎn)換。
如:
a=(enum weekday)2;
其意義是將順序號(hào)為2的枚舉元素賦予枚舉變量a,相當(dāng)于:
a=tue;
還應(yīng)該說明的是枚舉元素不是字符常量也不是字符串常量,使用時(shí)不要加單、雙引號(hào)。
【例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ù)字還是字符好?
這個(gè)要看你的
枚舉
, 是 僅僅一次只能選擇一個(gè)的? 還是一次可以選擇多個(gè)的.
例如你的
order_id order_status
SUCS(成功success)
PCES(處理process)
某行拆姿數(shù)據(jù), 要么就是 SUCS(成功success) , 要么就是 PCES(處理process)
這種情況下, 用字畢昌符是比較合適的。
但是如果枚舉是可以選擇多個(gè)的, 例如:
id desc
1 無黨派
2 知識(shí)分子
4 少數(shù)民族
8 女性
16 ……
這種情況下, 如果一個(gè)人, 多個(gè)枚舉都滿足的情況下, 那么這種情況下, 使用 數(shù)字 是比較適合的。
也就是
如果某個(gè)人,是 無黨派漢族女性研究生, 那么枚旅數(shù)絕舉值 = 1+2+8
.做個(gè)字典表 試試。這樣就不怕 忘了。
一般在主表上存儲(chǔ)的是枚舉值,另建立一個(gè)值對(duì)應(yīng)說明表,查詢時(shí)關(guān)聯(lián)取出說明內(nèi)容
javaweb enum存數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于javaweb enum存數(shù)據(jù)庫,JavaWeb中如何將枚舉類存儲(chǔ)到數(shù)據(jù)庫中?,enum怎么用?,在數(shù)據(jù)庫中存枚舉值,用數(shù)字還是字符好?的信息別忘了在本站進(jìn)行查找喔。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營銷推廣等一站式服務(wù)。
網(wǎng)站欄目:JavaWeb中如何將枚舉類存儲(chǔ)到數(shù)據(jù)庫中?(javawebenum存數(shù)據(jù)庫)
網(wǎng)頁地址:http://www.fisionsoft.com.cn/article/codhhdc.html


咨詢
建站咨詢
