以上篇创建的项目为基础
创建第一个项目快速入门 - Spring Boot学习一
//www.greatytc.com/p/6f9e040e70d9
什么是MyBatis?
MyBatis 是优秀的基于java的持久层框架,内部封装了jdbc,开发者只需要关注sql语句本身,不需要花费精力去处理加载数据库驱动、创建与数据库连接等繁杂的过程。
什么是MyBatis-Spring-Boot-Starter?
MyBatis-Spring-Boot-Starter帮助您在Spring Boot之上快速构建MyBatis应用程序 , 配置较少的XML配置。
安装
如果您没有使用maven
需在类路径中添加 mybatis-spring-boot-autoconfigure.jar文件及其依赖项(mybatis.jar,mybatis -spring.jar等) 。
如果您使用Maven,只需将以下依赖项添加到您的pom.xml中:
1. pom.xml添加依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- Mysql 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
添加后完整的 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hw</groupId>
<artifactId>SpringBootDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<!--依赖性 从Spring Boot继承默认值 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.BUILD-SNAPSHOT</version>
</parent>
<dependencies>
<!-- 添加典型的依赖于Web应用程序 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Mysql 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
<!-- 部署为可执行的jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!-- 如果您使用.RELEASE版本,则不需要此操作-->
<repositories>
<repository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>https://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
</project>
2. 配置数据源
新建文件src\main\resources\config\application.yml 中添加数据源连接属性
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
username: dbuser
password: dbpass
driver-class-name: com.mysql.cj.jdbc.Driver
# url 、 dbuser、 dbpass 改成你自己的, 注意冒号后一定加空格
# 其中localhost为数据库ip地址, test为数据库名
spring boot 支持很多种配置文件, 比如application.yml 和application.properties比较常用,
我喜欢application.yml 树状结构 更直观
3.创建数据库表
新建了一张表格
4.创建Controller (控制层)
API接口用于处理请求
@RestController // 该注解包含了 @Controller @ResponseBody
public class IndexController {
@Resource
private ContentsMapper contentsMapper;
@RequestMapping("/findAll")
Object findAll() {
return contentsMapper.findAll();
}
}
5.创建mapper(持久化映射器接口) 注解的方式
简单说就是向数据库发送sql语句
这里我写了一个全查sql
@Select("SELECT u_id FROM contents")
List<Map<String,Object>> findAll();
6.在main方法打开扫描注解
@ComponentScan("com.demo.controller")
@MapperScan("com.demo.mapper")
这边我没有用到service层 ,如有ComponentScan则改成
@ComponentScan( basePackages = {"com.demo.controller","com.demo.serviceImp"})
7.启动后在浏览器中访问
Mapping.xml方式发送sql
首先要区分开来mapper和mapping.xml
mapper 是一个接口
mapping.xml是这个接口具体的实现, 在里面写具体的sql语句
控制器中新加一个方法,根据id查询数据
@RequestMapping("/findByUid")
Object findByUid (@RequestParam("uid") Integer uid){
return contentsService.findByUid(uid);
}
dao层新加一个接口,传入一个uid参数
在\src\main\resources\mapping下新建ContentsMapping.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demo.mapper.ContentsMapper" >
<select id="findByUid" resultType="Map">
SELECT * FROM contents
WHERE u_id = #{uid}
</select>
</mapper>
配置文件application.yml中添加扫描mapping.xml的路径
mybatis:
mapper-locations: classpath:/mapping/*.xml
访问页面 http://localhost:8080/demo/findByUid?uid=234
本章节项目github地址:
https://github.com/hweeeeeei/springbootDemo
参考官方文档地址 :
http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/`