springboot 使用mybatis plus和mysql交互
springboot工作流程:
1.client端向springboot一个url(即用户访问一个url)
2.springboot调用该url对应的函数(访问数据库,请求数据)
3.数据库向springboot返回数据
4.springboot向client端返回数据
@RestController
是特殊版本的@Controller,用来返回Jason/xml
数据,@Controller
通常返回html页面
在pom.xml
文件中添加依赖:
Spring Boot Starter JDBC
Project Lombok
MySQL Connector/J
mybatis-plus-boot-starter
mybatis-plus-generator
SpringBoot中的常用模块
pojo
层:将数据库中的表对应成Java
中的Class
mapper
层(也叫Dao层):将pojo
层的class中
的操作,映射成sql
语句
service
层:写具体的业务逻辑,组合使用mapper
中的操作
controller
层:负责请求转发,接受页面过来的参数,传给Service
处理,接到返回值,再传给页面
下面的示例将controller和service写在一起(实际上是没写service层,直接让controller层去处理逻辑了)(示例代码中的import都是自动生成的):
pojo层-backend/pojo/User.java
:
package com.kob.backend.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
// 下面用 Lombok 注解来简化代码编写,自动生成常见的方法和构造方法
// pojo层 将数据库中的表对应成Java中的Class
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
}
mapper层-backend/mapper/UserMapper.java
:
package com.kob.backend.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kob.backend.pojo.User;
import org.apache.ibatis.annotations.Mapper;
// mapper层(也叫Dao层):将pojo层的class中的操作,映射成sql语句
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
controller层-backend/controller/UserController.java
:
controller层通过调用前面的mapper和pojo层和,实现和数据库交互。
下面的代码实现了对应的功能:
1. http://localhost:3000/user/all/ => 展示数据库所有的user
2. http://localhost:3000/user/1/ => 展示id为1的user
3. http://localhost:3000/user2/1/ => 展示id为1的user
4. http://localhost:3000/user3/2/ => 展示id大于2小于3的user
5. http://localhost:3000/user4/5/d/pd/ => 数据库中添加id为5,username为d,password为pd的user
6. http://localhost:3000/user5/delete/5/ => 删除数据库中id为5的user
package com.kob.backend.controller.user;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kob.backend.mapper.UserMapper;
import com.kob.backend.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserController {
@Autowired
UserMapper userMapper;
@GetMapping("/user/all/")
public List<User> getAll() {
return userMapper.selectList(null);
}
@GetMapping("/user/{userId}/")
public User getuser(@PathVariable int userId) {
return userMapper.selectById(userId);
}
@GetMapping("/user2/{userId}/")
public User getuser2(@PathVariable int userId) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id",userId);
return userMapper.selectOne(queryWrapper);
}
@GetMapping("/user3/{userId}")
public List<User> getuser3(@PathVariable int userId) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("id",2).le("id",3); // 返回id大于2小于3的数据
return userMapper.selectList(queryWrapper);
}
@GetMapping("/user4/{userId}/{username}/{password}/")
public String addUser(
@PathVariable int userId,
@PathVariable String username,
@PathVariable String password) {
User user = new User(userId, username, password);
userMapper.insert(user);
return "add user successfully!";
}
@GetMapping("/user5/delete/{userId}/")
public String deleteUser(@PathVariable int userId) {
userMapper.deleteById(userId);
return "delete user successfully!";
}
}
rds_blogs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
2023-02-20 AcWing 3956. 截断数组 [前缀和]