美文网首页
6 - TypeHandler-2

6 - TypeHandler-2

作者: 农民工__乔Young | 来源:发表于2019-05-14 18:47 被阅读0次

    本小节对枚举类型进行转换
    table

    create table `student`(
    `id` int auto_increment primary key,
    `name` varchar(30) not null,
    `age` int,
    `gender` int default 0
    )auto_increment=10000;
    

    enum

    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

    package model;
    
    public class Student {
        private int id;
        private String name;
        private int age;
    
        private GenderEnum gender;
    
        public Student() {
        }
        //getter setter
     }
    
    

    dao

    public interface StudentMapper {
        int insertStudent(Student student);
        Student selectStudentById(int id);
    }
    

    mapper
    这里的typeHandler使用了别名

     <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

    
    

    相关文章

      网友评论

          本文标题:6 - TypeHandler-2

          本文链接:https://www.haomeiwen.com/subject/xwveaqtx.html