Spring-boot + MySQL + MyBatis

Spring-boot + MySQL + MyBatis

准备工作

  • IntelliJ IDEA旗舰版2019.1.4
  • MySQL 8.0.12

创建一个user表

  • 在数据库demo中创建一个user表,包含字段id,name,gender
    数据库的基本知识可查看:小磊福利
  • 命令如下:
1
2
3
4
5
6
7
create database if not exists demo character set utf8;
use demo;
create table user(id int,name varchar(20),gender varchar(1));
insert into user(id,name,gender) values(01,'张三','男');
insert into user(id,name,gender) values(02,'李四','女');
insert into user(id,name,gender) values(03,'王五','男');
select id,name,gender from user;
  • 返回如下信息:

搭建Spring Boot框架

pox.xml中添加如下依赖,注意自己的MySQL版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <!-- 添加 MyBatis -->
<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>
<!-- 我的版本是8.0.12 -->
<version>8.0.12</version>
</dependency>

在 resources/application.properties中添加下列语句连接–数据库

1
2
3
4
5
6
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.type-aliases-package=com.example.demo.mapper
server.port=8081
  • spring.datasource.url数据库连接字符串,3306是MySQL的默认端口,demo是表所在的数据库,后面的参数直接复制即可,之前有个时区参数忘记加上去总是报错
  • spring.datasource.username:数据库用户名
  • spring.datasource.password:用户名密码
  • spring.datasource.driver-class-name 驱动类型
  • mybatis.type-aliases-package 配置mapper包名

源码来了

分为三部分:实体类、Mapper接口、Controller类,Controller类直接调用Mapper接口进行数据持久化处理。

实体类

  • 新建一个entity包,在里面新建一个User类
1
2
3
4
5
6
7
package com.example.demo.entity;

public class User {
private int id;
private String name;
private String gender;
}

右键-Generate…-Getter and Setter 或 Alt+Insert+Getter and Setter,全都选上点击OK。

Mapper接口

  • 新建一个mapper包,在这个包中新建一个UserMapper接口。具体代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example.demo.mapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;

@Repository
public interface UserMapper {
@Select("SELECT * FROM user")
@Results({
@Result(property = "name", column = "name")
})
List<User> getAll();
@Select("select * from user where id=#{id}")
User getById(int id);
@Insert({"insert into user(id,name,gender) values(#{id},#{name},#{gender})"})
void install(User user);
@Update({"update user set name=#{name},gender=#{gender} where id=#{id}"})
void Update(User user);
@Delete("delete from user where id=#{id}")
void delete(int id);
}
  • @Select查询注解
  • @Results结果集标识,用来对应数据库列名,如果实体类属性和数据库属性名保持一致,可以 忽略此参数
  • @Insert插入注解
  • @Update修改注解
  • @Delete删除注解
    完成上述操作后,在主程序入口添加@Mapper(‘com.example.demo.mapper’)。

Controller类

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
package com.example.demo.web;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@RestController
public class UserController {
@Autowired
private UserMapper userMapper;

@GetMapping("/getAll")
public List<User> getAll(){
return userMapper.getAll();
}
@GetMapping("/install")
public List<User> install(User user){
userMapper.install(user);
return userMapper.getAll();
}
@GetMapping("/delete")
public List<User> delete(int id){
userMapper.delete(id);
return userMapper.getAll();
}
@GetMapping("/update")
public List<User> update(User user){
userMapper.Update(user);
return userMapper.getAll();
}
@GetMapping("/get")
public User get(int id){
return userMapper.getById(id);
}
}

测试阶段

  • 查询所有数据 :localhost:8081/getAll
  • 查询单挑记录 : localhost:8081/get?id=3
  • 增加数据 : localhost:8081/install?id=4&name=石磊&gender=男
  • 删除数据 : localhost:8081/delete?id=1
  • 修改数据 : localhost:8081/update?id=4&name=小磊真帅&gender=男

别忘了打赏哟


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2113132982@qq.com

文章标题:Spring-boot + MySQL + MyBatis

文章字数:992

本文作者:南邮石磊

发布时间:2020-03-28, 21:18:59

最后更新:2020-08-06, 00:38:00

原始链接:https://southpost.github.io/2020/03/28/Spring-boot%20+%20MySQL%20+%20MyBatis/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏