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

发布于:2021-09-22 17:50:02

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


? ? ? 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 getList1();
}

?

相关推荐