JavaWeb个人学习01

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 mapperPUBLIC "-//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 mapperPUBLIC "-//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 employeeSET name = #{name}, age = #{age}, department = #{department}WHERE id = #{id};</update><!-- 定义根据员工ID删除员工信息的SQL语句 --><delete id="deleteEmployee" parameterType="int">DELETE FROM employeeWHERE 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"deletefrom empwhere 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注解就可以了

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

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

相关文章

【OpenCV C++】Mat img.total() 和img.cols * img.rows 意思一样吗?二者完全相等吗?

文章目录 1 结论及区别2 Mat img的属性 介绍1 结论及区别 在大多数情况下,img.total() 和 img.cols * img.rows 是相等的,但并不总是完全相等的。下面是它们的含义和一些区别: 1.img.total() 表示图像中像素的总数,即图像的总像素数量。2.img.cols * img.rows 也表示图像中…

React UI框架Antd 以及 如何按需引入css样式配置(以及过程中各种错误处理方案)

一、react UI框架Antd使用 1.下载模块 npm install antd -S 2.引入antd的样式 import ../node_modules/antd/dist/reset.css; 3.局部使用antd组件 import {Button, Calendar} from antd; import {PieChartTwoTone} from ant-design/icons; {/* 组件汉化配置 */} import l…

【Java设计模式】四、适配器模式

文章目录 1、适配器模式2、举例 1、适配器模式 适配器模式Adapter Pattern&#xff0c;是做为两个不兼容的接口之间的桥梁目的是将一个类的接口转换成客户希望的另外一个接口适配器模式可以使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 最后&#xff0c;适配器…

Javase补充-Arrays类的常用方法汇总

文章目录 一 . 排序方法二 . 查找方法三 . 判断是否相等的方法四 . 拷贝方法五 . 填充方法 一 . 排序方法 我们第一个要介绍的就是sort方法 这个排序实现的底层逻辑应该是十分复杂的,以我们目前的水平体系应该无法理解,我们今天尝试用我们可以理解的一种排序算法,插入排序来模…

DEPART: Replica Decoupling for Distributed Key-Value Storage——论文泛读

FAST 2022 Paper 论文阅读笔记整理 问题 现代分布式KV存储通过在节点之间分发KV对的副本来采用复制以实现容错。然而&#xff0c;现有的分布式KV存储通常在同一索引结构中管理所有副本&#xff0c;例如LSM-Tree&#xff0c;从而导致复制冗余之外的大量I/O成本。 本文方法 提…

禁止safari浏览器网页双击缩放功能

普通浏览器 普通浏览器&#xff0c;只需要增加meta标签禁止缩放功能就行了 <meta content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalable0;" name"viewport" /> user-scalableno或0 //禁止双指缩放页面initial-scale1.0…

【喜讯】优积科技CEO刘其东当选第十届杨浦区科协常委委员!

2023年09月21日&#xff0c;上海市杨浦区科学技术协会第十次代表大会于杨浦区人民政府机关2号楼四楼礼堂隆重召开&#xff01;公司CEO刘其东、COO周兴文、CPO胡艳玲、PM何壮志等来自全区各界的近三百名科技工作者代表参加会议。 大会现场 上海市杨浦区委书记薛侃&#xff0c;上…

Flutter中高级JSON处理:使用json_serializable进行深入定制

Flutter中高级JSON处理 使用json_serializable库进行深入定制 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/1363…

针对KZG承诺和高效laconic OT的extractable witness encryption

1. 引言 2024年以太坊基金会等成员论文 Extractable Witness Encryption for KZG Commitments and Efficient Laconic OT&#xff0c;开源代码实现见&#xff1a; https://github.com/rot256/research-we-kzg&#xff08;Rust&#xff09; 在该论文中&#xff0c;提供了一种…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(八)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型&#xff0c;由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”&#xff08;そら sora&#xff09;&#xff0c;即天空之意&#xff0c;以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

5G-A,未来已来

目前&#xff0c;全国首个5G-A规模组网示范完成。这项由北京联通携手华为共同打造的示范项目&#xff0c;实现了北京市中心金融街、历史建筑长话大楼、大型综合性体育场北京工人体育场三个重点场景的连片覆盖。 实际路测结果显示&#xff0c;5G-A用户下行峰值速率达到10Gbps&am…

了解docker与k8s

随着 k8s 作为容器编排解决方案变得越来越流行&#xff0c;有些人开始拿 Docker 和 k8s 进行对比&#xff0c;不禁问道&#xff1a;Docker 不香吗&#xff1f; k8s 是 kubernetes 的缩写&#xff0c;8 代表中间的八个字符。 其实 Docker 和 k8s 并非直接的竞争对手两者相互依存…

安装使用zookeeper

先去官网下载zookeeper&#xff1a;Apache ZooKeeper 直接进入bin目录&#xff0c;使用powerShell打开。 输入: ./zkServer.cmd 命令&#xff0c;启动zookeeper。 zookeeper一般需要配合Dubbo一起使用&#xff0c;作为注册中心使用&#xff0c;可以参考另一篇博客&#xf…

300分钟吃透分布式缓存-17讲:如何理解、选择并使用Redis的核心数据类型?

Redis 数据类型 首先&#xff0c;来看一下 Redis 的核心数据类型。Redis 有 8 种核心数据类型&#xff0c;分别是 &#xff1a; & string 字符串类型&#xff1b; & list 列表类型&#xff1b; & set 集合类型&#xff1b; & sorted set 有序集合类型&…

基于springboot+vue的大学城水电管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

2024数字中国创新大赛·数据要素赛道“能源大数据应用赛”正式上线!参赛指南请查收

近日&#xff0c;由国网福建电力承办的2024数字中国创新大赛能源大数据应用赛正式上线发布。赛事按照数字中国建设、能源革命的战略要求&#xff0c;围绕能源数据要素x、能源数字技术、能源商业模式等热点设置赛题&#xff0c;诚邀社会各界为加快建成新型电力系统出谋划策&…

flutter 加密安全

前言&#xff1a;数据安全 数据的加密解密操作在 日常网络交互中经常会用到&#xff0c;现在密码的安全主要在于 秘钥的安全&#xff0c;如论 DES 3DES AES 还是 RSA, 秘钥的算法&#xff08;计算秘钥不固定&#xff09; 和 保存&#xff0c;都决定了你的数据安全&#xff1b;…

Vue 3, TypeScript 和 Element UI Plus:前端开发的高级技巧与最佳实践

Vue 3、TypeScript 和 Element UI Plus 结合使用时&#xff0c;可以提供一个强大且灵活的前端开发环境。以下是一些高级用法和技巧&#xff0c;帮助你更有效地使用这些技术&#xff1a; 1. Vue 3 高级特性 Composition API 使用 setup 函数: Vue 3 引入了 Composition API&am…

数据结构(C语言)代码实现(十)——链队列循环队列

目录 参考资料 链队列的实现 LinkQueue.h LinkQueue.cpp 测试函数test.cpp 测试结果 循环队列的实现&#xff08;最小操作子集&#xff09; 完整代码 测试结果 参考资料 数据结构严蔚敏版 链队列的实现 LinkQueue.h #pragma once #include <cstdio> #incl…

Vue自定义指令directives

1. 使用<script setup> <template><input v-focus"11111" /><input v-obj"{ id: 1, name: 这里是name }" /> </template> <script setup> //定义一个变量vFocus //命名方法使得DOM元素中可以用v-focus来显示 let vFo…