java中枚举类的实际应用
知识点:在Java中,使用枚举类,当遇到实例类型有限的类时,并且数据库中用状态码代表一种含义时,如星期,性别,员工登陆某系统的状态等等,
可以考虑使用枚举类
本例子可以仿照,也可以使用自定义的类型处理器,处理枚举类型,使用方法参考另一篇博客:https://www.cnblogs.com/shuaifing/p/9330913.html
(1)枚举类
EmpsStatus.java一种状态码代码一种登录状态,如100代表用户已登录,其中getEmpStatusByCode,getEmpEnum都是根据用户的状态码获取对应的枚举类,实际中可以调用作用一致
/*
*
* 保存数据库100,200,状态吗,不是默认的0,或者枚举名
* */
public enum EmpsStatus {
LOGIN(100,"用户登录"),LOGINOUT(200,"用户退出"),REMOVE(300,"用户不存在");
private Integer code;
private String msg;
private EmpsStatus(Integer code,String msg) {
this.code=code;
this.msg=msg;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
//按照状态码返回枚举对象
public static EmpsStatus getEmpStatusByCode(Integer code){
switch (code) {
case 100:
return LOGIN;
case 200:
return LOGINOUT;
case 300:
return REMOVE;
default:
return LOGINOUT;
}
}
public static EmpsStatus getEmpEnum(int code) { //使用int类型
for(EmpsStatus sourceEnum: EmpsStatus.values()) {
if(sourceEnum.getCode() == code) return sourceEnum;
}
return null;
}
}
(2)实体类
Employee.java
public class Employee {
private Integer id;
private String lastName;
private String email;
private String gender;
//员工状态
private EmpsStatus empStatus=EmpsStatus.LOGINOUT;
private String empstsus;//改字段为员工状态码字段,与数据中的字段对应
public Employee() {
// TODO Auto-generated constructor stub
}
public Employee(String lastName, String email, String gender) {
super();
this.lastName = lastName;
this.email = email;
this.gender = gender;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public EmpsStatus getEmpsStatus() {
return empStatus;
}
public void setEmpsStatus(EmpsStatus empsStatus) {
this.empStatus = empsStatus;
}
public String getEmpstsus() {
return empstsus;
}
public void setEmpstsus(String empstsus) {
this.empstsus = empstsus;
}
@Override
public String toString() {
return "Employee [id=" + id + ", lastName=" + lastName + ", email="
+ email + ", gender=" + gender +", empstsus=" + empstsus+ "]";
}
}
(3)测试方法调用
@Test
public void testEnumStaus()throws IOException{
SqlSessionFactory sqlSessionFactory= getSqlSessionFactory();
SqlSession openSession= sqlSessionFactory.openSession();
try{
EmployeeMapper mapper=openSession.getMapper(EmployeeMapper.class);
List<Employee> emplist= mapper.getEmps();
Employee emp=new Employee();
//利用枚举类,对员工登录状态类型字段进行翻译
EmpsStatus empsStatus=null;
for(int i=0;i<emplist.size();i++){
emp=emplist.get(i);
empsStatus= empsStatus.getEmpEnum(Integer.parseInt(emp.getEmpstsus()));
System.out.println("code"+Integer.parseInt(emp.getEmpstsus()));
System.out.println("msg1"+empsStatus.getMsg());
if(empsStatus!=null) {
emp.setEmpstsus(empsStatus.getMsg());//数据库,查询emp对象后,根据员工状态字段调用getEmpEnum枚举类,方法,得到相应含义,再次赋值给emp对象的相应字段
System.out.println("msg2"+empsStatus.getMsg());
}
}
for (Employee employee : emplist) {
System.out.println(employee);
}
/*openSession.commit();*/
}finally{
openSession.close();
}
}
源码:https://github.com/shuaishuaihand/enumdemo.git
java中枚举类的实际应用的更多相关文章
- java中枚举类的使用详解
/* * 通过JDK5提供的枚举来做枚举类 */ public enum Direction2 { FRONT("前"), BEHIND("后"), LEFT( ...
- java中枚举类到高级使用
参考博文: http://blog.csdn.net/qq_31655965/article/details/55049192 http://www.cnblogs.com/zhaoyanjun/p/ ...
- Java中枚举的使用
Java中枚举其实就是静态常量,今天发现枚举里面其实还能加方法,学习了下, 代码如下: package org.pine.test; import java.util.HashMap; import ...
- 细说java中的类
前言 最近在学习<java编程思想> 学到了内部类 类不就是class吗 天天用 还能讲出花来了不成... 其实不然,在java中,类的种类和使用方式多种多样,花样繁多.其中主要有 普通类 ...
- Java中枚举的写法和用法
在公司代码中,用了一大堆的枚举,看得我好懵逼.下面开始看看枚举怎么写和怎么用. 一.枚举的写法 关于枚举的写法,网上好多这方面的知识.这里直接贴一个我自己写的枚举类的代 ...
- java基础---->Java中枚举的使用(一)
这里介绍一下java中关于枚举的使用. java中枚举的使用 一.枚举中可以定义方法 参照于TimeUnit的使用,TimeUnit.MILLISECONDS.sleep(1000); LoveUti ...
- Java学习——枚举类
Java学习——枚举类 摘要:本文主要介绍了Java的枚举类. 部分内容来自以下博客: https://www.cnblogs.com/sister/p/4700702.html https://bl ...
- Java笔记---枚举类和注解
Java笔记---枚举类和注解 一.枚举类 自定义枚举类 方式一:JDK5.0之前自定义枚举类 class Seasons { //1. 声明Seasons对象的属性 private final St ...
- 基础知识(05) -- Java中的类
Java中的类 1.类的概念 2.类中的封装 3.对象的三大特征 4.对象状态 5.类与类之间的关系 ------------------------------------------------- ...
随机推荐
- IOUtils方式上传下载文件
package com.css.hdfs04; import java.io.File; import java.io.FileInputStream; import java.io.FileOutp ...
- 棋盘格 测量 相机近似精度 (像素精度&物理精度)
像素精度计算 像素精度——一像素对应多少毫米——距离不同像素精度也不同 将棋盘格与相机CCD平面大致平行摆放,通过[每个点处的近似像素精度=相邻两个角点之间的实际距离(棋盘格尺寸已知)/ 棋盘格上检出 ...
- wait_event族函数浅析
2017-06-03 周末闲暇无事,聊聊内核中的wait_event*类函数的具体实现,等待事件必定涉及到某个条件,而这些函数的区别主要是等待后唤醒的方式……直奔主题,上源码 wait_event_i ...
- mysql复习-来源考试
mysql复习- No1 .登录和权限 (一)常用命令1.登录mysqlmysql -h localhost -u root -p 2.重启mysqlservice mysql restart 延 ...
- spring中的缓存--Caching
1.spring从3.1开始支持缓存功能.spring 自带的缓存机制它只在方法上起作用,对于你使用其他持久化层的框架来讲,是没有影响的,相对来讲这种缓存方式还是不错的选择. 2.提供缓存的接口:or ...
- linux下dubbo调试 ---telnet命令
linux下启动dubbo服务端, 怎么调试? 方法有二: 1. 自己写简单消费者功能,进行各种情况测试.(这确实是有必要的) 2. 使用telnet直接连接上dubbo,使用命令调用,然后调试.(这 ...
- 纯css,div隐藏滚动条,保留鼠标滚动效果。
示例1: html,body { height: 100%; } body { overflow: hidden; } .full-screen { position: relative; width ...
- linux rm指定的文件
如何删除一个目录下的除了想要的文件之外的所有文件 rm `ls | grep -v "aa"` Linux下 报错“命令参数列表过长”,在用mv命令一次移动3万多个文件时失败了,原 ...
- mysql忘记密码怎么办?(转)
linux下mysql忘记密码处理方法: 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码 ...
- xe7开发的安卓程序,体积宏大--112M!
原因没找到,但似乎可以这样解决: 解决过程:因为代码很少,所以我重新建立一个空白程序,把代码复制过去,一字不差.重新编译, 关键的时刻到了:不要连上真机,在编译完成时,系统提示是否要启动android ...