SpringBoot+Mybatis+Pagehelper分页
2021-06-20 20:06
标签:string类 dep pac dao ges use page enum print 1、pom.xml 2、驼峰命名 3、可复用的@Results b、在其他方法中,重复使用id为user的结果映射 c、结果映射@Results 4、打印SQL日志到控制台 5、分页 分页原理:PageHelper.startPage会拦截下一个sql,也就是pageMapper.getAll()的SQL。并且根据当前数据库的语法,把这个SQL改造成一个高性能的分页SQL,同时还会查询该表的总行数,具体可以看SQL日志。 6、回传ID b、service层 完整demo代码 2、PageServiceImpl -- 分页service 3、PageMapperTest -- 单元测试 SpringBoot+Mybatis+Pagehelper分页 标签:string类 dep pac dao ges use page enum print 原文地址:https://www.cnblogs.com/linjiqin/p/9687491.html!-- mybatis分页插件 -->
dependency>
groupId>com.github.pagehelpergroupId>
artifactId>pagehelper-spring-boot-starterartifactId>
version>1.1.1version>
dependency>
在application.properties中添加以下配置,在执行查询后,可以将数据库的NN_NN格式字段,在java结果集对象中自动转换成驼峰命名参数。mybatis.configuration.mapUnderscoreToCamelCase=true
a、声明时给id赋值为user@Results(id="user",value={
@Result(property="nnNn",column="NN_NN")
})
@ResultMap("user")
如果结果集不是JAVA对象而是Map,Map中的列名会和数据库中的NN_NN一样,是不会自动驼峰转换的。可以使用@Result来指明结果映射,同样也适用JAVA对象@Results({
@Result(property="nnNn",column="NN_NN")
})
@Select("select * from user")
public List
在application.properties中添加以下配置logging.level.你的包名.mybatis接口包=debug
第一行:==>左边是执行SQL的接口及其方法,右边是执行语句
第二行:传参数1,String类型
第三行:查到一行数据package com.lynch.mapper;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.lynch.entity.UserEntity;
@Service
@Transactional
public class PageServiceImpl {
@Autowired
private PageMapper pageMapper;
public Page
PageHelper.startPage和pageMapper.getAll()最好紧跟在一起,中间不要有别的逻辑,否则可能出BUG。
Page
假设数据库表的ID主键是自动增长的,现在添加一条数据,想要得到这条数据自动增长的ID,方法如下:
a、dao层
useGeneratedKeys=true:获取数据库生成的主键
keyProperty="id":把主键值存入User param对象的id属性@Insert("insert into users(username,password,sex) values(#{username}, #{password}, #{sex})")
@Options(useGeneratedKeys=true, keyProperty="id")
int insert(UserEntity user);
UserEntity userEntity = new UserEntity("laosis", "123456", SexEnum.WOMAN);
int result = pageMapper.insert(userEntity);
System.out.println("result=" + result);
System.out.println("回传ID值:" + userEntity.getId());
1、PageMapperpackage com.lynch.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import com.lynch.entity.UserEntity;
public interface PageMapper {
@Select("select * from users order by id")
List
package com.lynch.mapper;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.lynch.entity.UserEntity;
@Service
@Transactional
public class PageServiceImpl {
@Autowired
private PageMapper pageMapper;
public Page
package com.lynch.mapper;
import java.util.List;
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 com.github.pagehelper.Page;
import com.lynch.entity.UserEntity;
import com.lynch.enums.SexEnum;
@RunWith(SpringRunner.class)
@SpringBootTest
public class PageMapperTest {
@Autowired
private PageMapper pageMapper;
@Autowired
private PageServiceImpl pageService;
@Test
public void getAll() throws Exception {
List
文章标题:SpringBoot+Mybatis+Pagehelper分页
文章链接:http://soscw.com/essay/96581.html