JavaWeb个人学习

news2025/2/27 5:41:04

1:@RequestParam(defaultValue = "默认的值") 这个可以在一个参数的前面写上 要是前端不传值进来的话 这个形参就是你定义的默认值

2: slf4j  对应的是日志的输出
log.info("参数是 {}", detail);

3: 分页插件 PageHelper 用法:
准备工作: 引入依赖

        3.1: 设置分页参数: PageHelper.startPage(page, pageSize);
        3.2: 执行查询 
        
        3.3: 封装PageBean对象

4: @DateTimeFormat(pattern = "yyyy-MM-dd") 指定前端传进来的日期的格式

5: 操作数据库 xml配置文件 要与接口名字同包 同名
基本的代码模板:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

具体的代码演示:
注意:比如查询语句 <select>里面的id 要与接口查询的方法名保持一致 resultType要与返回的数据类型保持一致 但是xml里面写的是全类名 比如: com.findyou.mapper.EmpMapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.mapper.EmpMapper">

    <!-- 定义查询所有员工的SQL语句 -->
    <select id="selectAllEmployees" resultType="com.example.model.Employee">
        SELECT * FROM employee;
    </select>

    <!-- 定义根据员工ID查询员工信息的SQL语句 -->
    <select id="selectEmployeeById" parameterType="int" resultType="com.example.model.Employee">
        SELECT * FROM employee WHERE id = #{id};
    </select>

    <!-- 定义插入员工信息的SQL语句 -->
    <insert id="insertEmployee" parameterType="com.example.model.Employee">
        INSERT INTO employee (name, age, department)
        VALUES (#{name}, #{age}, #{department});
    </insert>

    <!-- 定义更新员工信息的SQL语句 -->
    <update id="updateEmployee" parameterType="com.example.model.Employee">
        UPDATE employee
        SET name = #{name}, age = #{age}, department = #{department}
        WHERE id = #{id};
    </update>

    <!-- 定义根据员工ID删除员工信息的SQL语句 -->
    <delete id="deleteEmployee" parameterType="int">
        DELETE FROM employee
        WHERE id = #{id};
    </delete>

</mapper>

动态的写法是:
模糊匹配 查询包含name的

<if test = "name != null">
name like concat ('%', #{name}, '%') 
</if>

6: 批量删除员工:

delete from emp where id in (1, 2, 3);

7:路径参数的接收: 在参数的前面加上 @PathVariable 表示的就是接收路径参数
比如:  localhost:8080/emps/15,16,17 用的是delete的形式

 8: 动态删除员工 <foreach>标签
collection: 要遍历的集合
item: 遍历出来的每一个元素
separator: 你这个集合里面每个元素的分隔符
open: 遍历之前拼接的是什么
close: 遍历之后拼接的是什么
代码演示:

<delete id = "delete"
    delete
    from emp
    where id in
    <foreach collection="ids" item="id" separator="," open="{" close="}">
        #{id}
    </foreach>
</delete>

 9:使用了@RequestBody注解,这样Spring会将请求的body部分转换成参数对象,并注入到参数中供方法使用

10:参数配置化:
application.properties里面写配置信息 比如: aliyun.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com
然后创建一个实体类 在类里面 定义相关的信息(属性) 注意需要在这个类的上面加上@Component的注解 目的是:通过在类上添加"@Component"注解,Spring框架会自动扫描并识别这个类,将其实例化为一个Bean,并加入到Spring应用上下文中管理。
然后通过@Value注解把之前配置的属性注入 具体的用法为: @Value("${配置文件中的key}")

 11: yml(yaml)配置文件:
在 .properties文件中 servert.port=8080 servert.address=127.0.0.1 但是在yaml文件里面的格式(注意缩进的格式)  #表示的是注释  注意 : 要和value之间 要加个空格

定义数组/List/Set:

hobby:
 - java
 - C
 - game
 - sport

12:配置格式的对比:

13: @ConfiguratonProperties 会自动把配置文件里面的对应的key和你加这个注解的类里面的属性等于相同的value值  在使用 @ConfigurationProperties 注解时,需要指定一个前缀(prefix),这个前缀会与配置文件中的属性名进行匹配,然后将对应的属性值注入到被注解的类的实例中。 但是前提是类里面的属性值要和配置文件里面的key要保持一致 前提还要把这个类交给ioc容器管理 也就是在这个类的前面加上@Component, 同时提供get和set方法 直接在类的前面加上@Data注解就可以了

14:
 

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

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

相关文章

MySQL之Pt-kill工具

工具下载 [rootlocalhost1 bin]# wget percona.com/get/percona-toolkit.tar.gz [rootlocalhost1 bin]# yum install perl-DBI [rootlocalhost1 bin]# yum install perl-DBD-MySQL [rootlocalhost1 bin]# ./pt-kill --help1、每10秒检查一次&#xff0c;发现有 Query 的进程就…

SpringBoot:Invalid bound statement (not found)的原因和解决方案

&#x1f413; 报错信息&#xff1a; &#xff08;无效绑定声明&#xff09;找不到 解析&#xff1a; 你的mapper实例对象和对应的mapper.xml对象未找到 &#x1f413; 排查&#xff1a; 情况一&#xff1a; 1.排除相对应的mapper实例对象路径是否正确 查看相对应的mapper中…

【数据结构】B树,B+树,B*树

文章目录 一、B树1.B树的定义2.B树的插入3.B树的中序遍历 二、B树和B*树1.B树的定义2.B树的插入3.B*树的定义4.B树系列总结 三、B树与B树的应用 一、B树 1.B树的定义 1. 在内存中搜索效率高的数据结构有AVL树&#xff0c;红黑树&#xff0c;哈希表等&#xff0c;但这是在内存…

协同共生,价值共创。璞华集团以客户为中心的协作发展之道

协同共生&#xff0c;价值共创。 当一个公司所有人都自发地向着同一个目标协同奋进的时候&#xff0c;没有理由不相信将会有好事发生。协同共生&#xff0c;价值共创&#xff0c;在璞华集团已经成为自然而然的、植根于日常行动的主旋律。 璞华集团&#xff0c;一家以长期主义…

Go语言基本语法

Go语言基本语法 设置 GOPATH 环境变量 开始写 go 项目代码之前&#xff0c;需要我们先配置好环境变量。编辑 ~/.bash_profile&#xff08;在终端中运行 vi ~/.bash_profile 即可&#xff09;来添加下面这行代码&#xff08;如果你找不到 .bash_profile&#xff0c;那自己创建…

每日五道java面试题之spring篇(七)

目录&#xff1a; 第一题. 什么是Spring beans&#xff1f;第二题. 一个 Spring Bean 定义 包含什么&#xff1f;第三题. 如何给Spring 容器提供配置元数据&#xff1f;Spring有几种配置方式?第四题. Spring基于xml注入bean的几种方式?第五题&#xff1a;你怎样定义类的作用域…

41.仿简道云公式函数实战-数学函数-SUMIF

1. SUMIF函数 SUMIF 函数可用于计算子表单中满足某一条件的数字相加并返回和。 2. 函数用法 SUMIF(range, criteria, [sum_range]) 其中各参数的含义及使用方法如下&#xff1a; range&#xff1a;必需&#xff1b;根据 criteria 的条件规则进行检测的判断字段。支持的字段…

prime_series_level-1靶场详解

环境搭建 官网https://www.vulnhub.com/entry/prime-1,358/ 直接导入靶机 解题思路 arp-scan -l 确认靶机ip为192.168.236.136 也可以使用nmap扫网段 nmap -sn 192.168.236.0/24 使用nmap扫描靶机开放的端口 nmap -sS -T5 --min-rate 10000 192.168.236.136 -sC -p- &#xf…

ABBYY FineReader16文档转换、PDF管理与文档比较功能介绍

ABBYY FineReader 16作为一款OCR和PDF一体化程序&#xff0c;其强大的功能使得文档处理变得简单高效。在众多功能中&#xff0c;文档转换、PDF管理和文档比较这三大功能尤为突出&#xff0c;成为了众多企业和个人用户的首选工具。 ABBYY Finereader 16-安装包下载如下&#xff…

好书推荐丨AI绘画全面精通:软件平台+脚本文案+设计制作+案例实战

文章目录 写在前面AI绘画推荐图书图书简介本书特色作者简介 推荐理由粉丝福利写在后面 写在前面 本期博主给大家带来了一本全新出版的AI绘画类书籍&#xff0c;《AI绘画全面精通&#xff1a;软件平台脚本文案设计制作案例实战》&#xff0c;对人工智能感兴趣的小伙伴快来看看吧…

什么时候要用到Reflect API?

参考文档 https://www.zhihu.com/question/460133198 https://cn.vuejs.org/guide/extras/reactivity-in-depth.html https://juejin.cn/post/7103764386220769311 Reflect API 一般搭配 Proxy API 一起使用。什么是 Proxy API 呢&#xff1f; 先回顾下 vue 的数据响应性是如何…

27-树-左叶子之和

这是树的第27篇算法&#xff0c;力扣链接。 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别是 9 和 15&#xff0c;所以返回 2…

前后端项目宝塔linux部署(springboot,vue,python)

宝塔linux安装就省略了&#xff0c;网上一堆 1.部署后端 1.首先把自己项目里面打包好的的jar包上传到服务器随便一个地方&#xff0c;我这里就上传到www/wwwroot下面了&#xff0c;宝塔的文件页面可以很便携上传 2.然后到下面这个页面 选那个java环境管理装个jdk&#xff…

在github的README.md中插入视频;在github的README.md中添加gif演示动画

最近需要再github中上传项目的源代码&#xff0c;应导师的要求&#xff0c;需要再README中加入对实验视频的展示&#xff0c;但是github的README.md其实就是一个markdown文件&#xff0c;据我的理解这个文件里应该无法直接插入视频吧&#xff1f;&#xff08;如果后续有办法直接…

【postgresql】数据表id自增与python sqlachemy结合实例

需求&#xff1a; postgresql实现一个建表语句&#xff0c;表名&#xff1a;student,字段id,name,age&#xff0c; 要求&#xff1a;每次添加一个数据id会自动增加1 在PostgreSQL中&#xff0c;您可以使用SERIAL或BIGSERIAL数据类型来自动生成主键ID。以下是一个创建名为stude…

2024环境,资源与绿色能源国际会议(ICERGE2024)

2024环境&#xff0c;资源与绿色能源国际会议(ICERGE2024) 一、【会议简介】 2024环境、资源与绿色能源国际会议(ICERGE2024)将于2024年在三亚举行。该会议是一个围绕环境、资源与绿色能源研究领域的国际学术交流活动。 会议主题包括但不限于环境科学、环境工程、资源利用、绿…

C++之类和对象(2)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 5.赋值运算符重载 5.1 运算符重载 5.2 赋值运算符重载 2. 赋值运算符只能重载成类的成员函数不能重载成全局函数 3. 用户没有显式实现时&…

pycharm如何安装pygame库

pycharm如何安装pygame库 PyCharm是Python中广受欢迎的一种IDE&#xff0c;它可以为用户提供许多工具和便利的服务&#xff0c;从而大大提高开发效率。pygame库可以用python进行游戏开发提供很好的支持&#xff0c;那么在ptcharm中如何安装pygame库呢&#xff1f; 一、安装步…

Sora背后的技术原理解析(简单易懂版本)

本篇文章是OpenAI发布的最强AI视频生成工具Sora技术详解&#xff08;非官方&#xff09;&#xff0c;然而&#xff0c;Sora的野心远不止是视频生成&#xff0c;而是作为一个世界模型。之前的文章中已经介绍了很多关于文生图的相关技术&#xff0c;相信有了文生图的基础后再来学…

[c/c++] static 关键字

从修饰的对象来看&#xff0c;static 可以修饰局部变量&#xff0c;也可以修饰全局变量&#xff0c;可以修饰函数&#xff1b;可以修饰类中的成员变量以及成员函数。 从生命周期的角度来看&#xff0c;static 修饰的对象的生命周期&#xff0c;与进程的生命周期是一致的。 从…