Mybatis 自定义SQL多表关联查询

    技术2022-07-11  85

    Habnate  只要把实体类做好   他会自动多表关联的查询的

    但是Mybatis不行   他不会多表关联查询    需要写自定义SQL语句  如下

    select * from product p,user u where p.user_id=u.id and u.id = 3

    prodect这个表和 user 这个表关联查询    id相等 并且返回  id= 3 的值 

     

    select p.*,u.name from product p,user u where p.user_id=u.id and u.id = 3

    这样的查询结果 是p的所有   返回u的名字

     

     

    public interface UserMapper extends BaseMapper<User> {//这里的泛型类是对应的我们数据库的实体类 //这个接口的实例是动态生成的 动态代理的方式生成的 //它自带的方法满足不了多表关联的查询 需要自己写方法了 //如果下面这个语句不加userName 最后 在Test中输出的userName就是null了 //加上userName的作用是 把u.name取出来 给他叫成了userName的名字 这样就对应起来了 @Select("select p.*,u.name userName from product p,user u where p.user_id=u.id and u.id = #{id}") List<ProductVO> productList(Integer id); }

     

    Processed: 0.012, SQL: 9