上回说到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