小白做毕设—后台管理系统
任务三 基于SpringBoot+MySQL+Vue+ElementUI+Mybatis前后端分离面向小白管理系统搭建(三)—后端环境搭建
任务四 后端数据增删改查
前面在任务三我们已经完成了基于Springboot的Maven项目搭建,并且基于Templates创建HTML页面,添加控制器,实现数据前后端传值。这样大家对于Maven项目的运行机制有所回顾。
因为我们这里主要给大家讲的是前后端分离的管理系统,所以后期就不会在Idea中添加前端页面了。后续为了不影响项目运行,POM.xml中添加的thymeleaf依赖是可以删除的。当然,保留也不会影响整个项目。一般情况,我们都是在需要的时候添加依赖,这样保持自己思路清晰。
本次任务,我们在前面项目搭建完成的基础上,在后端实现用户数据的CRUD。通过本次任务,大家能够:
(1)熟练掌握基于Navicat Premium 15的MySQL数据库、数据表创建;
(2)熟练使用@Mapper注解及Mybatis注解方式实现数据CRUD;熟练使用SQL语句;
(3)学会使用Postman做运行测试。
特别说明:大家在使用文中的代码时,复制或者粘贴的时候,一定注意换成自己项目,如:package com.example.demo.mapper;
你需要把package com.example.demo.mapper;
中的com.example.demo
换成自己的项目。
一、 数据查询
1.使用Navicat Premium 15创建数据库qing。
2.创建数据表
创建一个sys_user数据表。(初学者建议创建数据表名不要有下划线,当然也可以完全按照我写的模仿创建,后面我会给大家解释有下滑线的弊端,但是对于商业用表,最好下划线的方式,所以在后面使用表的时候,我们会讲如何通过加注解的方式解决这个问题)
id为主关键字,create_time选用默认值,实现用户创建时间根据当时的时间自动填充。
2. 数据表添加数据
3. 新建实体类User
在IDEA中创建一个包entity,并新建一个实体类User。
• 可以使用原始方法生成get和set,Alt+Insert健可以打开生成器,然后选择Getter and Setter。
下一步选择所有字段:
• 也可以使用lombok提供的插件,直接使用@Data注解,实现上述功能。
lombok插件按照方法:
User类完整代码如下:
package com.example.demo.entity;
import lombok.Data;
import java.sql.Date;
@Data
public class User {
private Integer id;
private String username;
private String password;
private String email;
private String phone;
private String nickname;
private String address;
}
4.添加UserMapper接口
创建一个mapper包,创建一个UserMapper接口,添加一个查询的方法,注意加上Mapper注解,代码如下:
package com.example.demo.mapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
@Select("select * from sys_user")
List<User> findAll();
}
5.添加UserController类
创建一个controller包,创建一个UserController类,添加映射方法index,实现数据交互接口,查看是否能够查询到所有数据,代码如下:
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/")
public List<User> index(){
return userMapper.findAll();
}
}
特别注意:
(1)这里我们已经开始不使用html文件了,也就不需要插件了,请大家务必记得将这个依赖删除,否则运行的时候就会报错。
在pom文件中删除这个依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
(2)这里开始我们使用@RestController注解进行路由转换。
(3)添加注解@RequestMapping(“/user”)。
6.运行项目
二、数据增加
1.UserMapper接口中添加一个插入的方法
代码如下:
@Insert("insert into sys_user(username,password,email,phone,nickname,address) " +
"VALUES(#{username},#{password},#{email},#{phone},#{nickname},#{address});")
//这里只是做测试使用
int insert(User user);
特别说明: 不管是新增还是更新,这样写是最简单的方式,没有表关联,也还不能实现对个别字段的新增。这时候就需要动态SQL语句,后面会讲xml文件。
2.新建UserService类
新建一个service包,并新建一个UserService类,进行数据业务逻辑。
3. UserService类中添加save方法
代码如下:
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public int save(User user){
return userMapper.insert(user);
}
}
4.UserController类添加save接口
@PostMapping
//这里做了一个单纯的添加的示例,使用的是mapper中的insert方法
public Integer save(@RequestBody User user){
return userMapper.insert(user);
}
5. 运行项目
三、 postman安装与使用
1.下载postman
可以到官网下载postman https://en.softonic.com/download/postman/windows/post-download
2.在postman中进行测试
{
"username":"sunwuk",
"password":"******",
"nickname":"孙悟空"
}
四、数据更新
1.UserMapper接口中添加一个更新的方法
代码如下:
@Update("update sys_user set username=#{username},password=#{password}," +
"nickname=#{nickname},email=#{email},phone=#{phone},address=#{address} where id=#{id}")
int update(User user);
2. UserService类中修改save方法
代码如下:
public int save(User user){
//如果user没有id则表明是新增
if(user.getId()==null){
return userMapper.insert(user);
}
//否则就是更新
else {
return userMapper.update(user);
}
}
3. 运行项目
使用postman作为测试接口,进行更新测试。这时候就会发现,更新的时候虽然可以实现对ID的判断,但是如果只是更新某一个字段,就会发现,其他的字段值变为空了,这时候就需要动态SQL了,后面XML需要登场了。
五、数据删除
1.UserMapper接口中添加一个删除的方法
代码如下:
@Delete ("delete from sys_user where id=#{id}")
int deleteById(@Param("id") Integer id);
2. UserService类中添加deleteById方法
代码如下:
public Integer deleteById(Integer id) {
return userMapper.deleteById(id);
}
3. UserController类中添加删除数据方法deleteById
@DeleteMapping("/{id}")
public Integer deleteById(@PathVariable Integer id){
return userService.deleteById(id);
}
4.使用postman测试
任务总结
本次任务,主要完成并掌握以下内容:
(1)数据库、数据表创建。
(2)添加service层,mapper层等,逐渐掌握controller控制器层,mapper数据访问层,与数据库相关,进行对数据库的增删改查等操作,service层负责整合mapper层供外部调用。(目前没有用到接口实现层)
(3)学会使用postman做项目测试。
原文地址:https://blog.csdn.net/wdyan297/article/details/128720096
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_32430.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!