今天给大家介绍如何在Spring Boot中使用MyBatis,希望大家喜欢。
1. 创建项目
关于如何创建Spring Boot的项目,大家可以参考我的《Hello Spring Boot》里面有详细介绍。
2. 导入依赖
在Spring Boot中使用MyBatis主要用到了三个依赖:MyBatis和Spring Boot 整合依赖、MySQL驱动依赖、Druid依赖。基于本文还需要另外两个依赖:jsp解析器、lombok。下面展示一下我的pom文件:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--MyBatis和Spring Bot整合框架-->
<!-- 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>2.1.2</version>
</dependency>
<!--mysql驱动依赖-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Druid依赖-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<!--注册webapp资源目录-->
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<!--注册dao包下mybatis映射文件为资源目录-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
org.mybatis.spring.boot 这个依赖的版本号是不能省去,因为这个依赖是MyBatis整合的Spring Boot,而不是Spring Boot整合的它,所以不能省掉。
resources中的两个配置分别是注册webapp为资源目录、注册MyBatis的资源目录。
看到这么多依赖肯定有小伙伴问,我是从哪里知道的,大家可以访问这个网址查找。
3. 创建Jsp
如何在Spring Boot中使用Jsp大家可以参考《Spring Boot 使用jsp》,创建两个jsp文件分别是:index.jsp、success.jsp他们用来提交表单和展示结果。
<%--
Created by IntelliJ IDEA.
User: zhangxianwei
Date: 2020/4/12
Time: 12:55 下午
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="register" method="post">
诗句:<input type="text" name="verse" style="width: 200px">
<br>
<br>
作者:<input type="text" name="author" style="width: 200px">
<br>
<br>
<input type="submit" value="提交">
</form>
</body>
</html>
<%--
Created by IntelliJ IDEA.
User: zhangxianwei
Date: 2020/4/12
Time: 1:26 下午
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h5>提交成功</h5>
</body>
</html>
4.创建数据库
使用Navicat创建了一个poetry的表:
5.创建实体类
在项目的包名下创建一个目录名为:bean,再创建一个PoetryBean的类:
package com.zxw.mybatis.bean;
import lombok.Data;
@Data
public class PoetryBean {
private Integer id;
private String verse;
private String author;
}
6.创建dao层
在项目的包名下创建一个目录名为:dao,再创建一个接口PoetryDao,不要忘记加上@Mapper注解。
package com.zxw.mybatis.dao;
import com.zxw.mybatis.bean.PoetryBean;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PoetryDao {
void insertVerse(PoetryBean poetryBean);
}
然后在resources目录下创建与其对应的配置文件:PoetryDao.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.zxw.mybatis.dao.PoetryDao">
<insert id="insertVerse">
INSERT INTO poetry(verse,author ) VALUES (#{verse},#{author})
</insert>
</mapper>
首先这里面的id要和上面的方法一一对应,然后再写SQL语句就好了,这里推荐一个MybatisX的插件(类似于eventbus3-intellij-plugin这个插件),装上这个插件就可以直接定位到xml防止写错,而且这个插件很强大,感兴趣的去它的官网。
7.创建service
在项目的包名下创建一个目录名为:service,再创建接口PoetryService:
package com.zxw.mybatis.service;
import com.zxw.mybatis.bean.PoetryBean;
public interface PoetryService {
void addVerse(PoetryBean poetryBean);
}
创建实现类PoetryServiceImpl:
package com.zxw.mybatis.service;
import com.zxw.mybatis.bean.PoetryBean;
import com.zxw.mybatis.dao.PoetryDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class PoetryServiceImpl implements PoetryService {
@Autowired
PoetryDao poetryDao;
@Override
public void addVerse(PoetryBean poetryBean) {
poetryDao.insertVerse(poetryBean);
}
}
这个类中不要忘记加上@Service这个注解,我当时就是忘记加而报错了。
8.创建Controller
在项目的包名下载创建一个目录名为:controller,再创建类PoetryController:
package com.zxw.mybatis.controller;
import com.zxw.mybatis.bean.PoetryBean;
import com.zxw.mybatis.service.PoetryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class PoetryController {
@Autowired
private PoetryService poetryService;
@PostMapping("/register")
private String registerVerse(PoetryBean poetryBean) {
poetryService.addVerse(poetryBean);
return "success";
}
}
这个段代码就是当诗词提交成功后,返回success这个jsp用来通知提交成功。
9.配置
在application.properties文件中做一下配置:
# 视图的前辍与后辍
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
# 注册映射文件
mybatis.mapper-locations=classpath:PoetryDao.xml
# 注册实体类别名
mybatis.type-aliases-package=com.zxw.mybatis.bean
# 注册数据源类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 连接数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///db1
spring.datasource.username=root
spring.datasource.password=zxw12345
10.检查
运行项目添加诗句检查结果如图:
总结
以上就是在Spring Boot中使用MyBatis详细步骤,总结如下:
- 在pom文件找那个添加:MyBatis与Spring Boot整合依赖、MySQL驱动依赖,和Druid依赖。
- 在配置文件中添加:映射文件、实体类别名,及数据源。
- 在Dao接口上添加@Mapper注解。
项目地址:HelloSpringBoot