13 springboot项目——准备数据和dao类
13.1 静态资源下载
https://download.csdn.net/download/no996yes885/88151513
13.2 静态资源位置
css样式文件放在static的css目录下;static的img下放图片;template目录下放其余的html文件。

13.3 创建两个实体类
导入依赖:lombok
<!--lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>
加入@Data注解:自动创建set、get等方法;
加入@AllArgsConstructor注解:自动创建有参构造方法;
加入NoArgsConstructor注解:自动创建无参构造方法;
Department:
package jiang.com.springbootstudy.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department {private Integer id;private String departmentName;
}
Employee:
package jiang.com.springbootstudy.pojo;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.Date;@Data
@NoArgsConstructor
public class Employee {private Integer id;private String lastName;private String email;private Integer gender; // 0 女 1 男private Department department;private Date birth;public Employee(Integer id, String lastName, String email, Integer gender, Department department) {this.id = id;this.lastName = lastName;this.email = email;this.gender = gender;this.department = department;this.birth = new Date(); // 一创建对象调用有参的话,自动生成了日期属性}
}
13.4 创建实体类对应的dao类
DepartmentDao:
注意,这里类中的加载顺序,静态的属性和代码要先加载,然后再加载其他的。使用静态代码块结合Map来模拟数据库,数据库的删查使用的是remove、values、get方法。
package jiang.com.springbootstudy.dao;import jiang.com.springbootstudy.pojo.Department;
import lombok.Data;
import org.springframework.stereotype.Repository;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@Data
@Repository
public class DepartmentDao {/*模拟数据库中的数据*/private static Map<Integer, Department> departments = null;static {departments = new HashMap<Integer, Department>();//创建一个部门表departments.put(101,new Department(101,"教学部"));departments.put(102,new Department(102,"市场部"));departments.put(103,new Department(103,"教研部"));departments.put(104,new Department(104,"运营部"));departments.put(105,new Department(105,"后勤部"));}// 获得所有部门信息public Collection<Department> getDepartments(){return departments.values();}// 通过id得到部门public Department getDepartmentById(Integer id){return departments.get(id);}
}
EmployeeDao:
package jiang.com.springbootstudy.dao;import jiang.com.springbootstudy.pojo.Department;
import jiang.com.springbootstudy.pojo.Employee;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;@Repository //自动注入需要的注解
public class EmployeeDao {private static Map<Integer, Employee> employees = null;// 员工所属的部门// 放数据,先加载静态的东西,比如说静态的遍历或者静态的代码@Autowired //自动注入private DepartmentDao departmentDao;static {employees = new HashMap<Integer, Employee>();//前面只是定义了成员变量的类型,并没有赋值,null无法调用put方法,所以要创建对象。employees.put(1001,new Employee(1001,"AA","A24736743@qq.com",0,new Department(101,"教学部")));employees.put(1002,new Employee(1002,"AA","B24736743@qq.com",1,new Department(101,"市场部")));employees.put(1003,new Employee(1003,"AA","C24736743@qq.com",0,new Department(101,"教研部")));employees.put(1004,new Employee(1004,"AA","D24736743@qq.com",1,new Department(101,"运营部")));employees.put(1005,new Employee(1005,"AA","E24736743@qq.com",0,new Department(101,"后勤部")));}// 主键自增private static Integer initId = 1006; // static和没有有什么区别?// 增加员工public void save(Employee employee){if (employee.getId()==null){employee.setId(initId++);//自增变量的值也会改变}employee.setDepartment(departmentDao.getDepartmentById(employee.getDepartment().getId())); //这句话可以忽略,原理是调用了接口的getDepartmentById方法传入从员工的部门属性获取的部门id得到一个部门,然后把部门属性赋值给了员工employees.put(employee.getId(),employee);}// 查询全部员工信息public Collection<Employee> getAll(){ //集合需要掌握一下return employees.values();}// 通过id查询员工public Employee getEmployeeById(Integer id){return employees.get(id);}// 删除员工public void delete(Integer id){employees.remove(id);}}
相关文章:
13 springboot项目——准备数据和dao类
13.1 静态资源下载 https://download.csdn.net/download/no996yes885/88151513 13.2 静态资源位置 css样式文件放在static的css目录下;static的img下放图片;template目录下放其余的html文件。 13.3 创建两个实体类 导入依赖:lombok <!…...
Java 基础进阶总结(一)反射机制学习总结
文章目录 一、初识反射机制1.1 反射机制概述1.2 反射机制概念1.3 Java反射机制提供的功能1.4 反射机制的优点和缺点 二、反射机制相关的 API 一、初识反射机制 1.1 反射机制概述 JAVA 语言是一门静态语言,对象的各种信息在程序运行时便已经确认下来了,内…...
ERROR: transport error 202: gethostbyname: unknown host报错解决方案
Java 9 syntax for remote debugger: -agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005Java 8 不适用 *:port,应该使用: -agentlib:jdwptransportdt_socket,servery,suspendn,address5005参考 https://stackoverflow.com/questions/50344957/ja…...
PyTorch高级教程:自定义模型、数据加载及设备间数据移动
在深入理解了PyTorch的核心组件之后,我们将进一步学习一些高级主题,包括如何自定义模型、加载自定义数据集,以及如何在设备(例如CPU和GPU)之间移动数据。 一、自定义模型 虽然PyTorch提供了许多预构建的模型层&#…...
JavaEE——SpringMVC中的常用注解
目录 1、RestController (1)、Controller (2)、ResponseBody 2、RequestMappping (1)、定义 (2)、使用 【1】、修饰方法 【2】、修饰类 【3】、指定方法类型 【4】、简化版…...
【严重】Metabase 基于H2引擎的远程代码执行漏洞
漏洞描述 Metabase 是一个开源的数据分析和可视化工具。 由于 CVE-2023-38646 的补丁(从H2 JDBC连接字符串中删除INIT脚本以防止命令注入)修复不完全,Metabase 仍受到命令注入的影响。攻击者可使用 H2 作为数据库引擎,通过 /api/setup/validate 端点发…...
0基础学习VR全景平台篇 第75篇:多现场
多现场是指将多台设备的直播画面整合到一个直播活动链接里面,让用户自行选择切换要看哪个直播画面的功能。既可以是同一个活动的不同角度直播,也可以是异地的直播。多现场不需要导播台,并且可以同时支持平面直播和VR直播的混合切换。多现场仅…...
html:去除input/textarea标签的拼写检查
默认情况下,textarea 会启动拼写和语法检查,表现效果就是单词拼写错误会出现红色下划线提示 <textarea></textarea>效果 有时,我们并不需要拼写检查,可以通过配置属性spellcheck"false" 去除拼写和语法检…...
自然语言处理从入门到应用——LangChain:提示(Prompts)-[提示模板:创建自定义提示模板和含有Few-Shot示例的提示模板]
分类目录:《自然语言处理从入门到应用》总目录 创建自定义提示模板 假设我们希望LLM根据函数名称生成该函数的英文语言解释。为了实现这个任务,我们将创建一个自定义的提示模板,以函数名称作为输入,并格式化提示模板以提供函数的…...
d3dx9_30.dll如何修复,分享几种一键修复方法
d3dx9_30.dll是DirectX 的一个动态链接库文件,它包含了一些用于图形和游戏的函数和资源。在了解d3dx9_30.dll的解决方法和丢失原因之前,我们先来了解一下DirectX。DirectX是一套由微软开发的多媒体和游戏编程接口(API)集合。它提供…...
6.8 稀疏数组
6.8 稀疏数组 稀疏数组是一种数据结构,在程序中数据结构的思想,是非常重要的。例如 需求:编写五子棋游戏中,有存盘退出和续上盘的功能。分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义…...
ROS版本的ORB-SLAM3用RealSense D455相机实时运行测试
配置环境 1. C11 检查G版本,查看是否支持C11 一般g版本大于4.7即可 g -v 2. Pangolon 地址:https://github.com/stevenlovegrove/Pangolin 先安装OpenGL,Glew ### 编译orb-slam3发现pangolin编译错误排查的环境问题 sudo apt install p…...
Vue中对对象内容调用的Demo
目录 1.对象作为数据: 2.对象数组 在Vue中,你可以通过对象的键来调用对象中的各个部分的内容。下面是一些使用Vue调用对象各部分内容的示例: 1.对象作为数据: 如果你在Vue实例的数据中有一个对象,你可以使用点语法来…...
语音识别 — 特征提取 MFCC 和 PLP
一、说明 语音识别是一种技术,通过计算机和软件系统,将人们的口头语言转换为计算机可读的文本或命令。它使用语音信号处理算法来识别和理解人类语言,并将其转换为计算机可处理的格式。语音识别技术被广泛应用于许多领域,如语音助手…...
BES 平台 SDK之按键的配置
本文章是基于BES2700 芯片,其他BESxxx 芯片可做参考,如有不当之处,欢迎评论区留言指出。仅供参考学习用! BES 平台 SDK之LED的配置_谢文浩的博客-CSDN博客 关于系统LED简介可参考上一篇文章。链接如上所示! 一&…...
【Golang系统开发】搜索引擎(1) 如何快速判断网页是否已经被爬取
文章目录 1. 写在前面2. 数组存储3. 位图存储3.1 位图简介3.2 链表法3.3 开放寻址法 1. 写在前面 在实际工作中,我们经常需要判断一个对象是否存在,比如判断用户注册登陆时候,需要判断用户是否存在,再比如搜索引擎中的爬虫&#x…...
记录--一个好用的轮子 turn.js 实现仿真翻书的效果
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 国际惯例,官网链接 官网传送门 Github地址 github上有几个demos例子,介绍了基础用法。 我参考官网的例子,写了一个demo示例 安装 turn.js 依赖 jquery 库࿰…...
《Spring Boot源码解读与原理分析》书籍推荐
Spring Boot是目前Java EE开发中颇受欢迎的框架之一。依托于底层Spring Framework的基础支撑,以及完善强大的特性设计,Spring Boot已成为业界流行的应用和微服务开发基础框架。 《Spring Boot源码解读与原理分析》共14章,分为4个部分。第一部…...
C++ 什么时候使用 vector、list、以及 deque?
如果需要高效地快速访问(随即存取),并且不在乎插入和删除的效率,使用 vector 如果需要大量的插入和删除,而且不关心快速访问 (随即存取) ,使用 list 如果需要快速访问 (随即存取) ,并且关心两端数据插入和删除&#…...
视频创作者福音,蝰蛇峡谷NUC12SNKI7视频剪辑测评
英特尔NUC绝对是PC市场里最为特殊的产品,相比众多OEM设计制造的台式机而言,英特尔NUC主打小体积、高度集成化、强扩展性以及尽可能优异的性能表现。尤其是在主打游戏体验的NUC产品出现之后,更是将极致体验演绎到了极致。 在搭载独显的幻影峡谷…...
别再让广播闪退!Android 14广播安全新规RECEIVER_EXPORTED的保姆级避坑指南
Android 14广播安全新规:RECEIVER_EXPORTED的深度解析与实战指南 去年秋天,当Google正式发布Android 14时,许多开发者发现原本运行良好的广播注册代码突然开始抛出SecurityException。这个看似简单的API变更背后,其实是Android团队…...
如何选择专业的液晶面板废气治理厂家
从智能手机到超高清大屏,液晶面板已成为信息时代不可或缺的核心组件。然而,在其精密制造过程中,光刻、显影、刻蚀等工序会产生大量成分复杂的有机废气、酸性气体及含尘废气。随着环保标准日益严格及面板厂产能不断扩张,【液晶面板…...
BallonsTranslator:深度学习驱动的漫画翻译自动化工具
BallonsTranslator:深度学习驱动的漫画翻译自动化工具 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地址: https:…...
实战演练:基于快马平台开发结合openclaw配置模型的工业分拣模拟系统
最近在做一个工业分拣系统的模拟项目,尝试用openclaw配置模型来实现对不同形状物体的智能抓取。整个过程在InsCode(快马)平台上完成,发现这个工具特别适合快速搭建这类机器人控制原型。记录下具体实现过程: 场景搭建 首先用三维引擎创建了一个…...
AgentCPM-Report镜像免配置方案:Pixel Epic一键部署教程(含Streamlit定制)
AgentCPM-Report镜像免配置方案:Pixel Epic一键部署教程(含Streamlit定制) 1. 像素史诗:当科研遇上RPG冒险 想象一下,撰写专业研究报告的过程变成了一场像素风格的RPG冒险。这就是Pixel Epic带来的独特体验——它将A…...
手把手排查 DeepSpeed CPUAdam 报错:从 AttributeError 到成功编译 Op 的完整日志分析
深度解析DeepSpeed CPUAdam编译报错:从日志分析到精准修复 当你第一次看到AttributeError: DeepSpeedCPUAdam object has no attribute ds_opt_adam这个错误时,可能会感到困惑。这个错误背后隐藏着DeepSpeed框架中CPUAdam优化器与CUDA环境之间复杂的交互…...
颠覆式项目管理工具GanttProject:让团队协作效率提升300%的开源解决方案
颠覆式项目管理工具GanttProject:让团队协作效率提升300%的开源解决方案 【免费下载链接】ganttproject Official GanttProject repository 项目地址: https://gitcode.com/gh_mirrors/ga/ganttproject GanttProject是一款完全免费的开源甘特图工具ÿ…...
惠普M232,M233,M234,M235,M236屏幕报错rd,修复工具
惠普M232,M233,M234,M235,M236屏幕报错rd,修复工具,惠普降级固件 链接:https://pan.baidu.com/s/1J7PN4m4fbIzku9DqBFg_nw?pwd0000 提取码:0000 复制这段内容后打开百度网盘手机App,操作更方便哦 备用下载:下载...
GD32外部晶振配置不当引发串口乱码的时钟树深度解析与修复
1. 时钟树:微控制器的心跳发生器 第一次用GD32调串口的朋友,八成遇到过这样的场景:代码明明和官方例程一模一样,烧录后串口助手却疯狂输出乱码。这种时候千万别急着怀疑人生,问题的根源往往藏在那个不起眼的外部晶振配…...
YOLOv11模型转换避坑指南:如何正确修改pnnx.py适配不同输入尺寸
YOLOv11模型转换避坑指南:如何正确修改pnnx.py适配不同输入尺寸 在计算机视觉领域,YOLO系列模型因其高效的检测性能而广受欢迎。YOLOv11作为该系列的最新成员,在保持实时性的同时进一步提升了检测精度。然而,当我们需要将训练好的…...
