
本小节对枚举类型进行转换
table
1 2 3 4 5 6
|
create table `student`( `id` int auto_increment primary key, `name` varchar(30) not null, `age` int, `gender` int default 0 )auto_increment=10000;
|
enum
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
package model;
public enum GenderEnum { MALE("男",0),FEMALE("女",1),UNKNOW("不知道",2); private String gender; private int code; GenderEnum(String gender, int code){ this.gender = gender; this.code = code; } public static GenderEnum getGender(String genderName){ for (GenderEnum gender: GenderEnum.values()){ if(gender.gender.equalsIgnoreCase(genderName)){ return gender; } } return null; }
public static GenderEnum getGender(int code){ for (GenderEnum gender: GenderEnum.values()){ if(gender.code == code){ return gender; } } return null; }
public String getGender() { return gender; }
public void setGender(String gender) { this.gender = gender; }
public int getCode() { return code; }
public void setCode(int code) { this.code = code; }
@Override public String toString() { return "GenderEnum{" + "gender='" + gender + ''' + ", code=" + code + '}'; } }
|
model
1 2 3 4 5 6 7 8 9 10 11 12 13
|
package model;
public class Student { private int id; private String name; private int age;
private GenderEnum gender;
public Student() { } //getter setter }
|
dao
1 2 3 4
|
public interface StudentMapper { int insertStudent(Student student); Student selectStudentById(int id); }
|
mapper
这里的typeHandler使用了别名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<insert id="insertStudent" parameterType="student"> insert into `student`(`name`,`age`,`gender`) values(#{name},#{age},#{gender,typeHandler=genderTypeHandler}) <selectKey resultType="int" keyColumn="id" keyProperty="id" order="AFTER"> select last_insert_id(); </selectKey> </insert>
<resultMap id="studentMapper" type="student"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> <result property="gender" column="gender" typeHandler="genderTypeHandler"/> </resultMap>
<select id="selectStudentById" parameterType="int" resultMap="studentMapper"> select * from `student` where `id` = #{id} </select>
|
test
近期评论