当前位置: 首页 > article >正文

SpringBoot + MyBatis + H2 实验报告

一、实验目的掌握 Spring Boot 项目基本结构熟悉 MyBatis 的基本使用Mapper、SQL 映射实现后端接口并通过 HTTP 请求访问实现数据库数据查询并返回给前端二、实验环境JDK17开发工具IntelliJ IDEA构建工具Maven框架Spring Boot 3.4.3持久层MyBatis数据库H2内存数据库三、项目结构hello├── src│ ├── main│ │ ├── java/com/example/hello│ │ │ ├── controller│ │ │ ├── service│ │ │ ├── mapper│ │ │ └── entity│ │ └── resources│ │ ├── application.properties│ │ ├── schema.sql│ │ └── data.sql├── pom.xml四、核心代码实现1️⃣ 实体类 Userpackage com.example.hello.entity;public class User {private Integer id;private String username;private String email;public Integer getId() { return id; }public void setId(Integer id) { this.id id; }public String getUsername() { return username; }public void setUsername(String username) { this.username username; }public String getEmail() { return email; }public void setEmail(String email) { this.email email; }}2️⃣ Mapper 接口package com.example.hello.mapper;import com.example.hello.entity.User;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;import java.util.List;Mapperpublic interface UserMapper {Select(SELECT * FROM user)ListUser findAll();}3️⃣ Service 层package com.example.hello.service;import com.example.hello.entity.User;import com.example.hello.mapper.UserMapper;import org.springframework.stereotype.Service;import java.util.List;Servicepublic class UserService {private final UserMapper userMapper;public UserService(UserMapper userMapper) {this.userMapper userMapper;}public ListUser getAllUsers() {return userMapper.findAll();}}4️⃣ Controller 层package com.example.hello.controller;import com.example.hello.entity.User;import com.example.hello.service.UserService;import org.springframework.web.bind.annotation.*;import java.util.List;RestControllerRequestMapping(/api/users)public class UserController {private final UserService userService;public UserController(UserService userService) {this.userService userService;}GetMappingpublic ListUser getUsers() {return userService.getAllUsers();}}5️⃣ 数据库初始化schema.sqlCREATE TABLE user (id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50),email VARCHAR(50));data.sqlINSERT INTO user (username, email) VALUES (alice, aliceexample.com);INSERT INTO user (username, email) VALUES (bob, bobexample.com);6️⃣ 配置文件spring.datasource.urljdbc:h2:mem:testdbspring.datasource.driver-class-nameorg.h2.Driverspring.datasource.usernamesaspring.datasource.passwordspring.h2.console.enabledtruemybatis.configuration.map-underscore-to-camel-casetrue五、运行结果启动项目后访问http://localhost:8080/api/users返回结果[{id: 1,username: alice,email: aliceexample.com},{id: 2,username: bob,email: bobexample.com}]六、关键问题与解决❌ 问题1JDK版本不兼容错误类文件具有错误的版本 61.0应为 52.0原因Spring Boot 3 必须使用 JDK 17系统默认是 JDK 1.8✅ 解决$env:JAVA_HOMEC:\Users\33502\.jdks\ms-17.0.18$env:PATH$env:JAVA_HOME\bin;$env:PATH❌ 问题2Maven 无法下载依赖证书问题错误PKIX path building failed✅ 解决使用阿里云镜像已自动生效或重新执行mvn clean install❌ 问题3mvnw.cmd 无法执行原因不在项目目录✅ 解决cd C:\Users\33502\Desktop\hello.\mvnw.cmd spring-boot:run七、实验总结本实验成功实现了Spring Boot 项目搭建MyBatis 查询数据库RESTful 接口开发H2 内存数据库初始化前后端数据交互通过本实验掌握了从数据库 → 后端 → 接口 的完整开发流程。

相关文章:

SpringBoot + MyBatis + H2 实验报告

一、实验目的掌握 Spring Boot 项目基本结构熟悉 MyBatis 的基本使用(Mapper、SQL 映射)实现后端接口并通过 HTTP 请求访问实现数据库数据查询并返回给前端二、实验环境JDK:17开发工具:IntelliJ IDEA构建工具:Maven框架…...

JSON语法结构

‌1、JSON 值类型‌1.1‌ 字符串(String)‌:必须用‌双引号‌包裹,如 "hello"。1.2‌ 数字(Number)‌:整数或浮点数,如 42、-3.14、1.23e4。1.3‌ 布尔值(Boolean)‌:true 或 false。1.4‌ 空值(Null)‌&…...

正确构建与还原特征分解:NumPy 中特征向量矩阵的列优先约定详解

本文详解为何用 NumPy 进行特征分解重建时 eigenvectors 顺序和方向“看似错乱”,核心在于明确 eig() 的输入/输出约定——特征向量必须以列(而非行)组织,且数值精度、排序与标量倍数等数学本质需同步理解。 本文详解为何用 …...

媒力无限:坚守初心,做有温度的品牌同行者

在流量喧嚣的时代,总有一群人坚守媒体初心,用专业与温度,做有价值的传播、有意义的事。北京媒力无限品牌文化传播有限公司,由一群深耕中央级媒体十余年的资深媒体人创立,始终以「发现潜力企业,让更多好企业…...

砸钱、站台、被拉黑:孙宇晨与特朗普家族的「塑料友谊」翻车了

撰文:Yangz,Techub News曾经把特朗普称为「加密行业恩人」的孙宇晨,这两天彻底翻脸了。4 月 12 日下午,孙宇晨突然发文炮轰由特朗普家族支持的 DeFi 项目 World Liberty Financial(WLFI)。他抛出了一连串指…...

从mescroll到z-paging:一位开发者的实战迁移心路与性能跃迁

1. 为什么我要从mescroll迁移到z-paging 作为一个在uni-app生态中摸爬滚打多年的老手,我几乎用过所有主流的分页组件。mescroll曾经是我的首选,直到我遇到了z-paging。这个转变不是一时兴起,而是经历了三个项目的实战检验后做出的决定。 记得…...

国标GB28181平台EasyGBS筑牢智慧交通视频安全技术底座

传统交通安防系统往往面临设备异构难以统一管理、视频共享存在安全隐患、应急处置响应迟缓等痛点。作为深耕视频监控领域的国标GB28181平台,EasyGBS创新性地将国密GB35114安全能力全面融入产品架构,为智慧交通打造了一个“可视、可控、可管、可信”的一体…...

构建现代化Vue应用界面:Shadcn-Vue组件化架构设计与实践指南

构建现代化Vue应用界面:Shadcn-Vue组件化架构设计与实践指南 【免费下载链接】shadcn-vue Vue port of shadcn-ui 项目地址: https://gitcode.com/gh_mirrors/sh/shadcn-vue 在Vue开发生态中,构建一致、美观且可维护的UI界面一直是开发团队面临的…...

终极炉石传说自动化脚本:如何让游戏任务自动完成?

终极炉石传说自动化脚本:如何让游戏任务自动完成? 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script 想要告别枯燥的日常任务&…...

仅限首批200名架构师开放:AIAgent因果推理模块参考实现v1.2(含Pyro+DoWhy+Custom SCM Runtime三引擎协同源码)

第一章:AIAgent架构中的因果推理模块 2026奇点智能技术大会(https://ml-summit.org) 因果推理模块是AIAgent实现可解释决策与反事实规划的核心组件,区别于传统统计相关性建模,它显式建模变量间的干预关系与结构因果模型(SCM&…...

容器网络方案

容器网络方案:构建云原生时代的连接桥梁 在云原生和微服务架构盛行的今天,容器技术已成为应用部署的核心载体。如何高效、安全地管理容器间的通信,成为开发者必须面对的挑战。容器网络方案正是解决这一问题的关键,它不仅需要满足…...

WMS 仓库管理系统核心功能模块全景图

该内容来自与AI的沟通,因为最近在参与人防门的项目,所以内容适配人防门行业。(一)基础数据管理模块(系统基石)物料主数据:管理钢板、型钢、密闭胶条、人防锁具等物料信息,支持批次 /…...

【三维重建】【3DGS系列】【深度学习】从概率密度到几何形体:3D高斯椭球的数学构建与可视化

1. 从概率密度到几何形体:3D高斯椭球的数学本质 第一次接触3D高斯泼溅(3DGS)技术时,最让我困惑的就是为什么一个概率分布函数能表示三维几何体。后来在复现论文代码时才发现,这背后的数学之美就藏在多维高斯分布的等概率密度面中。想象一下捏…...

学习推荐算法

算法推荐...

PX4无人机|MID360+FAST_LIO实战:从零搭建室内自主定位与悬停系统

1. 硬件准备与环境搭建 想要用PX4无人机搭配MID360激光雷达实现室内自主飞行,首先得把硬件凑齐。我用的是一台搭载微空科技MicoAir743V2飞控的450轴距无人机,机载电脑选用了12代i5处理器的迷你PC,跑的是Ubuntu 20.04系统。这里有个细节要注意…...

用TranslateGemma搭建私有翻译系统:数据安全,响应快速,效果稳定

用TranslateGemma搭建私有翻译系统:数据安全,响应快速,效果稳定 1. 为什么选择本地化翻译系统? 在当今全球化的工作环境中,高效准确的翻译工具已成为刚需。然而,传统的云端翻译服务存在几个关键痛点&…...

【2026奇点智能技术大会权威解码】:AIAgent代码审查的5大颠覆性范式与3大落地陷阱

第一章:2026奇点智能技术大会:AIAgent代码审查 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上,AIAgent代码审查成为核心实践议题之一。与传统静态分析工具不同,新一代AI驱动的审查代理具备上下文感知、…...

ACC自适应巡航系统实车测试全流程:从ISO标准到湿滑路面实战

ACC自适应巡航系统实车测试全流程:从ISO标准到湿滑路面实战 当一辆搭载ACC系统的测试车在暴雨中稳稳跟随前车通过积水路段时,仪表盘上跳动的蓝色车距标识不仅代表着技术的成熟度,更是对整套测试验证体系的无声褒奖。作为智能驾驶系统的核心功…...

收藏!8年开发转型AI大模型,踩遍坑后的真心话(小白/程序员必看)

做了8年后端开发,前几年一直在重复写业务逻辑、调接口、对接需求,在明确的需求边界里完成功能交付;直到两年前转型AI应用开发,从面对大模型“幻觉”时的手足无措,到如今能独立设计高可用、高可靠的AI服务,这…...

KAWASAKI 50999-2145R10控制卡

KAWASAKI 50999-2145R10 控制卡KAWASAKI 50999-2145R10 是用于川崎工业机器人控制系统中的主控制类电路板,通常安装在机器人控制柜内部,负责系统运行控制与信号处理,是机器人控制核心组件之一。用于川崎工业机器人控制系统属于主控制或核心控…...

算法训练营第二天| 27. 双指针

题目链接:https://leetcode.cn/problems/remove-element/ 视频讲解:https://www.bilibili.com/video/BV12A4y1Z7LP自己看到题目的第一想法看到题目要求原地移除数组中所有等于给定值的元素,并返回新长度,我第一反应是这肯定不能真…...

**发散创新:基于RBAC模型的开源权限管理系统设计与实现**在现代软件架构中,权限控制是系统安全的核

发散创新:基于RBAC模型的开源权限管理系统设计与实现 在现代软件架构中,权限控制是系统安全的核心组成部分。传统的角色权限管理(Role-Based Access Control, RBAC)虽已成熟,但在实际落地时仍面临灵活性差、扩展性弱等…...

客服机器人回答错误可自动撤回?智能 Agent 功能详解 + 消息撤回,发错答案快速补救?

在电商客服场景中,智能客服机器人已经成为企业降本增效的核心工具。然而,机器人再智能,也难免出现回答偏差、答非所问或信息过时的情况。客服人员忙碌接待时,往往来不及截图上报,就只能眼睁睁看着错误信息发给买家。这…...

区块链分片算法突破:MLGO信任场重塑物联网,Kafka06-进阶-尚硅谷。

微算法科技(NASDAQ: MLGO)基于信任场模型的异构物联网区块链分片算法研究 背景与挑战 区块链技术在物联网(IoT)领域的应用面临可扩展性瓶颈,传统区块链架构难以处理海量异构设备的交易需求。微算法科技(MLG…...

**发散创新:基于 OpenTelemetry 的分布式链路追踪实战与性能

发散创新:基于 OpenTelemetry 的分布式链路追踪实战与性能优化策略 在微服务架构日益普及的今天,可观测性(Observability) 已成为保障系统稳定性的核心能力之一。其中,链路追踪(Distributed Tracing&#x…...

告别繁琐!OpenClaw Windows 可视化一键部署安装教程

OpenClaw:本地 AI 智能体,28 万星标开源神器 OpenClaw是一款备受欢迎的开源本地AI智能体,主打**完全本地运行**与**智能自动化操控,在GitHub平台收获超28万星标,深受开发者与普通用户认可。它内置支持490多款当前主流热…...

Java 家政服务管理源码,订单、员工、财务一体化的功能

以下是一套基于Java技术栈的家政服务管理源码方案,可实现订单、员工、财务一体化管理,适配物业、门店等多场景需求:一、技术架构后端框架:采用Spring Boot 3.2作为核心框架,支持快速开发、简化配置,降低开发…...

Flutter网络请求详解与最佳实践

Flutter网络请求详解与最佳实践 什么是Flutter网络请求? 在Flutter应用中,网络请求是与后端服务器进行数据交互的重要方式。Flutter提供了多种网络请求的实现方式,包括内置的http包和第三方库如dio。 基本网络请求 1. 使用http包 http是Flutt…...

【医学影像AI合规生死线】:2026奇点大会联合NMPA、FDA、EMA发布的全球首个可解释性审计框架(含6类高风险误判溯源模板)

第一章:2026奇点智能技术大会:医学影像分析 2026奇点智能技术大会(https://ml-summit.org) 临床级模型推理流水线设计 大会首次发布开源框架MediFlow v2.1,专为多模态医学影像(CT、MRI、超声)实时推理优化。该框架支…...

【在Spring AI项目中如何通过代码为文档添加元信息的实用指南】

在Spring AI项目中如何通过代码为文档添加元信息的实用指南当你在处理大量数据时,无论是在Spring AI项目中还是其他任何地方,你可能会发现自己需要一种方法来组织和理解数据。这就是元信息(Metadata)发挥作用的地方。在本篇博客中…...