一、使用注解方式配置映射关系
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
当数据库中的字段和对象中的字段不一致的时候,我们需要定义resultMap来使得他们对应起来,此时可以用xml中自定义的resultMap,如果想彻底摒弃mapper.xml,我们也可以进行在接口方法上定义ResultMap,详情如下所示:public interface IUserMapper { @Select(" SELECT id,user_name,password,age,name from tb_user where id = #{id}") User get(Long id); }
-
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(); }