从零开始学spring-boot(4)-集成Mybatis

来源:互联网 发布:淘宝手机端图片分辨率 编辑:程序博客网 时间:2024/06/17 06:09

之前我们集成了spring-data-jpa,但由于spring-data-jpa是包装了Hibernate,比较笨重,所以我决定还是将更轻量级一些的Mybatis集成进来作为我的ORM。由于Mybatis默认没有分页,githup上有好多大神写的Mybatis分页插件,可以参考。(本节代码是在上一节基础上修改)

1.首先将Mybatis和pagehelper分页插件的包导入

<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>1.1.1</version>        </dependency>        <dependency>            <groupId>com.github.pagehelper</groupId>            <artifactId>pagehelper</artifactId>            <version>4.1.0</version>        </dependency>

2.编写UserDao.java接口层代码,我没有采用xml进行一一映射,而是采用注解的形式。

package com.zity.springboot.dao;import com.zity.springboot.domain.UserDomain;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.annotations.Select;import java.util.List;/** * Created by Andy on 2016/10/30. */@Mapperpublic interface UserDao{    /**     * 根据用户名称查询用户     * @param userNo     * @return     */    @Select("select * from user_domain where userNo=#{userNo}")    UserDomain findByUserNo(@Param(value = "userNo") String userNo);    /**     * 根据用户名称模糊匹配用户     * @param userName     * @return     */    @Select("select * from user_domain where userName like '%'||#{userName}||'%'")    List<UserDomain> findListByLikeName(@Param(value = "userName") String userName);}


3.编写UserDomain.java实体类

package com.zity.springboot.domain;public class UserDomain {    /** 用户id */    private long id;    /** 用户编号 */    private String userNo;    /** 用户名称 */    private String userName;    /** 用户密码 */    private String userPwd;    /** 用户盐值 */    private String salt;    /** 用户状态 */    private String userStatus;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getUserNo() {        return userNo;    }    public void setUserNo(String userNo) {        this.userNo = userNo;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getUserPwd() {        return userPwd;    }    public void setUserPwd(String userPwd) {        this.userPwd = userPwd;    }    public String getSalt() {        return salt;    }    public void setSalt(String salt) {        this.salt = salt;    }    public String getUserStatus() {        return userStatus;    }    public void setUserStatus(String userStatus) {        this.userStatus = userStatus;    }}

4.在UserServiceImpl.java中编写调用方法

package com.zity.springboot.service;import com.github.pagehelper.PageHelper;import com.zity.springboot.dao.UserDao;import com.zity.springboot.domain.UserDomain;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Service("userService")public class UserServiceImpl implements UserService{    @Autowired    private UserDao userDao;    @Override    public UserDomain findUserByUserNo(String userNo) {        return userDao.findByUserNo(userNo);    }  @Override  public List<UserDomain> findListByName(String userName) {        PageHelper.startPage(3,1);        return userDao.findListByLikeName(userName);    }   }


5.在使用分页插件之前需要将分页插件进行配置,新建一个配置文件PageHelperConfig.java,添加以下代码

package com.zity.springboot.configuration;import com.github.pagehelper.PageHelper;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.Properties;@Configurationpublic class PageHelperConfig {    @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;    }}



6.在Controller层添加调用方法,即可在浏览器访问。


分页插件的使用非常简单,只需要在使用查询时添加一句代码PageHelper.startPage(3,1);即可。

0 0