MyBatis学习笔记二(注解开发)

MyBatis的注解实现复杂映射开发

 

@Insert: 实现新增

@Update: 实现更新

@Delete: 实现删除

@Select: 实现查询

@Result: 实现结果集封装

@Results: 可以与@Result一起使用,封装多个结果集

@One: 实现一对一结果集封装

@Many: 实现一对多结果集封装 

使用注解配置mapper
public interface OrderMapper {
    @Select("select * from orders")
    @Results({
        @Result(id=true,property = "id",column = "id"), 
        @Result(property = "ordertime",column = "ordertime"), 
        @Result(property = "total",column = "total"), 
        @Result(property = "user",column = "uid",
        javaType = User.class,
        one = @One(select ="com.lagou.mapper.UserMapper.findById"))
    })
    List<Order> findAll();
}
        

 

public interface UserMapper {
    @Select("select * from user where id=#{id}") 
    User findById(int id);
}
 测试结果
@Test
public void testSelectOrderAndUser() {
        List<Order> all = orderMapper.findAll(); for(Order order : all) {
        System.out.println(order);
    }
}

  

 

注解增删改查
public interface IUserMapper {

    //查询所有用户、同时查询每个用户关联的订单信息
    @Select("select * from user")
    @Results({
            @Result(property = "id",column = "id"),
            @Result(property = "username",column = "username"),
            @Result(property = "orderList",column = "id",javaType = List.class,
                many=@Many(select = "com.lagou.mapper.IOrderMapper.findOrderByUid"))
    })
    public List<User> findAll();

    //查询所有用户、同时查询每个用户关联的角色信息
    @Select("select * from user")
    @Results({
            @Result(property = "id",column = "id"),
            @Result(property = "username",column = "username"),
            @Result(property = "roleList",column = "id",javaType = List.class,
             many = @Many(select = "com.lagou.mapper.IRoleMapper.findRoleByUid"))
    })
    public List<User> findAllUserAndRole();


    //添加用户
    @Insert("insert into user values(#{id},#{username})")
    public void addUser(User user);

    //更新用户
    @Update("update user set username = #{username} where id = #{id}")
    public void updateUser(User user);

    //查询用户
    @Select("select * from user")
    public List<User> selectUser();

    //删除用户
    @Delete("delete from user where id = #{id}")
    public void deleteUser(Integer id);



    //根据id查询用户
    @Options(useCache = true)
    @Select({"select * from user where id = #{id}"})
    public User findUserById(Integer id);

}

 

 

posted on 2020-08-27 17:38  lvguoliang(学无止境)  阅读(150)  评论(0)    收藏  举报