mybatis-plus是mybatis的增强工具,增加了各种操作,极大的提高了开发效率。
- 集成mybatis-plus
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
- mapper
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.Book;
/**
* @author zhanpengguo
* @date 2019-07-11 14:58
*/
public interface BookMapper extends BaseMapper<Book> {
}
启动类上指向mapper的包
@MapperScan(“com.example.demo.mapper”)
3. service
package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.entity.Book;
/**
* @author zhanpengguo
* @date 2019-07-11 16:29
*/
public interface IBookService extends IService<Book> {
}
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.Book;
import com.example.demo.mapper.BookMapper;
import com.example.demo.service.IBookService;
import org.springframework.stereotype.Service;
/**
* @author zhanpengguo
* @date 2019-07-11 16:43
*/
@Service
public class IBookServiceImpl extends ServiceImpl<BookMapper, Book> implements IBookService {
}
- 测试
package com.example.demo.test;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.entity.Book;
import com.example.demo.mapper.BookMapper;
import com.example.demo.service.IBookService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
/**
* @author zhanpengguo
* @date 2019-07-11 15:06
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class BookTest {
@Autowired
BookMapper bookMapper;
@Autowired
IBookService iBookService;
@Test
public void listTest(){
List<Book> books = bookMapper.selectList(null);
books.forEach(System.out::println);
}
@Test
public void wrapperTest(){
QueryWrapper<Book> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Book::getName,"三体");
List<Book> books = iBookService.list(queryWrapper);
books.forEach(System.out::println);
}
@Test
public void pageTest(){
Page<Book> page = new Page<>(1, 3);
IPage<Book> bookIPage = iBookService.page(page);
System.out.println(JSONObject.toJSONString(bookIPage));
}
@Test
public void pageWrapperTest(){
QueryWrapper<Book> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Book::getName,"三体");
Page<Book> bookIPage = new Page<>(2,2);
IPage<Book> page1 = bookMapper.selectPage(bookIPage, queryWrapper);
System.out.println(JSONObject.toJSONString(page1));
}
}
注意:分页是需要借助插件的
在启动类里添加:
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}