【极简版】SpringBoot+SpringData JPA 管理系统

基于MP2642GR-Z与STM32F030RC的两串电池被动均衡方案设计与实现 电池管理系统(BMS)中,被动均衡因电路简单、成本低、可靠性高,在储能与备用电源场景中仍是主流选择。其原理是通过电阻消耗高电压电芯的多余电量,实现串联电芯间的电压均衡,从而提升整组电池的可用容量与循环寿命。在工程实践中,集成均衡MOSFET的前端芯片与MCU配合,可简化外围电路并提高采集精度。该技术广泛应用于小型光伏储能、通信基站备电及便携式UPS等低压场景。本文以MP2642GR-Z和STM32F030RC为例,详细阐述两串电池被动均衡的硬件设计、策略实现与调试经验。 阅读详情

前言

只有光头才能变强。

文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y

在上一篇中已经讲解了如何从零搭建一个SpringBoot+SpringData JPA的环境,测试接口的时候也成功获取得到数据了。

我的目的是做一个十分简易的管理系统,这就得有页面,下面我继续来讲讲我是怎么快速搭一个管理系统的。

ps:由于是简易版,我的目的是能够快速搭建,而不在于代码的规范性。(所以在后面你可能会看到很多丑陋的代码)

一、搭建管理系统

1.1. 搭建页面

在上一篇的最后,我们可以通过http://localhost:8887/user接口拿到我们User表所有的记录了。我们现在希望把记录塞到一个管理页面上(展示起来)。

作为一个后端,我HTML+CSS实在是丑陋,于是我就去找了一份BootStrap的模板。首先,我进到bootStrap的官网,找到基本模板这一块:

bootStrap

我们在里边可以看到挺多的模板的,这里选择一个控制台页面:

bootstrap example

于是,就把这份模板下载下来,在本地中运行起来试试看。官方给出的链接是下载整一份文档,我们找到想要的页面即可:

files

于是我们将这两份文件单独粘贴在我们的项目中,发现这HTML文件需要bootstrap.css、bootstrap.js、jquery的依赖(原来用的是相对路径,其实我们就是看看相对路径的文件在我们这有没有,如果没有,那就是我们需要的)。这里我们在CDN中找找,导入链接就行了。

bootcdn

于是我们就将所缺的依赖替换成BootCDN的依赖,最重要的几个依赖如下:

<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.0/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>

如无意外的话,我们也能在项目中正常打开页面。

1.1.2 把数据塞到页面上

把数据塞到页面上,有两种方案:要么就后端返回json给前端进行解析,要么就使用模板引擎。而我为了便捷,是不想写JS代码的。所以,我使用freemarker这个模板引擎。

  • 为什么这么多模板引擎,我选择这个?因为我只会这个!

在SpringBoot下使用freemarker也是非常简单,首先,我们需要加入pom文件依赖:

<!--freemarker-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

随后,在application.yml文件中,加入freemarker的配置:

  # freemarker配置
  freemarker:
    suffix: .ftl
    request-context-attribute: request
    expose-session-attributes: true
    content-type: text/html
    check-template-location: true
    charset: UTF-8
    cache: false
    template-loader-path: classpath:/templates

这里我简单解释一下:freemarker的文件后缀名为.ftl,程序从/templates路径下加载我们的文件。

于是乎,我将本来是.html的文件修改成.ftl文件,并放在templates目录下:

templates

接下来将我们Controller得到的数据,塞到Model对象中:

    /**
     * 得到所有用户
     */
    @GetMapping(value = "/user", produces = {"application/json;charset=UTF-8"})
    public String  getAllUser ( Model model) {
        List<User> allUser = userService.getAllUser();
        model.addAttribute("users", allUser);
        return "/index";
    }

图片如下:

user code

在ftl文件中,我们只要判断数据是否存在,如果存在则在表格中遍历出数据就行了:

   <#if users?? && (users?size > 0)>
     <#list users as user>
       <tr>
         <td>${user.userId}</td>
         <td>${user.userNickname}</td>
         <td>${user.userEmail}</td>
         <td>${user.actiState}</td>
         <td><a href="http://localhost:8887/deleteUser?id=${user.userId}">删除</a></td>
       </tr>
       </#list>
     <#else>
       <h3>还没有任何用户</h3>
   </#if>

图片如下:

code image

删除的Controller代码如下:

/**
 * 根据ID删除某个用户
 */
@GetMapping(value = "/deleteUser", produces = {"application/json;charset=UTF-8"})
public String  deleteUserById (String id,Model model) {

  userService.deleteUserById(id);
  return getAllUser(model);

}

我们再找几张自己喜欢的图片,简单删除一些不必要模块,替换成我们想要的文字,就可以得到以下的效果了:

result iamge

至于图片上的评论管理、备忘录管理的做法都如上,我只是把文件再复制一次而已(期中没有写任何的JS代码,懒)。

在编写的期中,要值得注意的是:静态的文件一般我们会放在static文件夹中。

项目的目录结构如下:

project structure

最后

本文涉及到的链接(bootstrap & cdn):

乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!

帅的人都关注了

觉得我的文章写得不错,不妨点一下赞!

SpringBoot与JPA深度整合实战指南 本文还有配套的精品资源,点击获取 简介:本文详细介绍了SpringBoot与Java Persistence API(JPA)结合使用的方法,并展示了如何构建高效的数据访问层。内容涵盖SpringBoot对JPA的支持、数据源配置、实体类与表映射、自动化Repository接口、事务管理、JPA高级特性以及性能优化等核心概念。通过实例代码和详细解释,帮助开发者掌握Sprin... 阅读详情

相关推荐

SpringBoot+AngularJs就业信息管理系统

就业信息网架构:后:Springboot+Mybatis;前:AngualrJs1.4+bootstrap 功能:后台管理端:毕业生简历信息管理、招聘信息管理、就业信息发布、招聘会管理;前台数据展示

SpringBoot整合JPA,步骤详解(图文结合)

Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。

7 4022

springboot+spring data jpa+thymeleaf学习web项目整合demo源码

springboot+spring data jpa+thymeleaf学习简单完整的web项目整合demo源码

推荐 12 个 SpringBoot 开源项目

SpringBoot 是一个非常流行的 Java 框架,它可以帮助开发者快速构建应用程序。在这篇文章中,我将会向你推荐一些非常优秀的 SpringBoot 开源项目。这些项目的风格幽默,而且我也会提供一些具体的代码示例。让我们开始吧!

2301_77102488的博客 3296

springboot旅游系统毕业设计

技术简介 1、后台主要框架:SpringBoot 2、前台模板引擎:Thymeleaf 3、前端用户页面:BootStrap、Html+Css、jquery、javascript、ajax、sweetalert等技术(模板网站中下载) 5、后端管理员页面:Layui、Bootstrap、Echars 6、数据库:mysql 5.7 7、缓存:redis 8、消息队列:rabbitMQ 9、架构模式:Restful架构模式 10、项目管理:Maven 11、JDK版本:1.8 12、额外功能:阿里云短信服务SMS、阿里云图片存储OSS、QQ邮箱验证服务 13、主要算法:Twitter雪花算法(ID生成策略)、Bcrypt(密码加密)、JPA排序 项目说明:https://www.educy.top//article/287

springboot+druid+jpa(hibernate)+mysql项目案例

这案例是spring boot+druid+jpa(hibernate)+mysql搭建的maven结构的基础案例

Spring+SpringMVC+SpringDataJPA信息管理系统课程

Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中

SpringBoot入门级Demo带静态后台模版

SpringBoot + Thymeleaf + Spring Boot JPA + Bootstrap 注:以IDEA为基础开发,需要Eclipse版本请拷贝代码内容~!

springboot+旅游管理系统 毕业设计-附源码261117

旅游管理系统主要功能模块包括旅游资讯、资讯分类、景点信息、景点购票、酒店客房、旅游路线、路线预订、签证服务、签证代办、酒店预订、票务代购、票务信息,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取Mysql作为后台数据的主要存储单元,采用springboot技术、Redis技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。...

DZBS2000的博客 6979

软件缺陷(定义+表现形式+优先级+信息+产生原因),看完这篇文章就懂了

软件缺陷软件缺陷的定义软件缺陷的表现形式软件缺陷产生的原因软件缺陷的根源软件缺陷的费用软件缺陷的信息 软件缺陷的定义 IEEE 1983 of IEEE Stardard 729中软件缺陷做了一个标准的定义: 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。 因此软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,没有满足用户的需求。 缺陷不是bug,缺陷包含bug,缺陷的范围更大。 软件缺陷

qq_40676418的博客 1万+

C++继承与多态 - 继承多态原理01

C++继承多态原理讲解

大秦坑王的专栏 2978

html宿舍管理系统模板_【极简版】SpringBoot+SpringData JPA 管理系统

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y在上一篇中已经讲解了如何从零搭建一个SpringBoot+SpringData JPA的环境,测试接口的时候也成功获取得到数据了。带你搭一个SpringBoot+SpringData JPA的Demo我的目的是做一个十分简易的管理系统,这就得有页面,下面...

weixin_35719180的博客 509

HDI盲埋孔设计规范:高速PCB信号完整性落地指南

盲埋孔是高密度互连(HDI)PCB实现高速信号完整性的关键技术,其本质是通过控制过孔stub长度、优化回流路径和提升布线密度,解决GHz级信号在传统通孔结构下出现的谐振、串扰与EMI超标问题。其设计核心在于叠层物理约束、电气参数建模与工艺能力协同,涉及stub长度计算、反焊盘尺寸推导、孔壁粗糙度Rz控制等关键指标。广泛应用于DDR4、PCIe Gen4、USB3.2等高速接口的PCB设计中,尤其在车载ADAS、5G基站及FPGA载板等对SI/PI要求严苛的场景中成为刚性门槛。

weixin_34416754的博客 437

bootstrap管理系统模板_【极简版】SpringBoot+SpringData JPA 管理系统

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y在上一篇中已经讲解了如何从零搭建一个SpringBoot+SpringData JPA的环境,测试接口的时候也成功获取得到数据了。带你搭一个SpringBoot+SpringData JPA的Demo我的目的是做一个十分简易的管理系统,这就得有页面,下面...

weixin_39874269的博客 337

Q学习(Q-learning)入门小例子及python实现

一、从马尔科夫过程到Q学习 # 有一定基础的读者可以直接看第二部分 Q学习(Q-learning)算法是一种与模型无关的强化学习算法,以马尔科夫决策过程(Markov Decision Processes, MDPs)为理论基础。 标准的马尔科夫决策过程可以用一个五元组<S,A,P,R,γ>表示,其中: S是一个离散有界的状态空间; A是一个离散的动作空间; P为状态转...

wlm_py的博客 4万+

用Frida-RPC搞定大麦App最新版签名:一个脚本解决x-sign和x-mini-wua

本文深入解析大麦App最新版签名机制(x-sign和x-mini-wua),详细介绍如何利用Frida-RPC技术开发稳定脚本获取签名参数。通过实战案例展示Java上下文切换、参数序列化等关键技术解决方案,为安全研究和技术验证提供可靠方案。

weixin_42525738的博客 643

umi3 如何管理model_【极简版】SpringBoot+SpringData JPA 管理系统

前言只有光头才能变强。文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y在上一篇中已经讲解了如何从零搭建一个SpringBoot+SpringData JPA的环境,测试接口的时候也成功获取得到数据了。带你搭一个SpringBoot+SpringData JPA的Demo我的目的是做一个十分简易的管理系统,这就得有页面...

weixin_36104594的博客 117

OpenSSL玩转证书链:从Windows CA根证书到签发多域名/IP的服务器证书全攻略

本文详细介绍了如何使用OpenSSL在Windows环境下构建私有CA体系,从创建CA根证书到签发支持多域名/IP的服务器证书的全流程。通过实战指南,读者可以掌握零成本证书管理技术,灵活配置SAN扩展,并了解在Nginx、Apache等主流服务器中的证书部署方法,适用于企业内网、IoT设备等HTTPS加密场景。

weixin_28731223的博客 440
上一篇: IDEA看源码的几个小技巧
下一篇: 原来这就是MapReduce!
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值