Mybatis(四) 注解

Mybatis的注解们
在这里插入图片描述
用例:

 @Insert("INSERT INTO student(name,math,eng) VALUES (#{name},#{math}, #{eng})")
    void insert(Student student);

    @Delete(" delete from student where id=#{id}")
    void delete(int id);

    @Update("update student set name=#{name}, math=#{math}, eng=#{eng} where id =#{id}")
    void update(Student student);

    @Select(" select * from student where id=#{id}")
    Student findByID(int id);

Results 、Result

 @Select("select *,o.uid as UserID ,o.id as OrderID from user as u inner join orders as o on o.uid=u.id order by u.id")
    @Results({
            @Result(column = "OrderID",property = "id"),
            @Result(column = "ordertime",property = "ordertime"),
            @Result(column = "total",property = "total"),
            @Result(column = "UserID",property = "user.id"),
            @Result(column = "name",property = "user.name"),
            @Result(column = "password",property = "user.password")

    })
    List<Order> findAll();

基于注解的多对多查询
思路就是分两步查询,查出User表中所有用户,然后再使用用户的id去和中间表和role表联查,将结果封装在User的ROLElIST中。详见下:
UserMapper接口

 @Select("select * from user")
    @Results({
            @Result(id = true,column = "id",property = "id"),
            @Result(column = "name",property = "name"),
            @Result(column = "password", property = "password"),
            @Result(
                    property = "RoleList",//放到哪里,即user类中的哪个属性
                    column = "id",//拿谁去查,就是用userID传参
                    javaType = List.class, //该属性的类型
                    //一对一就是@One,一对多就是@Many
                    many = @Many(select = "com.dao.RoleMapper.findByUID")//调用其他查询方法,该方法需要传入int id的参数
            )
    }

    )
    List<User> findUserAndRole();

RoleMapper

 @Select("select * from role_user as ru,role as r where ru.roleid=r.id and ru.userid=#{id}")
    List<Role> findByUID(int id);

测试结果如下:
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值