MyBatis 接口注解方式代替mapper.xml

一、使用注解方式配置映射关系

      mybatis我们常用的是mapper.xml方式进行映射,在mapper.xml中写sql语句,还有一种方式是基于注解的方式来写,可以不用xml方式,这种方式在我们平时的开发中用的不多。

    在基于注解的方式中,我们不需要写parameterType,因为mapper接口总的方法中的参数已经有了,也不需要写resultType,因为mapper接口中的方法返回值中类型已经有了

二、mapper接口

  • insert
    public interface IUserMapper {
        // 如果SQL过长,我们可以分割成数组的形式,以 ","进行分割
        @Insert( { " INSERT INTO tb_user (user_name,password,name,age,sex) ",
                   "VALUES (#{userName},#{password},#{name},#{age},#{sex})" })
        @Options(keyProperty = "id",keyColumn = "id",useGeneratedKeys = true)
        void save(User user);
    }
    
  •  Update
    public interface IUserMapper {
         @Update({" update tb_user set name=#{userName},password=#{password} ,",
                "  user_name=#{userName} WHERE  id=#{id}"})
        void update(User user);
    }
    
     
  • Get
    public interface IUserMapper {
         @Select(" SELECT id,user_name,password,age,name from tb_user where id = #{id}")
        User get(Long id);
    }
    
    当数据库中的字段和对象中的字段不一致的时候,我们需要定义resultMap来使得他们对应起来,此时可以用xml中自定义的resultMap,如果想彻底摒弃mapper.xml,我们也可以进行在接口方法上定义ResultMap,详情如下所示:
  • public interface IUserMapper {
         @Select({"SELECT id as d_id,user_name as d_username, password as  d_password, ",
                " age as d_age,name as d_name from tb_user" } )
        //@ResultMap("basicMap")   // 此处可以直接使用mapper.xml中
        @Results({
                @Result(column = "d_id",property = "id"),
                @Result(column = "d_username",property = "userName"),
                @Result(column = "d_password",property = "password"),
                @Result(column = "d_age",property = "age"),
                @Result(column = "d_name",property = "name")
        })
        List<User> getList1();
    }
    

猜你喜欢

转载自blog.csdn.net/m0_38068812/article/details/86566929