【Springboot+mybatisPlus+mysql+thymeleaf实现crud】
创始人
2025-05-30 23:09:14

Springboot+mybatisPlus+mysql+thymeleaf实现crud

文章目录

  • Springboot+mybatisPlus+mysql+thymeleaf实现crud
    • 简介
      • #特性
      • #支持数据库
      • #框架结构
    • Springboot+mybatisPlus+mysql+thymeleaf
      • pom.xml
      • application.yml
      • MybatisPlusConfig.java
      • User.java
      • UserService.java
      • UserServiceImpl.java
      • MyBatisPlusApplication.java
      • UserMapper.xml
      • add.html
      • login.html
      • modifie.html

代码链接-spring-boot-mybatis-plus
Springboot学习

Mybatis Plus

简介

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

愿景

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

img

#特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

#支持数据库

任何能使用 MyBatis 进行 CRUD, 并且支持标准 SQL 的数据库,具体支持情况如下,如果不在下列表查看分页部分教程 PR 您的支持。

  • MySQL,Oracle,DB2,H2,HSQL,SQLite,PostgreSQL,SQLServer,Phoenix,Gauss ,ClickHouse,Sybase,OceanBase,Firebird,Cubrid,Goldilocks,csiidb,informix,TDengine,redshift
  • 达梦数据库,虚谷数据库,人大金仓数据库,南大通用(华库)数据库,南大通用数据库,神通数据库,瀚高数据库,优炫数据库

#框架结构

framework

Springboot+mybatisPlus+mysql+thymeleaf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fK1TuygR-1679234128051)(image/image-20230319214436002.png)]

pom.xml

org.springframework.bootspring-boot-starter-parent2.5.4UTF-8UTF-81.8org.springframework.bootspring-boot-starter-weborg.projectlomboklomboktruecom.baomidoumybatis-plus-boot-starter3.5.1com.baomidoumybatis-plus-extension3.5.1org.projectlomboklomboktrueorg.springframework.bootspring-boot-starter-testtestmysqlmysql-connector-java8.0.16com.alibabadruid1.1.21org.freemarkerfreemarker2.3.30testorg.springframework.bootspring-boot-starter-thymeleaforg.springframework.bootspring-boot-maven-plugin2.5.4

application.yml

server:port: 8080
# DataSource Config
spring:application:name: userthymeleaf:cache: falsedatasource:url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false&serverTimezone=UTCusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Drivermybatis-plus:# mapper配置文件。可能有多个,所以Mapper.xml结尾的都添加进来mapper-locations: classpath:mapper/*Mapper.xmlconfiguration:# 类属性与表字段的驼峰映射,mybatis plus默认true开启,mybatis需要手动配置,且config-location和configuration不能同时出现map-underscore-to-camel-case: true# 配置日志输出log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# Logger Config
logging:level:com.neo: debug

MybatisPlusConfig.java

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
@MapperScan("com.neo.mapper")
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);return mybatisPlusInterceptor;}}

User.java

package com.neo.model;import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;@TableName(value = "t_user")
public class User {/*** 用户表主键Id*/@TableIdprivate String userId;/*** 用户姓名*/private String userName;/*** 用户年龄*/private String userAge;/*** 用户住址*/private String userAddr;/*** 用户性别*/private String userSex;/*** 用户电话号码*/private String userPhone;public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserAge() {return userAge;}public void setUserAge(String userAge) {this.userAge = userAge;}public String getUserAddr() {return userAddr;}public void setUserAddr(String userAddr) {this.userAddr = userAddr;}public String getUserSex() {return userSex;}public void setUserSex(String userSex) {this.userSex = userSex;}public String getUserPhone() {return userPhone;}public void setUserPhone(String userPhone) {this.userPhone = userPhone;}
}

UserService.java

package com.neo.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.neo.model.User;import java.util.List;public interface UserService extends IService {List getUserByUserAge(String userAge);
}

UserServiceImpl.java

package com.neo.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.neo.mapper.UserMapper;
import com.neo.model.User;
import com.neo.service.UserService;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserServiceImpl extends ServiceImpl implements UserService {@Overridepublic List getUserByUserAge(String userAge) {return this.baseMapper.getUserByUserAge(userAge);}
}

MyBatisPlusApplication.java

package com.neo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** http://localhost:8080/api/v1/user/list*/
@SpringBootApplication
public class MyBatisPlusApplication {public static void main(String[] args) {SpringApplication.run(MyBatisPlusApplication.class, args);}
}

UserMapper.xml




add.html



添加用户
姓 名:
年 龄:
住 址:
性 别:
电话号码:

login.html



用户列表

用户管理系统

姓名年龄住址性别电话号码
'/api/v1/user/updatePage/'+${user.userId}}">更改'/api/v1/user/delete/'+${user.userId}}">删除
当前 [[${page.current}]]页,总[[${page.pages }]]页,总[[ ${page.total }]] 条记录

modifie.html



修改用户

姓 名:
年 龄:
住 址:
性 别:
电话号码:

在这里插入图片描述
启动效果

相关内容

热门资讯

今年我省粮食产量达515.56... (来源:辽宁日报)转自:辽宁日报 图为在中储粮(盘锦)储运有限公司,装运粮食的重型卡车排起长队...
国家发展改革委部署促进投资止跌... (来源:辽宁日报)转自:辽宁日报 新华社北京12月13日电 (记者魏玉坤) 记者13日从全国发展和改...
江苏省实施《中华人民共和国森林... (来源:新华日报) 目 录 第一章 总则 第二章 森林、林木和林地权属管理...
姜堰数字化产品讲“活”理论 (来源:新华日报) □ 本报记者 卢佳乐 通讯员 姜宣 “王教授,您约我‘喝茶论道’,...
联合国维和部队在苏丹遇袭 6人... 转自:财联社【联合国维和部队在苏丹遇袭 6人死亡】财联社12月14日电,当地时间13日,苏丹武装部队...