刚刚我们说了这么多单表操作,我们现在来看看mybatis-plus的联表操作
我之前也说过,mybatis-plus是支持mybatis的,所以如果实在弄不出来就用mybatis的方式吧(别打我^_^),如果我们非要使用mybatis-plus的方式呢,拖出去rua死(开玩笑),我们现在来看看咋用联表查询吧
首先,联表肯定要两个或者以上的表嘛我们接着来看之前的表,我大概解释下,上面是评审员表,表示评审员信息,下面是评审员任务表,表示评审员对某个举报的评审信息,给评审员分配任务时,评审任务是未评审状态,是否支持封禁这个举报信息是空。等评审员评审后会更改成已评审状态,是否支持封禁改成true或false,现在,我们查某个评审员所有评审记录列表(评审员姓名:评审员表,是否支持封禁此举报:评审员任务表....)
首先,我们原来的Entity肯定不够用了嘛(废话,原来是单表的),那么我们只有自己做个Entity了
然后,老实的写mapper接口吧。。。(估计我被打了!)如果就是简单的联表查询,没有任何条件查询,那么我的方法确实和以前一毛一样,就是mabatis的,but...
简单的联表语句你值得拥有,有了它,妈妈再也不用担心我不会写mabatis的if语句了,而且如果数据库的列名的xx_xx与我们定义VO的属性xxXx驼峰规则对应,连ResultSet都不用写了。那么,它又是怎样把条件给带上的呢?
下面,我们看看效果,在接口输入“我是一只小猫咪”,查询该评审员的任务:
结果:
我们再看看mybatis-plus给我们生成的自动化sql语句:
Preparing: SELECT r.name AS `name`,rt.reviewer_id AS report_task_id, rt.status AS `status`, rt.is_support AS is_support, rt.create_time AS create_time FROM reviewer r INNER JOIN reviewer_task rt ON r.id = rt.reviewer_id WHERE (name = ?) LIMIT ?,?