【SpringBoot】 什么是springboot(二)?springboot操作mybatisPlus、swagger、thymeleaf模板

news2024/11/28 10:50:02

文章目录

  • SpringBoot
    • 第三章
      • 1、整合mybatsPlus
        • 1-2
        • 3
        • 4-6
        • 7-10
        • 问题
      • 2、整合pageHelper分页
      • 3、MP代码生成器
        • 1、编写yml文件
        • 2、导入依赖
        • 3、创建mp代码生成器
        • 4、生成代码
        • 5、编写配置类扫描mapper类
        • 6、编写控制器类
      • 4、swagger
        • 1、什么是swagger
        • 2、作用
        • 3、发展历程
        • 4、一个简单的swagger项目
    • 第四章
      • 1、swagger
      • 2、thymeleaf
        • 1、使用步骤
        • 2、thymeleaf中的表达式
          • 1、标准变量表达式
          • 2、选择变量表达式
          • 3、路径表达式
        • 3、标签语法
          • 1、th:text
          • 2、th:value
          • 3、th:href
          • 4、th:src
          • 5、th:attr
          • 6、th:each
          • 7、内敛文本
          • 8、内联脚本
          • 9、th:switch
          • 10、th:if
        • 4、thymeleaf中的内置对象
          • 1、日期
          • 2、数值
          • 3、统计
          • 4、作用域
      • 3、综合应用
          • 1-2
          • 3-5
          • 6
          • 7-8
          • 页面两种跳转方式

SpringBoot

第三章

1、springboot操作mybatisPlus
2、mybatisPlus代码生成器
3、swagger
4、thymeleaf

1、整合mybatsPlus

@@@@@@如果使用Mybatis所有操作要自己编写sql语句,自己编写mapper接口中方法,mybatisPlus对Mybatis进行了封装,常见的方法不用自己声明,即可直接使用

使用MybatisPlus后,常见的sql,mapper接口中的方法不需要自己编写了,由MybatisPlus直接提供,这样可以简化开发过程

步骤

1-2
@@@@@@@@在springboot中使用MybatisPlus

1、创建springboot项目

2、导入依赖

	1、web
	2、devtools 热部署
	3、mybatisPlus(需要手动导入)
	4、mysql (默认情况下,系统导入的是mysql 8.0,如果用的其他版本,就需要自己指定版本号)
	5、druid---------------这个依赖选不了,需要手动导入
	6、lombok

	注意:默认导入的mysql的依赖是:
	        <dependency>
		    <groupId>com.mysql</groupId>
		    <artifactId>mysql-connector-j</artifactId>
		    <scope>runtime</scope>
		</dependency>

		需要更改为:

		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>5.1.47</version>
		</dependency>


	导入druid
	<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.16</version>
        </dependency>

	 <!--导入mybatisPlus的依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.16</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>
3
3、编写配置文件 application.yml

	#服务器端口号
	server:
	  port: 9999
	#指定数据库连接
	spring:
	  datasource:
	    #使用druid连接池
	    type: com.alibaba.druid.pool.DruidDataSource
	    #数据库驱动
	    driver-class-name: com.mysql.jdbc.Driver
	    #连接地址
	    url: jdbc:mysql:///d113
	    #用户名及密码
	    username: root
	    password: root
	mybatis-plus:
	  #对哪一个包下面的实体类生成别名,默认别名是类名的首字母小写
	  type-aliases-package: org.java.entity
	  #指定mybatis中生成的mapper.xml配置文件的位置
	  mapper-locations: classpath:mapper/*Mapper.xml
	#输出org.java.dao这个包中操作数据库时的底层sql语句
	logging:
	  level:
	    org:
	      java:
		dao: debug
4-6

11

4、编写实体类

	@Data
	@AllArgsConstructor
	@NoArgsConstructor
	@TableName("inf")//如果表名与类名一致,该注解可以省略
	public class Inf implements Serializable {
   

	    //它表示当前对应的是数据表中的主键,当前id的值是由数据库自动分配
	    @TableId(type = IdType.AUTO)
	    private Integer id;
	    @TableField("name")//描述当前属性与数据表中的哪一个字段有映射关系,如果同名可以省略不写
	    private String name;
	    private Integer score;
	}

5、编写Mapper接口继承于BaseMapper
	@Repository
	public interface InfMapper extends BaseMapper<Inf> {
   
	}


6、编写配置类扫描Mapper接口

	@Configuration
    @EnableTransactionManagement
	@MapperScan(basePackages = "org.java.dao")
	public class WebConfig {
   
	}

7-10
7、编写Service接口

8、编写service实现类
		
	@Service
	public class InfServiceImpl implements InfService {

	    @Autowired
	    private InfMapper infMapper;

	    @Override
	    public void add(Inf inf) {
		infMapper.insert(inf);
	    }

	    @Override
	    public List<Inf> getList() {
		return infMapper.selectList(null);
	    }
	}

9、编写控制器类
	@RestController
	public class InfController {
	    @Autowired
	    private InfService infService;
	    
	    @GetMapping("/init")
	    public List<Inf> getList(){
		return infService.getList();
	    }
	    
	    @PostMapping("/add")
	    public void add(Inf inf){
		infService.add(inf);
	    }
	}
10、测试

问题
@@@@@@@问题:如果我们要使用一个方法findByScore,但mybatisplus中没有这个方法,我们可以直接扩展

1、在mapper接口指定方法
	@Repository
	public interface InfMapper extends BaseMapper<Inf> {

	    public List<Inf> findByScore();
	}

2、编写mapper.xml

	<mapper namespace="org.java.dao.InfMapper">
	    <select id="findByScore" parameterType="int" resultType="inf">
		select * from inf where score >=#{score}
	    </select>
	</mapper>


3、在yml文件中配置mybatis的信息
mybatis-plus:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: org.java.entity

2、整合pageHelper分页

@@@@@@@@在springboot使用pageHelper实现分页

1、导入pageHelper依赖

	<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.12</version>
        </dependency>

2、在控制器编写方法接收参数进行分页显示

    @GetMapping("/show/{page}/{rows}")
    public PageInfo<Inf> showPage(@PathVariable("page")  Integer page, @PathVariable("rows")  Integer rows){
   
        //分页加载数据
        PageInfo<Inf> pg = infService.showPage(page,rows);

        return pg;
    }
 
3、编写InfService类中的方法,实现分页显示

    public PageInfo<Inf> showPage(Integer page, Integer rows) {
   
        //设置分页的信息
        PageHelper.startPage(page,rows);

        //创建一个queryWrapper对象,用于封装查询条件
        QueryWrapper<Inf> queryWrapper = new QueryWrapper<>();

        //分页查询
        PageInfo<Inf> pageInfo = new PageInfo<>(infMapper.selectList(queryWrapper));

        return pageInfo;
    }

3、MP代码生成器

使用MP代码生成器

作用:在项目中使用MP的代码生成器可以生成通用的:Mapper接口,service接口,service实现类,实体
类,以及项目的基本结构
1、编写yml文件
#服务器端口号
server:
  port: 8099
#指定数据库连接
spring:
  datasource:
    #使用druid连接池
    type: com.alibaba.druid.pool.DruidDataSource
    #数据库驱动
    driver-class-name: com.mysql.jdbc.Driver
    #连接地址
    url: jdbc:mysql:///d118?useUnicode=true&characterEncoding=UTF-8&useSSL=false
    #用户名及密码
    username: root
    password: 123456
mybatis-plus:
  #对哪一个包下面的实体类生成别名,默认别名是类名的首字母小写
  type-aliases-package: org.java.entity
  #指定mybatis中生成的mapper.xml配置文件的位置
  mapper-locations: classpath:mapper/*Mapper.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#输出org.java.dao这个包中操作数据库时的底层sql语句
#logging:
#  level:
#    org:
#      java:
#        mapper: debug

2、导入依赖
1、web
2、热部署
3、mysql
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
4、druid
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.16</version>
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1668478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ADC模-数转换原理与实现

1. 今日摸鱼计划 今天来学习一下ADC的原理&#xff0c;然后把ADC给实现 ADC芯片:ADC128S102 视频&#xff1a; 18A_基于SPI接口的ADC芯片功能和接口时序介绍_哔哩哔哩_bilibili 18B_使用线性序列机思路分析SPI接口的ADC芯片接口时序_哔哩哔哩_bilibili 18C_基于线性序列机的S…

MFC的句柄概念以及句柄类型

在MFC&#xff08;Microsoft Foundation Class&#xff09;桌面应用程序中&#xff0c;窗口是通过句柄&#xff08;Handle&#xff09;来进行管理和操作的。 句柄是一个标识符&#xff0c;用于唯一标识和引用窗口、控件、设备上下文等对象。在MFC桌面应用程序中&#xff0c;常…

mac -- Navicat premium for mac 12的安装破解过程

下载准备好dmg文件&#xff0c;接下来开始安装破解。 镜像在官网下载&#xff0c;复制打开链接可以直接下载&#xff0c;可以直接下载中文版&#xff0c;不需要汉化&#xff1a;&#xff08;下载包不能用&#xff0c;留言我发给你&#xff09; 英文64位&#xff1a; http://dow…

【0003day】VOSviewer分析

这个软件也可以用知网&#xff0c;也可以用web of science。 首先&#xff0c;需要创建数据。这个数据如何创建&#xff0c;需要参考对应的教程。&#xff08;本文以web of science为平台来做分析。&#xff09; 首先&#xff0c;创建对应的数据库。 一直下一步 让后选择完…

Linux重定向及缓冲区理解

重定向&#xff1a; 在上一期虚拟文件系统中讲到了每个进程在打开后&#xff0c;都会默认打开3个文件&#xff0c;如下&#xff1a; stdin 标准输入&#xff08;键盘&#xff09; 文件描述符&#xff1a;0 stdout 标准输出&#xff08;显示器&#xff09;文件描述符&a…

Boss让你设计架构图,你懵逼了,解救你的参考图来啦。

架构图是指用于描述系统或软件的结构和组成部分之间关系的图形表示。 它是一种高层次的图示&#xff0c;用于展示系统的组件、模块、接口和数据流等&#xff0c;以及它们之间的相互作用和依赖关系。架构图通常被用于可视化系统的整体设计和组织结构&#xff0c;帮助人们理解系…

分享10类正规的网上赚钱平台,让你摆脱单一收入

在这个互联网飞速发展的时代&#xff0c;你是否还在为单一的收入来源而焦虑&#xff1f;别担心&#xff0c;今天带你解锁10种网上赚钱的新姿势&#xff0c;让你的收入不再单一&#xff0c;甚至可能翻倍&#xff01; 1. 文库类&#xff1a;知识的变现 你知道吗&#xff1f;你的…

利用IP地址查询解决被“薅羊毛”的方法

在互联网时代&#xff0c;随着各种网络诈骗手段的不断更新和演变&#xff0c;“薅羊毛”成为了一种常见的网络犯罪行为。其中&#xff0c;利用查询IP地址进行欺诈活动已经成为一种普遍的手段。当个人或组织的IP地址被不法分子查询后&#xff0c;可能会面临虚假注册、盗取个人信…

三. TensorRT基础入门-剖析ONNX架构并理解ProtoBuf

目录 前言0. 简述1. 执行一下我们的python程序2. ONNX是什么&#xff1f;3. onnx中的各类Proto3.1 理解onnx中的ValueInfoProto3.2 理解onnx中的TensorProto3.3 理解onnx中的NodeProto3.4 理解onnx中的AttributeProto3.5 理解onnx中的GraphProto3.6 理解onnx中的ModelProto 4. …

Google与哈佛大学的科学家团队共同创造了一张人脑中一个极小部分的精细地图

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Python悬置动刚度模拟及复数绘制

Python悬置动刚度模拟及复数绘制 1、复数绘制极坐标图2、动刚度的计算公式3、悬置动刚度的影响因素4、 AVL Excite 悬置动刚度的模拟 1、复数绘制极坐标图 # _*_ coding:UTF-8 _*_import matplotlib.pyplot as plt import numpy as np# 定义复数数组 complexNums [1.5 1.2j,…

Python网络爬虫原理及实践

1 网络爬虫 网络爬虫&#xff1a;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。 网络爬虫相关技术和框架繁多&#xff0c;针对场景的不同可以选择不同的网络爬虫技术。 2 Scrapy框架&#xff08;Python&#xff09; 2.1. Scrapy架构 2.1.1. 系统…

io_uring的使用示例及其解释

io_uring的使用示例及其解释 1 io_uring机制1.1 io_uring机制1.2 io_uring系统调用接口功能介绍1.2.1 io_uring_setup()&#xff1a;1.2.2 io_uring_enter()&#xff1a;1.2.3 io_uring_register()&#xff1a; 2 liburing2.1 liburing简介2.2 liburing编译2.2.1 liburing的代码…

如何快速展示专业:掌握类的基本概念-类/方法/关键字/变量/数据类型/注释

在李笑来的《财富自由之路》中提到一种初学者快速入门的学习方法&#xff1a;快速掌握最小必要知识。 关于Java的类&#xff0c;最少必要知识就是本文提到的基本概念&#xff0c;掌握了这些基本概念&#xff0c;就对类有了基本的了解&#xff0c;为后续的深入学习和沟通奠定了基…

MFC桌面应用中窗口的客户区与非客户区的

在MFC&#xff08;Microsoft Foundation Class&#xff09;中&#xff0c;窗口被分为客户区和非客户区。理解这两个概念对于设计和开发Windows应用程序至关重要。 客户区&#xff08;Client Area&#xff09;&#xff1a; 客户区是窗口中用于显示应用程序内容的区域。它是窗口…

单链表经典算法OJ题---力扣206,876(带图详解

1.链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09;【点击即可跳转】 思路&#xff1a;创建三个指针&#xff0c;看下图 注意&#xff1a;n3如果为空&#xff0c;则不能继续指向下一节点&#xff0c;需要进行判断 代码实现&#xff1a; struct ListNode* reverseLi…

VS中scanf使用的常见问题

本篇文章给大家讲一讲如何解决scanf使用的常见问题 那么先给大家看一下scanf在vs编译器中出现的问题 从图中大家可以看到这串代码报错了&#xff0c;那么我们来看看报错信息 从图中我们可以看到&#xff0c;vs说scanf不安全&#xff0c;并且也给了我们两种解决方法 第一种&…

路由器、交换机和网卡

大家使用VMware安装镜像之后&#xff0c;是不是都会考虑虚拟机的镜像系统怎么连上网的&#xff0c;它的连接方式是什么&#xff0c;它ip是什么&#xff1f; 路由器、交换机和网卡 1.路由器 一般有几个功能&#xff0c;第一个是网关、第二个是扩展有线网络端口、第三个是WiFi功…

数据恢复软件 –最好的Android数据恢复软件分享

在安卓数据恢复方面&#xff0c;奇客数据恢复安卓版是最好的 Android 数据恢复公司&#xff0c;因为它的成功率为 100%。随着无数企业和个人使用智能手机和平板电脑&#xff0c;总是有很多数据丢失或损坏的机会&#xff0c;这就是它们如此受欢迎的原因。在恢复数据时&#xff0…

vue+springboot项目服务器部署

①创建一台opencloud8的腾讯云服务器 ②用xshell连接服务器 ③vue中新建.env.development配置文件 .env.development: VUE_APP_BASEURLhttp://localhost:9090 .env.production: VUE_APP_BASEURLhttp://服务器ip:9090 ④修改main.js import Vue from vue import App from ./A…