spring boot (四)mybatis

上回說到web應用的前半截,尚未持久層,一個沒有持久層的web應用不是完整的,如今咱們就來使用mybatis鏈接MySQL存儲數據,若是尚未安裝MySQL數據庫,百度安裝(手動滑稽)。java

數據庫配置

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

mybatis 配置

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
#mybatis xml 文件目錄
mybatis.mapper-locations=classpath:mapper/*.xml
#mybatis 接口包
mybatis.type-aliases-package=cn.le.dao

#打印SQL語句
#logging.level.org.springframework=WARN
#指定mybatis須要打印的SQL對應的mapper
#logging.level.cn.le.dao.userDAO=DEBUG
#日誌輸出
#logging.file=logs/spring-boot-logging.log

擼碼

首先咱們編寫對應的接口和xml文件mysql

@ Mapper // 映射mybatis實現
public interface UserDAO {
    //@Param映射參數
    UserPO login(@Param("name")String name,@Param("pwd")String pwd);
}
<sql id="column"> /*數據庫列名映射*/
        name as name, pwd as pwd
    </sql>

    <select id="login" resultType="cn.le.beans.po.UserPO">
        select <include refid="column"/> from user where name = #{name} and pwd = #{pwd}
    </select>
@ Service
public class UserService {
    @Autowired
    private UserDAO userDAO;

    public UserPO login(UserDTO dto){
        return userDAO.login(dto.getName(),dto.getPwd());
    }
}

pagehelper 分頁

在使用mybatis的時候有一個分頁的好幫手pagehelper,如今咱們來集成pagehelper。git

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>

修改service查詢github

public Page findUser(PageDTO dto){
        //老版本分頁到最後數據庫沒有數據時會返回最後一頁的數據,若是但願返回空數據,reasonable設置爲false
        PageHelper.startPage(dto.getPageNum(),dto.getPageSize());
        return (Page) userDAO.findUser();
    }

mybatis還有一種全註解模式,可是我的建議不這樣用,mybatis接口中寫了太多的sql,看着難受(手動滑稽)web

---------------代碼 git 地址 https://gitee.com/distant/spring-boot-geit.gitspring

相關文章
相關標籤/搜索