SpringBoot整合MyBatis
1.环境配置
软件名称 | 版本 | 备注 |
---|---|---|
idea | 2019 linux 社区版 | 下载 |
Maven | 3.6.0 | idea要设置使用安装的这个,否则idea会用自带的maven |
SpringBoot | 2.2.6 | |
MySQL Workbench | 8.0 | 数据库的可视化操作工具 |
jdk | 1.8 | |
MyBatis | 2.1.1 | |
MySQL | 8.0.20 | 教程 |
2.在数据库中创建MyDB库和在Person表
- 利用MySQL Workbench创建MyDB库:
- 创建person表
3.新建Springboot项目
3.1.项目目录结构
这个是一个可运行的MyBatis Demo的结构。接下来,我们会把每个文件的创建和作用都作详细说明。
~/Desktop/MyBatisDemo$ tree -L 8
.
├── pom.xml
└── src └── main ├── java │ └── com │ └── wong │ ├── MainApplication.java │ ├── controller │ │ └── PersonController.java │ └── mybatis │ ├── bean │ │ └── Person.java │ ├── mapper │ │ └── PersonMapper.java │ └── service │ ├── PersonServiceImpl.java │ └── PersonService.java └── resources └── config └── application.yml
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
3.2.项目配置信息
3.2.1. pom.xml文件添加必要依赖
我们pom.xml至少要添加如下这些依赖:
- SpringBoot开发web项目的起步依赖;
- MySQL的jdbc驱动;
- MyBatis框架的依赖。
为了方便测试,我还加了如下框架:
- 日志框架;
- maven插件;
- jetty容器。
完整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.wong</groupId> <artifactId>GroceryDemo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <java.version>1.8</java.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> </parent> <dependencies> <!--springboot开发web项目的起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 去掉内嵌tomcat --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!--mysql的jdbc驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--MyBatis整合到springboot项目--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <!--日志框架--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> <!--jetty容器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> </dependencies> <build> <finalName>Demo</finalName> <plugins> <!--maven插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
</project>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
3.2.2. application.yml配置数据库
通过pom.xml我们已经将工具或依整包含进项目,在通过MyBatis使用MySQL数据库前必须做一些配置:
配置文件中很必要的配置包括:
- 数据库URL
- 用户名及密码
- 驱动
spring:
datasource: # 基本配置 url: jdbc:mysql://127.0.0.1:3306/MyDB username: root password: 1qaz@4321 driver-class-name: com.mysql.jdbc.Driver # 数据源其他配置 initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 30000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true # 配置监控统计的filters,去掉后监控界面sql无法统计,wall用于防火墙 filters: stat,wall,slf4j maxPoolPreparedStatementPerConnectionSize: 20 useGlobalDataSourceStat: true connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
3.3.项目Java源码
3.3.1.创建实体类Person
package com.wong.mybatis.bean;
/**
* 人员类
*/
public class Person { private int id; private String name; private int age; //TODO getter和setter方法 @Override public String toString() { return "\""+this.id+"="+this.name+"="+this.age+"\""; }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
3.3.2.创建实体类映射器
映射器是一个接口,要使用其成为映射器必须在加上@Mapper注解,标注的映射器将交给Spring容器管理,Spring会自动创建映射器并放入Spring容器中。要使用这个映射器只需要使用@Autowired注解将Spring容器中的实例注入到本地变量中即可。本demo是使用注解的方式来使用MyBatis的,可以将其转换成使用xml的方式。
package com.wong.mybatis.mapper;
import com.wong.mybatis.bean.Person;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface PersonMapper { // 增加 @Insert("insert into person(id,name,age) values(#{id},#{name},#{age})") int insert(Person person); // 删除 @Delete("delete from person where id = #{id}") int deleteByPrimaryKey(Integer id); // 修改 @Update("update person set name = #{name},age = #{age} where id = #{id}") int updateByPrimaryKey(Person person); // 查询 @Select("select id,name,age from person where id=#{id}") Person selectByPrimaryKey(Integer id); @Select("select id,name,age from person") List<Person> selectAllPerson();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
3.3.3.创建服务
根据面向接口编程的原则,我们先定义一个接口PersonService:
package com.wong.mybatis.service;
import com.wong.mybatis.bean.Person;
import java.util.List;
public interface PersonService { // 增加 int insertPerson(Person person); // 删除 int deletePersonById(Integer id); // 修改 int updatePersonById(Person person); // 查询 Person selectPersonById(Integer id); List<Person> selectAllPerson();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
再创建服务的实现类:可以在此类中实现复杂的业务
在实现类使用@Service注解,标注的实现类将交给Spring容器管理,spring容器会为其创建对象。可以使用@Autowired将Spring容器中的对象注入到本地变量。
@Autowired注解是用来修饰变量的,写在变量上面,并且由系统底层代理创建这个变量的实例,并注入到这个类中,就不用我们自己手动去创建对象。
package com.wong.mybatis.service;
import com.wong.mybatis.bean.Person;
import com.wong.mybatis.mapper.PersonMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class PersonServiceImpl implements PersonService{ @Autowired private PersonMapper personMapper; @Override public int insertPerson(Person person) { return personMapper.insert(person); } @Override public int deletePersonById(Integer id) { return personMapper.deleteByPrimaryKey(id); } @Override public int updatePersonById(Person person) { return personMapper.updateByPrimaryKey(person); } @Override public Person selectPersonById(Integer id) { return personMapper.selectByPrimaryKey(id); } @Override public List<Person> selectAllPerson() { return personMapper.selectAllPerson(); }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
3.3.4.创建Controller使用服务
package com.wong.controller;
import com.wong.mybatis.bean.Person;
import com.wong.mybatis.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class PersonController {
// 通过@Autowired将PersonService的实例注入进来,其实就是PersonServiceImpl实例 @Autowired private PersonService personService; // add @RequestMapping(value = "/add") public String addStudents(){ Person student = new Person(); student.setName("Tom"); student.setAge(12); int rs = personService.insertPerson(student); return "插入结果:"+rs; } // select @RequestMapping(value = "/findAll") public String findAllStudents(){ List<Person> students = personService.selectAllPerson(); students.stream().forEach(System.out::println); return students.toString()+""; }
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
4.运行项目并测试
4.1.运行项目
~/Desktop/MyBatisDemo$ mvn clean spring-boot:run
- 1
4.2.测试
添加记录:
查询记录:
Demo下载
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/106013794
- 点赞
- 收藏
- 关注作者
评论(0)