springboot简单增删改查+分页

目录标题

  • 一、项目结构
  • 二、曾删改查+分页
    • 2-1、数据库
    • 2-2、pom.xml依赖
    • 2-3、application.properties
    • 2-4、实体类 User
    • 2-5、Mapper 层
    • 2-6、userMapper.xml 配置文件
    • 2-7、Service 层UserService 接口
    • 2-8、Service 层UserServiceImpl 实现类
    • 2-9、Util 分页工具类
    • 2-10、 Controller 层UserController 控制器

一、项目结构

project-name
├── backend  # 后端代码目录
│   ├── src
│   │   ├── main
│   │   │   ├── java
│   │   │   │   ├── com.example.project.controller  # 控制器包
│   │   │   │   ├── com.example.project.mapper      # Mapper接口和XML文件包
│   │   │   │   ├── com.example.project.model       # 模型包
│   │   │   │   ├── com.example.project.service     # 业务逻辑包
│   │   │   │   └── com.example.project.util        # 工具类包
│   │   │   ├── resources
│   │   │   │   ├── mapper                          # 存放Mapper对应的XML文件
│   │   │   │   ├── mybatis-config.xml              # MyBatis主配置文件
│   │   │   │   └── application.properties          # 数据库连接配置文件
│   │   │   └── static
│   │   │       ├── css                             # CSS文件目录
│   │   │       ├── js                              # JavaScript文件目录
│   │   │       └── images                          # 图片目录
│   └── pom.xml     # Maven项目配置文件

二、曾删改查+分页

2-1、数据库

-- 创建名为 users 的表,并插入初始数据
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT, -- 用户ID,主键,自动递增
    username VARCHAR(50) NOT NULL,      -- 用户名,不能为空
    password VARCHAR(50) NOT NULL      -- 密码,不能为空
);

-- 向 users 表中插入多行数据,包括用户名和密码
INSERT INTO users (username, password) VALUES
    ('alice', 'alicepassword'), 
    ('bob', 'bobpassword'),     
    ('charlie', 'charliepassword'); 

2-2、pom.xml依赖

<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.0modelVersion>

    <groupId>com.examplegroupId>
    <artifactId>myprojectartifactId>
    <version>1.0.0version>

    <dependencies>
        
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-contextartifactId>
            <version>5.3.9version>
        dependency>

        
        <dependency>
            <groupId>org.hibernategroupId>
            <artifactId>hibernate-coreartifactId>
            <version>5.6.2.Finalversion>
        dependency>

        
        <dependency>
            <groupId>org.apache.commonsgroupId>
            <artifactId>commons-lang3artifactId>
            <version>3.12.0version>
        dependency>

        
        <dependency>
            <groupId>log4jgroupId>
            <artifactId>log4jartifactId>
            <version>1.2.17version>
        dependency>

        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.13.2version>
            <scope>testscope>
        dependency>
    dependencies>
    
    <build>
        <sourceDirectory>srcsourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <version>3.8.1version>
                <configuration>
                    <source>1.8source>
                    <target>1.8target>
                configuration>
            plugin>
            
        plugins>
    build>
project>

2-3、application.properties

# 服务器端口
server.port=8080

# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 日志级别配置
logging.level.root=INFO
logging.level.org.springframework.web=DEBUG

# 其他自定义配置


2-4、实体类 User

package com.example.model;

public class User {
    private Long id;  // 用户ID
    private String username;  // 用户名
    private String password;  // 密码
    // 其他字段和对应的getters/setters方法 或者用注解
}

2-5、Mapper 层

package com.example.mapper;

import org.apache.ibatis.annotations.Param;
import com.example.model.User;

import java.util.List;

public interface UserMapper {
    // 根据ID查找用户
    User selectById(@Param("id") Long id);
    // 查找所有用户
    List<User> selectAll();
    // 插入用户
    void insert(User user);
    // 更新用户
    void update(User user);
    // 根据偏移量和大小分页查询用户
    List<User> selectByPage(@Param("offset") int offset, @Param("size") int size);
}

2-6、userMapper.xml 配置文件


DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">

    
    <select id="selectById" resultType="com.example.model.User">
        SELECT * FROM users WHERE id = #{id}
    select>

    
    <select id="selectAll" resultType="com.example.model.User">
        SELECT * FROM users
    select>

    
    <insert id="insert" parameterType="com.example.model.User">
        INSERT INTO users (username, password) VALUES (#{username}, #{password})
    insert>

    
    <update id="update" parameterType="com.example.model.User">
        UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}
    update>

    
    <select id="selectByPage" resultType="com.example.model.User">
        SELECT * FROM users LIMIT #{offset}, #{size}
    select>

mapper>

2-7、Service 层UserService 接口

package com.example.service;

import com.example.model.User;

import java.util.List;

public interface UserService {
    // 根据ID获取用户
    User getUserById(Long id);
    // 获取所有用户
    List<User> getAllUsers();
    // 创建用户
    void createUser(User user);
    // 更新用户
    void updateUser(User user);
    // 删除用户
    void deleteUser(Long id);
    // 分页查询用户
    List<User> getUsersByPage(int page, int size);
}

2-8、Service 层UserServiceImpl 实现类

package com.example.service.impl;

import com.example.model.User;
import com.example.service.UserService;
import com.example.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User getUserById(Long id) {
        return userMapper.selectById(id);  // 调用mapper中的selectById方法
    }

    @Override
    public List<User> getAllUsers() {
        return userMapper.selectAll();  // 调用mapper中的selectAll方法
    }

    @Override
    public void createUser(User user) {
        userMapper.insert(user);  // 调用mapper中的insert方法
    }

    @Override
    public void updateUser(User user) {
        userMapper.update(user);  // 调用mapper中的update方法
    }

    @Override
    public void deleteUser(Long id) {
        userMapper.deleteById(id);  // 调用mapper中的deleteById方法
    }

    @Override
    public List<User> getUsersByPage(int page, int size) {
        int offset = (page - 1) * size;  // 计算偏移量
        return userMapper.selectByPage(offset, size);  // 调用mapper中的selectByPage方法
    }
}

2-9、Util 分页工具类

PageUtil 分页工具类

package com.example.util;

import java.util.List;

public class PageUtil<T> {
    private int page; // 当前页码
    private int size; // 每页记录数
    private int totalPage; // 总页数
    private long totalElements; // 总记录数
    private List<T> content; // 分页数据列表

    // 构造方法和getters/setters方法
}

2-10、 Controller 层UserController 控制器

package com.example.controller;

import com.example.model.User;
import com.example.service.UserService;
import com.example.util.PageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);  // 调用service中的getUserById方法
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();  // 调用service中的getAllUsers方法
    }

    @PostMapping
    public void createUser(@RequestBody User user) {
        userService.createUser(user);  // 调用service中的createUser方法
    }

    @PutMapping
    public void updateUser(@RequestBody User user) {
        userService.updateUser(user);  // 调用service中的updateUser方法
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);  // 调用service中的deleteUser方法
    }

    @GetMapping("/page")
    public PageUtil<User> getUsersByPage(@RequestParam("page") int page, @RequestParam("size") int size) {
        List<User> users = userService.getUsersByPage(page, size);  // 调用service中的getUsersByPage方法
        // 计算总记录数等
        // ...
        return new PageUtil<>(page, size, totalPage, totalElements, users);  // 返回分页结果
    }
}

你可能感兴趣的:(springboot,spring,boot,后端,java)