通用Mapper:

1.添加依赖

<!---->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper</artifactId>
    <version>4.1.5</version>
</dependency>

2.创建mapper接口继承tk.mybatis.mapper.common.Mapper<Book>

@Mapper
public interface BookMapper extends tk.mybatis.mapper.common.Mapper<Book> {
 
}

3.在配置文件类上添加注解扫描mapper接口所在包

@tk.mybatis.spring.annotation.MapperScan("cn.webrx")

我们使用通用Mapper时可以少编写很多mapper查询语句,但是通用Mapper中的查询方法不多,初学者不知道怎么用通用Mapper查询自己想要的内容

select和selectAll()很容易理解,selectByExample()有些人不会使用。比如我们有一个类Book

我们要按照特定条件查找:

@Test
public void m3(){
    Example example=new Example(Book.class);//要查询的表对应的实体类
    Example.Criteria criteria=example.createCriteria();//创建查询标准
    criteria.andEqualTo("name","盛唐");//调用方法,编写自己想要查询的条件
    List list=bm.selectByExample(example);
    System.out.println(list.get(0));
}

criteria里有很多方法:类似于我们查询语句的between,in,isnull等等。通过这些方法我们能设置想要查询的条件,查询到想要查询的内容。

 我们查询后可以通过selectByExampleAndRowBounds指定获取几条特定的查询语句,类似于select中的limit。可以在分页的时候使用。

@Test
public void m4(){
    Example example=new Example(Book.class);//要查询的表对应的实体类
    Example.Criteria criteria=example.createCriteria();//创建查询标准
    criteria.andEqualTo("name","盛唐");//调用方法,编写自己想要查询的条件
    List list=bm.selectByExampleAndRowBounds(example,new RowBounds(0,2));
    System.out.println(list);
    List list1=bm.selectByExample(example);
    System.out.println(list1);
}

selectByExample几乎可以解决所有的查询,select和selectByPrimary是简化的针对特定情况的解决方法。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐