上回說到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
<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()); } }
在使用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