本文基于spring4.2、mybatis3.4实现。
今天打通了从jsp到实体类到DB的全过程,其中有些地方还是不够完美。欢迎拍砖。
概述:
这里主要讲的是,实体类中包含enum属性,解决(jsp 与 实体类) 之间 以及 (实体类 与 DB) 之间的取值赋值问题。
正文:
基础类:
1、实体类User,其sex属性是enum。
public class User implements Serializable {
private String id;
private String nickname;
private Sex sex;
//getter and setter
}
2、Sex,一个简单的enum,覆盖toString只是便于查看,JsonValue注解后面会提到。
public enum Sex {
UNKNOW("未知"), MALE("男"), FEMALE("女");
private final String value;
Sex(String value) {
this.value = value;
}
@JsonValue
public String getValue() {
return value;
}
@Override
public String toString(){
return this.getValue();
}
public static Sex parse(String value) {
for (Sex sex : Sex.values()) {
if (sex.getValue().equals(value)) {
return sex;
}
}
throw new IllegalArgumentException("不存在[" + value + "]对应的枚举值");
}
}
实体类 <-> DB
UserService、UserDao 以及 UserDao.xml是常规写法,不多说。@Service
public class UserService {
@Autowired
private UserDao userDao;
@Transactional(readOnly=true)
public User selectById(String id) {