Springboot jPA+thymeleaf实现增删改查

项目结构

pom文件

配置相关依赖:

2.thymeleaf有点类似于jstl+el

th:href="@{url}表示这是一个链接

th:each="user : ${users}"相当于foreach,对user进行循环遍历

th:if进行if条件判断

{变量} 与 ${变量}的区别:

4.配置好application.yml配置文件

5.DAO层

6.实体类

@GeneratedValue(strategy = GenerationType.IDENTITY) 中的strategy = GenerationType.IDENTITY使用场景补充说明:
前端页面中只有三个username,password,age三个数据,我们设置strategy = GenerationType.IDENTITY以后只需要传入这三个属性我们就把他当作是一个User对象来看

.UserService和它的实现类

总结
这个最重要了,写博客的初衷也是梳理一些做本次项目的流程思路,因为在写的时候并没有这么顺畅,从昨天晚上有了想法开始做了一点后今天除了去上课其他时间都在做,每一步都失败了很多很多次,在把这个大致流程和内容写完后,我也发现了一个问题:
最后的数据库的id为什么把我之前删掉的数据id都跳过了!!!!是从7开始的,我都没有注意到这点。明天早上处理!

本次项目踩得坑:

1.昨天数据库怎么都连接不上,改了很多地方都不行,一直显示连接失败,含恨睡觉,早上又折腾了很久,终于发现,是配置文件yml放错了位置!放到了templates文件中了!!再也不会犯这个错误了。

2.在添加联系人时候一开始要么说不能进行POST请求或者说GET请求,因为我在一开始映射那里使用的是@PostMapping/@GetMapping。后来改成了@RequestMapping,OK解决了问题~下次记得直接就用@RequestMapping注解好了!

3.在更新sql语句那里一开始是选定条件where id,可是在后来的操作类中就没用到这个条件,导致在我修改成功的时候发现把所有的信息都修改了…于是我用name属性作为选定条件了,解决了这个问题。

4.在删除sql语句传入的参数是id,我在controller层里写的发现根本就没有用到id这个条件,当然结果也是点击删除按钮直接重定向到了list页面,并没有做删除操作。经过一番百度,我在controller里传入了id参数解决了这个问题(嗯嗯这一点是很基础的传入参数我都没有考虑到,以后一定会多考虑这点,以及继续多刷Java基础题。

本次项目还需要强化的地方
1.再多熟悉thymeleaf的属性,有些还需要百度,需要在实战中多多使用多多记住用过的。

2.参数传入传出一定不能忘记了。

3.crud的操作还需要多加熟悉和使用,明天会再过一遍的。

emmm还有很多想到在写(看别人的博客都很专业严谨,不知道我这样写的像流水账合适不合适…

本次项目继续要修复的问题或添加的功能
1.数据库删除了一条数据后id应该也相应抹除掉,插入的下一条数据不能跳过上条删掉的数据。

2完成login页面的编写,要先登录后才可以查看crud这个数据库。添加学习过得cache啦还有记住我功能,等等等想到再加上,反正要把这个登录页面后面的功能写的丰富一些,尽可能的多用到我学习到的知识点。明天开始丰富login页面做完之后再写接下来要添加的功能

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Vue+MySQL的体育商城系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分。体育用品市场作为其中的一个重要分支,也逐渐向线上转移。基于SpringBootVueMySQL的体育商城系统应运而生,旨在通过构建…

E34.【C语言】位段练习题

1.题目 分析下列代码中位段在内存中的排布(已知测试平台为VS2022) struct S {int a : 2;int b : 5;int c : 10;int d : 30; };int main() {struct S s { 0 };return 0; } 有关位段的知识点见64.【C语言】再议结构体(下)文 2.提示 VS满足:由低地址向高地址存储,按浪费空间…

Halo 专业版,含推荐码

立即体验 准备好体验 Halo 了吗?你可以查阅我们完整的部署文档,或者在线使用 Demo 进行体验。 部署指南:www.halo.run Halo 专业版在购买界面输入优惠码: lqMawh8t 使用优惠码优惠码购买专业版,单件 7 折&#xff…

【在Linux世界中追寻伟大的One Piece】进程间通信

目录 1 -> 进程间通信介绍 1.1 -> 进程间通信目的 1.2 -> 进程间通信发展 1.3 -> 进程间通信分类 1.3.1 -> 管道 1.3.2 -> System V IPC 1.3.3 -> POSIX IPC 2 -> 管道 2.1 -> 什么是管道 2.2 -> 匿名管道 2.3 -> 实例代码 2.4 -…

Java | Leetcode Java题解之第436题寻找右区间

题目&#xff1a; 题解&#xff1a; class Solution {public int[] findRightInterval(int[][] intervals) {int n intervals.length;int[][] startIntervals new int[n][2];int[][] endIntervals new int[n][2];for (int i 0; i < n; i) {startIntervals[i][0] inter…

回归预测 | Matlab基于SO-SVR蛇群算法优化支持向量机的数据多输入单输出回归预测

回归预测 | Matlab基于SO-SVR蛇群算法优化支持向量机的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-SVR蛇群算法优化支持向量机的数据多输入单输出回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab基于SO-SVR蛇群算法优化支持向量机的数据多…

828华为云征文|华为云Flexus云服务器X实例——部署EduSoho网校系统、二次开发对接华为云视频点播实现CDN加速播放

EduSoho 是一款功能强大的网校系统&#xff0c;能够帮助教育机构快速搭建在线学习平台。本文将详细介绍如何在华为云服务器上安装和部署 EduSoho 网校系统&#xff0c;以及二次开发对接华为云视频点播VOD来实现CDN加速播放。 edusoho本地存储的视频播放存在诸多弊端。一方面&a…

建立分支提交代码

git分支 git branch 产看当前分支 git branch -a 查看所有分支 git checkout 分支名 切换分支 git checkout -b 分支名 建立分支&#xff08;仅仅是在本地建立了&#xff0c;并没有关联线上&#xff09; git push --set-upstream origin 分支名 把本地分支推到先线上 gti add …

Spring Boot 整合MyBatis-Plus 实现多层次树结构的异步加载功能

文章目录 1&#xff0c;前言2&#xff0c;什么是多层次树结构&#xff1f;3&#xff0c;异步加载的意义4&#xff0c;技术选型与实现思路5&#xff0c;具体案例5.1&#xff0c;项目结构5.2&#xff0c;项目配置&#xff08;pom.xml&#xff09;5.3&#xff0c;配置文件&#xf…

天龙八部怀旧单机微改人面桃花+安装教程+GM工具+虚拟机一键端

今天给大家带来一款单机游戏的架设&#xff1a;天龙八部怀旧单机微改人面桃花。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xf…

Excel 设置自动换行

背景 版本&#xff1a;office 专业版 11.0 表格内输入长信息&#xff0c;发现默认状态时未自动换行的&#xff0c;找了很久设置按钮&#xff0c;遂总结成经验帖。 操作 1&#xff09;选中需设置的单元格/区域/行/列。 2&#xff09;点击【开始】下【对齐方式】中的【自动换…

JUC高并发编程4:集合的线程安全

1 内容概要 2 ArrayList集合线程不安全 2.1 ArrayList集合操作Demo 代码演示 /*** list集合线程不安全*/ public class ThreadDemo4 {public static void main(String[] args) {// 创建ArrayList集合List<String> list new ArrayList<>();for (int i 0; i <…

【有啥问啥】具身智能(Embodied AI):人工智能的新前沿

具身智能&#xff08;Embodied AI&#xff09;&#xff1a;人工智能的新前沿 引言 在人工智能&#xff08;AI&#xff09;的进程中&#xff0c;具身智能&#xff08;Embodied AI&#xff09;正逐渐成为研究与应用的焦点。具身智能不仅关注于机器的计算能力&#xff0c;更强调…

count(1),count(*)与 count(‘列名‘) 的区别

文章目录 COUNT(expr)性能对比count(*) VS count(1)count(*) VS count(列名) count(*)会走索引吗MyISAM count优化InnoDB如何处理count(*)总结 参考官方文档&#xff1a; https://dev.mysql.com/doc/refman/8.4/en/aggregate-functions.html#function_count COUNT(expr) coun…

Skyeye 云这几年的经历

前言 我是 17 年毕业的&#xff0c;之前也是在学校的实验室 (做开发的) 待了两年多时间&#xff0c;期间学了不少东西&#xff0c;学的东西也算是与时俱进了。最近两年也算是开源中国的常客了&#xff0c;每周都会保持自己项目的一个更新进度。 项目地址&#xff1a;skyeye-o…

Chainlit集成LlamaIndex实现知识库高级检索(BM25全文检索器)

检索原理 BM25Retriever类是一个基于BM25算法设计的检索器&#xff0c;它主要用于从一组文档或节点中检索出与查询最相关的文档或节点。这个类的设计目的是为了提高文本检索的效率和准确性&#xff0c;尤其是在处理大量文本数据时。 BM25&#xff08;Best Matching 25&#x…

[uni-app]小兔鲜-03多端打包上线

小程序打包 打包上线流程 打包命令: pnpm build:mp-weixin效果预览: 把打包后的文件导入微信开发者工具 (dist\build\mp-weixin)代码上传: 点击微信开发者工具的上传按钮, 上传代码,审核发布: 登录微信公众平台, 提交审核, 审核后发布辅助工具: 有些团队会使用开发辅助工具 mi…

Android OpenGLES2.0开发(三):绘制一个三角形

我们总是对陌生人太客气&#xff0c;而对亲密的人太苛刻 上一篇文章中&#xff0c;我们已经将OpenGL ES环境搭建完成。接下来我们就可以开始我们的绘图之旅了。该篇我们讲解最基本图形三角形的绘制&#xff0c;这是一切绘制的基础。在OpenGL ES的世界里一切图形都可以由三角形拼…

基于nodejs+vue的农产品销售管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

基于微信小程序爱心领养小程序设计与实现(源码+参考文档+定制开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…