SpringBoot实现简单的增删改查以及条件分页

该博客详细介绍了如何使用SpringBoot、MyBatis、MySQL和PageHelper分页插件实现用户管理功能,包括用户列表、增删改查、分页搜索等操作。通过IDEA的SpringInitializr创建项目,配置相关依赖,编写实体类、Mapper接口、Controller和页面模板,实现了完整的后台管理系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 条件

  • 使用Spring boot、mybatis、mysql、分页插件实现以下功能

  1. 用户列表

  2. 用户增加

  3. 信息修改

  4. 信息查看

  5. 用户搜索

  6. 分页

  • 效果图如下

 

  • 步骤

1.使用IDEA的Spring Initializr构建

2.模板选择web、
MyBatis、MySQL(以上步骤都不懂的自行百度)

3.在src下创建以下包名,目录如下:

4.修改resources目录下的application.yml

server:
  port: 8080 #指定接口
  servlet:
    context-path: /springbootPagination #指定项目名
    jsp:
      init-parameters:
        development: true #开启jsp模板开发模式

#配置jsp模板
spring:
  mvc:
    view:
      suffix: .jsp
      prefix: /
  #整合mybatis相关配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/y2demo?serverTimezone=UTC
    username: root
    password: root

#配置mybatis
mybatis:
  mapper-locations: classpath:com/p/mapper/*.xml
  type-aliases-package: com.p.entity

#分页插件的配置
pagehelper:
  #配置四項 hprs
  helper-dialect: mysql  #分页助手方言:mysql
  params: count=countSql  #为了支持 startPage(Object params) 方法
  support-methods-arguments: true  #支持通过 Mapper 接口参数来传递分页参数,默认值 false
  reasonable: true #分页合理化参数,默认值为 false,页码不为负,不超总页码

#配置日志
logging:
  level:
    root: info #调整全局日志展示debug
    com.p: debug #输出指定包的日志级别

5.在pom.xml的中加入以下配置

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.p</groupId>
    <artifactId>springbootPagination</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springbootPagination</name>
    <description>Demo project for Spring Boot</description>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

        <!--开启热部署调试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <!--druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.4</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>
        <!--mybatis-spring-boot-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>
        <!--jstl标准数据库 c标签库-->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!--pagehelper-spring-boot-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.5</version>
            </plugin>
        </plugins>
    </build>

</project>

6.在pojo里添加实体类

public class Users {
    private int id;
    private String mobName;
    private String userName;
    ...
}

7.在mapper里添加注解方式数据库操作接口

@Mapper
public interface UsersMapper {

    @Select("select * from users where CONCAT(mobName,userName,nickname,phone) like CONCAT('%',#{name},'%')")
    List<Users> getUsersList(String name);

    @Insert("insert into users (id,mobName,userName,nickname,phone,register) " +
            "values (#{id},#{mobName},#{userName},#{nickname},#{phone},#{register})")
    public int add(Users users);

    @Delete(" delete from users where id= #{id} ")
    public void del(int id);

    @Select("select * from users where id= #{id} ")
    public Users getUser(int id);

    @Update("update users set " +
            "mobName = #{mobName}," +
            "userName = #{userName}," +
            "nickname = #{nickname}," +
            "phone = #{phone}," +
            "register = #{register} " +
            "where id=#{id} ")
    public int update(Users users);

}

8.在tools里添加分页工具类

import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;

@Configuration
public class PageHelperConfig {
    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("offsetAsPageNum", "true");
        properties.setProperty("rowBoundsWithCount", "true");
        properties.setProperty("reasonable", "true");
        pageHelper.setProperties(properties);
        return pageHelper;
    }
}

9.添加controller

@Controller
public class UserController {
    @Resource
    private UsersMapper usersMapper;

    //添加页面
    @RequestMapping("add")
    public String add() {
        return "add";
    }

    //查找(用于查询)
    @RequestMapping("getUser")
    public String getUser(int id, Model model) throws Exception {
        Users Users = usersMapper.getUser(id);
        model.addAttribute("Users", Users);
        return "userShow";
    }
    
    ...
}

10.在templates添加.jsp页面

PageHelper详解:分页工具地址:MyBatis 分页插件 PageHelper

PageHelper.startPage(int PageNum,int PageSize): 用来设置页面的位置和展示的数据条目数;

PageInfo pageInfo = new PageInfo(list):PageInfo用来封装页面信息,返回给前台界面

pageHelper中一些常见的参数:

PageInfo.list  结果集
PageInfo.pageNum当前页码
PageInfo.pageSize当前页面显示的数据条目
PageInfo.pages总页数
PageInfo.total数据的总条目数
PageInfo.prePage上一页
PageInfo.nextPage下一页
PageInfo.isFirstPage    是否为第一页
PageInfo.isLastPage    是否为最后一页
PageInfo.hasPreviousPage    是否有上一页
PageHelper.hasNextPage    是否有下一页
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值