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

之前我们集成了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.
 */
@Mapper
public 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;

@Configuration
public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值