小编身为学生,走过很多的弯弯路,感觉什么都会一点,但是又什么都不会,为此我要开始,书写自己所知道的知识,以最保姆级的教学进行明示,大家加油(ง •_•)ง
一,前置部署
接上述,首先需要搭建我们springboot链接MySQL数据库索要用到的知识,我们这里用到的就是Mybatis持久层框架。https://mybatis.net.cn/configuration.html(要记得刷新maven欧)
1.导入两个依赖一个是mybatis驱动,另一个是mysql驱动。
<!-- mybatis依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.1</version> </dependency> <!-- mysql驱动依赖--> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.1.0</version> </dependency>
2. 导入完成后,我们需要更改application.properties文件将后缀改成.yml(为什么更改的疑问可以自己探索一下),来编写Mybatis链接数据库的配置。
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/big_event # 数据库名字地址 username: root # 用户名 password: 123456 # 密码
二,编写框架所需要的文件包
1、controler控制层
Controler所负责的就是转发数据,简单来说它接收前端传来的参数,然后传给Service业务层来进行业务逻辑的判断。(小编说的不是很好,不明白的可以去查一查)
2、service业务层(自动注入Dao层)
Service接收Controler层传来的数据,来进行自己负责的业务模块的应用逻辑设计来进行封装,这样有利于通用的业务逻辑的独立性和重复利用性。(小编说的不是很好,不明白的可以去查一查)
3. mapper层=dao层
简述:Mapper层可以写极简单的增删改查,它属于Mybatis的一部分,对对数据库进行持久化的操作。(小编说的不是很好,不明白的可以去查一查)
4、实体类
你以为包就建完啦吗,还有一个必须的欧,实体类是数据库在java代码中对应的类(数据表字段有什么实体类就有什么)通过set和get方法,可以存储和管理系统内部的信息。(小编说的不是很好,不明白的可以去查一查)
三,导入数据库
1. 我们新建一个数据库叫vccoudo这个叫什么都可以,不要求和小编一样
2. 我们新建一个简单的数据表,里面有三个字段,表名就叫user就可以(主要是为了让大家了解增删改查,这里不必太在意)id要设置成自增欧
3. 数据库代码
···相信大家都可以的,嘿嘿····
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '账户',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
4. 修改application.yml文件
完成上述操作后我们需要修改Mybatis的配置文件,我这里是只需要修改表名即可。
5. 还记得实体类吗,我们完成啦数据库就可以开始编写实体类啦。
先在entity下建一个User的类里面的字段就是和数据表一样就可以啦。
public class User { private Integer id; private String username; private String password; public User() { } public User(Integer id, String username, String password) { this.id = id; this.username = username; this.password = password; } /** * 获取 * @return id */ public Integer getId() { return id; } /** * 设置 * @param id */ public void setId(Integer id) { this.id = id; } /** * 获取 * @return username */ public String getUsername() { return username; } /** * 设置 * @param username */ public void setUsername(String username) { this.username = username; } /** * 获取 * @return password */ public String getPassword() { return password; } /** * 设置 * @param password */ public void setPassword(String password) { this.password = password; } public String toString() { return "User{id = " + id + ", username = " + username + ", password = " + password + "}"; } }
四,增删改查
一. 前置准备
1.controller层 首先我们在controller下建一个UserController类,并注入spring中controller层的注解。
2.service层 在这层里需要建两个类,并将一个接口和一个类进行连接,分别是UserService和UserServiceImpl
链接代码
@Service public class UserServiceImpl implements UserService { }
3.mapper层(Dao)在mapper层下新建一个UserMapper接口
二. 增加
1. UserController类我们要将controller和service互相关联起来,并在controller层中书写添加接口
import org.example.entity.User; import org.example.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired private UserService userService; @PostMapping("/add") public void add(@RequestBody User user){ //@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的) userService.add(user); } }
然后我们去点击add那里它会显示错误提示,这时候直接点击生成即可
点击 Create menthod'add' in 'UserService'
然后我们直接会跳转到UserService接口
点击错误提示,会跳转到UserService类中
哈哈哈,然后继续点击错误提示
点击Implement methods
会自动生成一段代码
2. UseService层,在UserServiceImpl类中与UserMapper相连接,基本与UserController链接UserService类似
然后我们去点击add那里它会显示错误提示,这时候直接点击生成即可
点击 Create menthod'add' in 'UserMapper'
之后会在UserMapper类中自动生成一段代码
3.UserMapper接口中直接开始写我们的sql语句,因为我们是添加数据,所以用到的就是@Insert来进行语句编写(这里的报错不需要管他)
import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.example.entity.User; @Mapper public interface UserMapper { @Insert("insert into user(username,password) values (#{username},#{password})" ) void add(User user); }
测试接口
经过很长的文件部署,终于写完啦增加接口的代码,有没有想到接口的代码量原来这么少呀,可是怎么确定自己的接口就是可以用的那,这时候就要用到我们后端常用测试接口的软件啦,当当当Postman,或不多说直接使用(没有安装和不懂得使用的小伙伴,可以去看看B站上有很多安装的视频,也可以在文章中评论欧)
localhost:8080/add
{
"username": "wqwe",
"password":"1234567"
}
如果出现1恭喜你成功啦(如果有问题可以在小编会在评论区为小伙伴们解答欧)
至此往下小编就加快速度写另外几个接口啦
三. 查询
1. UserController
@GetMapping("/select") public User select(Integer id){ return userService.select(id); }
2. UserService
@Override public User select(Integer id) { return userMapper.select(id); }
3. UserMapper
@Select("select * from user where id=#{id}") User select(Integer id);
测试接口
三. 修改
1.UserController
// 更新 @PutMapping("/update") public void update(@RequestBody User user){ userService.update(user); }
2.UserServiceImpl
@Override public void update(User user) { userMapper.update(user); }
3. UserMapper
@Update("update user set username=#{username},password=#{password} where id = #{id}") void update(User user);
测试接口
四. 删除
1. UserController
@DeleteMapping("/delete") public void delete(Integer id){ userService.delete(id); }
2. UserServiceImpl
@Override public void delete(Integer id) { userMapper.delete(id); }
3. UserMapper
@Delete("delete from user where id=#{id}") void delete(Integer id);
测试接口
就此就全部完成啦,这是最最最简单的增删改查,至少小编认为是这样的,以此为基础,后期小编会将这个增删改查一点点增加和改进,让他从一个光光的铁棍,变成一把可以射击的枪,如果感兴趣的话就给小编点点关注吧 ,嘿嘿嘿比心(。・ω・。)ノ♡