idea2023 springboot2.7.5+mybatis+jsp 初学单表增删改查
- 创建项目


因为2.7.14使用量较少,特更改spring-boot为2.7.5版本



配置端口号

打开Sm01Application类,右键运行启动项目,或者按照如下箭头启动

启动后,控制台提示如下信息表示成功

此刻在浏览器中输入:http://localhost:8081/hello 就可以看到如下得效果,就表示你成功了。

- 加入mybatis
2.1在pom中加入,如下依赖
<!--lombok不仅方便编写,同时也让我们的代码更简洁。比如常见的Getter&Setter、toString()、构造函数等等。--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version></dependency><!--C标签库得使用--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!--mybatis启动器--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency>
2.2在application.properties中增加如下配置
spring.datasource.url=jdbc:mysql://localhost:3306/jdbc08
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml
2.3 在resources 下创建一个文件夹叫mapper
2.4在src下创建bean层,
@Data
public class DeptBean {private int did;private String dname;}
2.5在src下创建mapper层,并写接口
@Mapper
public interface DeptMapper {public void addDept(String name);public void delDept(int id);public void updateDept(DeptBean deptBean);public DeptBean byidDept(int id);public List<DeptBean> allDept();
}
2.6 在resource下得mapper文件夹中新建一个文件DeptMapper.xml,如下得com.example.sm_01是项目中的包名
如下请注意:namespace的路径为2.5步中类的全路径
<?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.sm_01.mapper.DeptMapper"><insert id="addDept" >insert into tb_dept (dname) values (#{values})</insert><delete id="delDept">delete from tb_dept where did=${id}</delete><update id="updateDept" parameterType="com.example.sm_01.bean.DeptBean">update tb_dept set dname=#{dname} where did=#{did}</update><select id="byidDept" resultType="com.example.sm_01.bean.DeptBean">select * from tb_dept where did=#{id}</select><select id="allDept" resultType="com.example.sm_01.bean.DeptBean">select * from tb_dept</select>
</mapper>
2.7在src下创建service层,创建如下类
@Service
public class DeptService {@Autowiredprivate DeptMapper deptMapper;public void addDeptService(String name){deptMapper.addDept(name);}public void delDeptService(int id){deptMapper.delDept(id);}public void updateDeptService(DeptBean deptBean){deptMapper.updateDept(deptBean);}public DeptBean byidDeptService(int id){return deptMapper.byidDept(id);}public List<DeptBean> allDeptService(){return deptMapper.allDept();}}
2.8在src下创建controller层,并创建如下类:
@Controller
public class DeptController {@Autowiredprivate DeptService deptService;@RequestMapping("addDept")public String addDept(String dname){deptService.addDeptService(dname);return "allDept";}@RequestMapping("allDept")public String allDept(Model model){model.addAttribute("alldept",deptService.allDeptService());return "deptAll.jsp";}@RequestMapping("byidDept")public String byidDept(int id ,Model model){model.addAttribute("byidDept",deptService.byidDeptService(id));return "deptUpdate.jsp";}@RequestMapping("delDept")public String delDept(int id){deptService.delDeptService(id);return "allDept";}@RequestMapping("updateDept")public String updateDept(DeptBean deptBean){deptService.updateDeptService(deptBean);return "allDept";}
}
如上操作后:代码目录如下:

接下来我们创建jsp目录:
2.9 点击File -->project stru…






然后就看到webapps目录一个小篮圈,然后请在这个目录下新建jsp
若是这里jsp访问404,则请将weapps目录修改为webapp

deptAdd.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><form action="addDept" method="post">部门名称:<input type="text" name="dname" /><input type="submit" value="添加"></form>
</body>
</html>
deptAll.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Title</title>
</head>
<body><c:forEach items="${alldept}" var="dd">${dd.dname}<a href="delDept?id=${dd.did}">del</a><a href="byidDept?id=${dd.did}">update</a><br/></c:forEach>
</body>
</html>
deptUpdate.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head><title>Title</title>
</head>
<body>
<form action="updateDept" method="post"><input type="hidden" name="did" value="${byidDept.did}">部门名称:<input type="text" name="dname" value="${byidDept.dname}"/><input type="submit" value="修改">
</form>
</body>
</html>
如上已完成,若想下载完整代码,请去资源寻找
相关文章:
idea2023 springboot2.7.5+mybatis+jsp 初学单表增删改查
创建项目 因为2.7.14使用量较少,特更改spring-boot为2.7.5版本 配置端口号 打开Sm01Application类,右键运行启动项目,或者按照如下箭头启动 启动后,控制台提示如下信息表示成功 此刻在浏览器中输入:http://lo…...
大语言模型之四-LlaMA-2从模型到应用
最近开源大语言模型LlaMA-2火出圈,从huggingface的Open LLM Leaderboard开源大语言模型排行榜可以看到LlaMA-2还是非常有潜力的开源商用大语言模型之一,相比InstructGPT,LlaMA-2在数据质量、培训技术、能力评估、安全评估和责任发布方面进行了…...
Android 远程真机调研
背景 现有的安卓测试机器较少,很难满足 SDK 的兼容性测试及线上问题(特殊机型)验证,基于真机成本较高且数量较多的前提下,可以考虑使用云测平台上的机器进行验证,因此需要针对各云测平台进行调研、比较。 …...
B. 攻防演练 (2021CCPC女生赛)
题意: 给出一个长度为n的字符,字符是前m个小写字母,有q个询问,每次询问一个最短子序列的长度满足不是[l,r]内任意一个子序列 思路: [l,r]中子序列可以看成是从[l,r]中的某个位置开始,跳到下一个字符的位…...
MAC环境,在IDEA执行报错java: -source 1.5 中不支持 diamond 运算符
Error:(41, 51) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符) 进入设置 修改java版本 pom文件中加入 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin&l…...
Tomcat日志中文乱码
修改安装目录下的日志配置 D:\ProgramFiles\apache-tomcat-9.0.78\conf\logging.properties java.util.logging.ConsoleHandler.encoding GBK...
最小生成树 — Prim算法
同Kruskal算法一样,Prim算法也是最小生成树的算法,但与Kruskal算法有较大的差别。 Prim算法整体是通过“解锁” “选中”的方式,点 -> 边 -> 点 -> 边。 因为是最小生成树,所以针对的也是无向图,所以可以随意…...
如何使用PHP Smarty模板进行AJAX交互?
首先,我们要明白,AJAX是一种在无需刷新整个页面的情况下,与服务器进行通信的技术。这对于改善用户体验来说,是个大宝贝。而PHP Smarty模板则是PHP的一种模板引擎,它使得设计和开发人员能够更好地分离逻辑和显示。 现在…...
nginx反向代理、负载均衡
修改nginx.conf的配置 upstream nginx_boot{# 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2server 192.168.87.143 weight100 max_fails2 fail_timeout30s; server 192.168.87.1 weight200 max_fails2 fail_timeout30s;# 这里的…...
React Native文本添加下划线
import { StyleSheet } from react-nativeconst styles StyleSheet.create({mExchangeCopyText: {fontWeight: bold, color: #1677ff, textDecorationLine: underline} })export default styles...
微服务-Nacos(配置管理)
配置更改热更新 在Nacos中添加配置信息: 在弹出表单中填写配置信息: 配置获取的步骤如下: 1.引入Nacos的配置管理客户端依赖(A、B服务): <!--nacos的配置管理依赖--><dependency><groupId&…...
UML图绘制 -- 类图
1.类图的画法 类 整体是个矩形,第一层类名,第二层属性,第三层方法。 :public- : private# : protected空格: 默认的default 对应的类写法。 public class Student {public String name;public Integer age;protected I…...
SAP ME2L/ME2M/ME3M报表增强添加字段(包含:LMEREPI02、SE18:ES_BADI_ME_REPORTING)
ME2L、ME2M、ME3M这三个报表的字段增强,核心点都在同一个结构里 SE11:MEREP_OUTTAB_PURCHDOC 在这里加字段,如果要加的字段是EKKO、EKPO里的数据,直接加进去,啥都不用做,就完成了 如果要加的字段不在EKKO和EKPO这两个…...
探讨uniapp的数据缓存问题
异步就是不管保没保存成功,程序都会继续往下执行。同步是等保存成功了,才会执行下面的代码。使用异步,性能会更好;而使用同步,数据会更安全。 1 uni.setStorage(OBJECT) 将数据存储在本地缓存中指定的 key 中&#x…...
服务的拆分
纵向拆分 是从业务维度进行拆分。标准是按照业务的关联程度来决定,关联比较密切的业务适合拆分为一个微服务,而功能相对比较独立的业务适合单独拆分为一个微服务。 以社交App为例,你可以认为首页信息流是一个服务,评论是一个服务…...
Uniapp Syntax Error: Error: Unbalanced delimiter found in string
报错 in ./src/pages/user/components/tasks.vue?vue&typescript&langjs&Syntax Error: Error: Unbalanced delimiter found in string...这边导致文件的原因:可能是条件编译语法不小心删了某个字符,导致不全,无法形成一对。 //…...
视频集中存储EasyCVR视频汇聚平台定制项目增加AI智能算法
安防视频集中存储EasyCVR视频汇聚平台,可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等功能。为了便…...
确保Django项目的稳定运行和持续改进
确保Django项目的稳定运行和持续改进 引言 Django是一个强大的Python Web框架,用于构建高效、可靠的Web应用程序。然而,部署一个Django项目并不意味着工作已经完成。在项目上线之后,确保项目的稳定运行并不断进行改进是非常重要的。本博客将…...
HAProxy负载均衡 代理
1.安装 yum -y install haproxy 2.配置文件 /etc/haproxy 下 global log 127.0.0.1 local2 #日志定义级别 chroot /var/lib/haproxy #当前工作目录 pidfile /var/run/haproxy.pid #进程id maxconn 4000 #最大连接…...
前端面试的游览器部分(8)每天10个小知识点
目录 系列文章目录前端面试的游览器部分(1)每天10个小知识点前端面试的游览器部分(2)每天10个小知识点前端面试的游览器部分(3)每天10个小知识点前端面试的游览器部分(4)每天10个小知…...
UltraScale架构FPGA功耗优化技术与工程实践
1. UltraScale架构的功耗优化技术全景解析在当今高性能计算和通信领域,功耗已成为FPGA选型的决定性因素之一。Xilinx UltraScale架构通过多层次的创新,在20nm工艺节点上实现了显著的功耗降低。作为深耕FPGA设计十余年的工程师,我将从实际应用…...
AI计算工作量化模型:跨硬件效能评估与能效优化
1. AI工作量化模型的核心价值与应用场景在当今AI技术快速渗透到各行各业的背景下,如何准确衡量AI系统的计算效率和工作量成为一个关键问题。传统上,我们使用FLOPs(每秒浮点运算次数)等指标来评估计算性能,但这些指标存…...
ChatGPT购物功能支持平台速查表,含响应延迟、支付闭环率、商品图识别准确率等5项硬指标实测数据
更多请点击: https://intelliparadigm.com 第一章:ChatGPT购物功能支持哪些平台 截至2024年,ChatGPT原生并不直接集成电商交易能力,但通过官方插件(Plugins)和第三方API集成,可在特定授权环境…...
Mastra AI编排框架:构建生产级智能工作流的完整指南
1. 项目概述:一个面向开发者的AI应用编排框架最近在折腾AI应用开发的朋友,估计都绕不开一个核心痛点:如何把不同的AI模型、工具和数据源高效地串联起来,形成一个稳定、可维护的智能工作流。无论是想做个智能客服,还是搞…...
Arm DSTREAM调试接口设计与JTAG/SWD协议详解
1. Arm DSTREAM系统与调试接口设计指南1.1 调试接口技术基础1.1.1 JTAG协议架构解析JTAG(Joint Test Action Group)标准IEEE 1149.1定义了五线制调试接口:TCK:测试时钟,同步所有JTAG操作TMS:测试模式选择&a…...
从开源模型到API服务:OpenClaw部署实战与Docker+FastAPI方案解析
1. 项目概述:从开源模型到可部署服务的跨越最近在折腾大语言模型本地部署的朋友,可能都绕不开一个名字:OpenClaw。这个由智源研究院开源的模型,以其在代码生成和数学推理上的出色表现,吸引了不少开发者和研究者的目光。…...
Sealos云操作系统:基于Kubernetes内核的桌面化云原生平台实践
1. 项目概述:从“集群”到“桌面”的云原生新范式如果你和我一样,长期在云原生领域摸爬滚打,那么对“Kubernetes集群”的部署和管理一定不会陌生。从早期的kubeadm手动搭建,到后来各种发行版和托管服务,我们一直在追求…...
四步法快速诊断与修复AKShare金融数据接口的数据异常问题
四步法快速诊断与修复AKShare金融数据接口的数据异常问题 【免费下载链接】aktools AKTools is an elegant and simple HTTP API library for AKShare, built for AKSharers! 项目地址: https://gitcode.com/gh_mirrors/ak/aktools 作为量化投资领域的重要工具ÿ…...
为防数据泄露!教你拆除2024款RAV4混动汽车调制解调器和GPS
拆除2024款RAV4混动汽车调制解调器和GPS,从源头上阻止数据传输!现代汽车就像装在轮子上的电脑,配备众多传感器,会回传位置、速度等遥测数据。其车内和车外摄像头、麦克风及调制解调器默认开启,且难关闭,数据…...
Arduino驱动多LED矩阵:I2C总线与位图编程实现动态表情动画
1. 项目概述:用Arduino驱动多个LED矩阵,打造动态表情动画如果你玩过Arduino和LED点阵,大概都体验过点亮单个8x8矩阵的乐趣——显示个字符、画个简单图案。但当你想要做一个更酷的项目,比如一个能眨眼、能变换嘴型的机器人脸&#…...
