SpringBoot整合Mybats和分页插件PageHelper

先创建一个普通的SpringBoot项目,然后按下面的来  demo下载: BootMybaties

1.添加依赖

<!–lombok插件使用,不需要写set、get等方法–>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
<scope>provided</scope>
</dependency>
<!–mybatis 插件–>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!–mybatis 分页插件–>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.1</version>
</dependency>
<!–mysql 链接数据库的驱动–>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

2.创建实体

/**
* 使用lombok里面的注解,生成常用set.get
*/
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}

3.创建实体对应的表

CREATE TABLE `user` (

`id` int(11) NOT NULL auto_increment,

`NAME` varchar(200) default NULL,

`age` int(10) default NULL,

PRIMARY KEY  (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

4.配置Springboot项目的配置文件application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/test?UseUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
server.port=1111
#指定mapper文件的路径和匹配规则
mybatis.mapper-locations=classpath:/mapping/**/*Mapper.xml
mybatis.check-config-location=true

5.创建UserMapper.java,接口

@Mapper
public interface UserMapper {
@Select(“select id,name,age from User where User.name=#{name}”)
User findByName(@Param(“name”) String name);
@Select(“insert into user(name,age) values(#{name},#{age})”)
void saveOne(@Param(“name”) String name, @Param(“age”) Integer age);
@Select(“update user set user.name=#{name},user.age=#{age} where user.id=#{id}”)
void update(@Param(“name”) String name, @Param(“age”) Integer age, @Param(“id”) Integer id);
@Select(“SELECT * FROM USER”)
List<User> getUserList();
//上面是 使用注解@SELECT实现的,不需要xml文件
//=================================================
// 下面3个方法是基于xml文件,写完方法名会自提示没有对应的sql,可以自动生成,需要的插件:mybaties plugs
User selectById(@Param(“id”) Integer id);
List<User> list();
void updateUser(User user);
}

5.创建Controller写对应方法进行测试

@RestController
@RequestMapping(“/user”)
public class UserEnpoint {
@Autowired
UserMapper userMapper;/**
* 查找
*
* @return
*/
@RequestMapping(“/find”)
public User findByName() {
User user = userMapper.findByName(“张三”);
return user;
}/**
* 保存
*
* @return
*/
@RequestMapping(“/save”)
public User saveOne() {
User user = new User();
user.setAge(22);
user.setName(“小明明”);
userMapper.saveOne(user.getName(), user.getAge());
return user;
}

/**
* 更新
*
* @return
*/
@RequestMapping(“/update”)
public User update() {
User user = new User();
user.setAge(23);
user.setName(“大a海”);
user.setId(2);
userMapper.update(user.getName(), user.getAge(), user.getId());
return user;
}

/**
* 获取list,springboot会自动转为json
*
* @return
*/
@RequestMapping(“/list”)
public List<User> getUserList() {
List<User> list = userMapper.getUserList();
return list;
}

/**
* 分页信息
*
* @param pageNum  第几页
* @param pageSize 页面大小
* @return
*/
@RequestMapping(“/list/{pageNum}/{pageSize}”)
public PageInfo<User> query(@PathVariable Integer pageNum, @PathVariable Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> list = userMapper.getUserList();
return new PageInfo<>(list);
//下面是jdk8的写法,也是对的
// return PageHelper.startPage(page, pageSize).doSelectPageInfo(()->userMapper.getUserList());
}

/**
* xml 文件配置方法,获取一个对象
* @return
*/
@RequestMapping(“/xml/getOne”)
public User selectById() {
User user = userMapper.selectById(2);
return user;
}

/**
* xml 文件配置方法,更新一个对象
* @return
*/
@RequestMapping(“/xml/update”)
public User updateUser() {
User user = new User();
user.setAge(33);
user.setName(“xml家族”);
user.setId(2);
userMapper.updateUser(user);
return user;
}

/**
*  xml方法,分页信息返回
* @param pageNum
* @param pageSize
* @return
*/
@RequestMapping(“/xml/list/{pageNum}/{pageSize}”)
public PageInfo<User> list(@PathVariable Integer pageNum, @PathVariable Integer pageSize){
PageHelper.startPage(pageNum, pageSize);
List<User> list = userMapper.list();
return new PageInfo<>(list);
}
}

此時使用会报空指针异常,因为没有实例化pageHelper,需要在boot启动类实例化它。

@Bean
public PageHelper pageHelper() {
   PageHelper pageHelper = new PageHelper();
   Properties p = new Properties();
   p.setProperty("offsetAsPageNum", "true");
   p.setProperty("rowBoundsWithCount", "true");
   p.setProperty("reasonable", "true");
   pageHelper.setProperties(p);
   return pageHelper;
}
本站的文章多是老王开发工作中问题的记录,一个字一个字敲的,切实可行,可以分享,需要留个原文链接,至少也意思意思吧!
vsalw技术博客 » SpringBoot整合Mybats和分页插件PageHelper

每个人都是以自己独特的方式体味生活,或许别人不理解,但自己知道:其中的酸甜苦辣就叫做幸福!

认同! 瞎扯淡!