初步学习使用SpringBoot框架(手动插入数据模拟访问数据库)

news2024/11/18 17:51:35

对于SpringBoot框架介绍大家可以看看这个这篇文章,SpringBoot优缺点以及如何安装使用

以下我是按照老师给的安装方法进行安装使用SpringBoot框架:
大家安装SpringBoot框架时候,最好安装3.0以下的,不然需要对应较高版本的JDK版本(Java Development ToolKit )以及较高版本的tomcat版本,会出现一些列问题,所以最好使用3.0以下的版本不要用最新的SpringBoot版本。

以下老师推荐使用2.x的SpringBoot,安装Tomcat9.0的版本。

由于要使用SpringBoot,我们准备新建一个聚合项目,以下图片仅仅只为记录我之前的项目的春出位置。

 首先创建一个maven的聚合项目,命名framework,然后GroupId填写一下一般是com.+公司英文简称

 由于这个项目我们不希望在里面写代码,主要的作用是聚合,我们主要是想在里面建子项目,为了不在IDEA中打开很多个项目而建的,所以我们就直接把src给直接去掉。

 然后右键单击建子项目。

 还是和之前一样的创建界面:

 点击next之后我们能够发现和之前的还是有一定的区别,因为此次,我们是在framework下建的子项目,所有正在建的项目和framework实际上是父子关系,会有一个parent选项:

 我们给子项目取一个名字:01-springboot-helloword,GroupId是直接继承framework项目的GroupId,即com.neuedu,如下图所示:

 然后按照以下步凑进行:

1.首先引入引入springboot的parent

springboot项目文件的pom.xml是可以直接用外层的framework项目的pom.xml中的配置文件和依赖

也就是说我们不用一个一个添加dependency依赖,我们只需要最外层的项目的pom.xml添加dependency等需要的配置文件,内层的pom.xml就可以不用一一添加了,都可以直接使用parent项目中的pom.xml中的所有内容。只需要在parent项目中添加完依赖,子项目就都可以使用了。类似于java中的继承的关系。

我们先在最外层的framework项目中的pom.xml文件中编写如下代码

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.14</version>
    </parent>

 放置的位置如下

 注意,在ctrl + shift +o之前的代码是红色的是正常的,并且IDEA会显示报错:

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.14</version>
    </parent>

配置完成之后,就正常了,就不会报错了,如下所示:

 然后我们需要在内部springboot项目中的pom.xml中添加一个

<dependencies></dependencies>,我们想要用SpringBoot,就得在<dependencies></dependencies>启动一个MVC的框架。 

=========================================================================

这里有个小的提示事项:我们之所以要写成parent加子类的形式,是因为为了对应版本号,父类的<parent></parent>中需要对应版本号,而子类中的<dependencies></dependencies>就不需要写版本号了,由于继承关系会自动对应相应的版本号,保证不会出现版本问题;这是写成一个父项目加子项目的一个重要原因,避免因为版本问题,项目跑不起来。

framework中的<parent></parent>中的一个最大的作用就是,统一jar包的版本号,避免程序因为版本问题跑不起来。

 =========================================================================

 然后我们将以下代码加到内层springboot项目中的pom.xml的之前写的<dependencies></dependencies>中,进行springMVC框架的配置,然后ctrl +shift+o即可完成配置:

  <!--    mvc的框架  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

这里我要说明一下一般来说<dependency></dependency>由三部分组成,即<groupId><artifactId><version>,但是这里之所以没有写version,前面有提到过,是为了避免版本错误,让framework中的pom.xml中的<parent></parent>自动为我们对应版本,以避免因为项目与项目之间的版本对应不上,项目而无法执行。

 然后我们在spring项目的java源文件中,写一个main函数启动前面配置的springMVC中的框架。

我们在蓝色java文件中创建一个com.neuedu包,然后创建一个App的java class文件:

 我们在主函数中启动一个容器,用于替换掉servlet API,不需要我们自己写servlet(Servlet是java语言编写的运行在服务器端的程序)了

这个App.class上面需要一个注解@SpringBootApplication

 然后我们就需要写之前介绍的三层架构了,controller ,service ,dao(已经被mybatis代替 )

首先我们写一下controller,创建在com.neuedu下面

 

 然后我们添加一个注解@RestController

 controller(相当于原来的servlet,实际上还是servlet那些东西只是做了一些封装而已)层能够访问我们的数据库 (也可以写service层,调用dao,调用JDBC)

我们先写一个测试的代码:

比如我们想要从数据库查询一个集合,然后放到一个页面上去。我们模拟一下从数据库中查询出阿里的信息。

我们添加一个@RequestMapping的注解用于建立请求URL和处理请求方法之间的对应关系。

URL是Uniform Resource Locator(统一资源定位器) 它是专为表示网路上资源位置而设的一种编码方式。

URL一般是由三部分组成

1,应用层协议。

2,主机IP地址或域名。

3,资源所在路径/文件名。

URL的格式如下:

应用层协议://主机IP或者域名/资源所在路径/文件名

我们先写一个List类型的数,模拟是从数据库上面取出的(实际上是我们自己手动插入的数据)

 然后我们启动一下:

首先进入App java class文件中启动SpringBoot的一个容器:

执行代码之后,我们可以看到他启动了一个容器叫做Tomcat

 正常我们访问servlet得有一个URL,这里需要我们去构造一下。 

我们可以首先在UserController的的注释里面写:

 其中文本注释的快速写法是:

先写一个/**

 然后回车就可以形成可以写注释的区域:

 然后可以通过以下url访问刚刚发布的list文件里面的资源:

http://localhost:8080/list

 如下图所示:

 同理我们也可以将数据库中的数据打印在网页上面

以下演示一下利用SpringBoot框架打印出数据中的内容。

我们创建一个entity实体层用来接收从数据库中去取出的数据。

在实体层中创建一个User对象

编写几个简单的属性,

利用generate生成set get方法。

 

 然后再利用generate生成函数的构造方法:

 

有参的构造函数和无参的构造函数都写一下,

先生成有参的构造方法:ctrl按住不放一个一个选中然后点击ok就可以了

 即生成了有参的构造方法;

 然后再点击generate中的constructor生成无参的构造方法:
只需要点击selec none即可生成无参的构造方法:

 

 然后我们就可以将之前的list以user实体对象的形式,插入实体对象了。

以下仍然是模拟从数据库中查出来的数据:

 然后我们重新启动一下容器:

 然后,我们再看看http://localhost:8080/list是否发布成功了:

 我们可以看到是发布成功了。后续步凑不会这么单调,我们会做一个好看一点的html表格界面,那时候就漂亮了。那就是我们明天的活儿了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Axure教程】拖动调整行高列宽的表格

表格是在系统软件中非常常用的工具。表格通常由行和列组成&#xff0c;用于以结构化的方式显示和组织数据。它们在各种场景中都有广泛的应用&#xff0c;包括数据分析、数据录入、报表生成、项目管理和数据可视化等领域。 今天作者就教大家如何在Axure里制作一个能通过鼠标拖动…

阿里巴巴最新 SpringCloudAlibaba 学习笔记,全程通俗易懂,一套搞懂!

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件&#xff0c;依托 Spring Cloud Alibaba&#xff0c;只需要添加一些注解和少量配置&#xff0c;就可以将 Spring Cloud 应用接入阿里微服务解决方案&#xff0c;通过阿里…

Visual C++中函数的覆盖和函数的隐藏

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来聊聊Visual C中函数的覆盖和函数的隐藏。 Visual C中函数的覆盖和函数的隐藏与JAVA有很大不同&#xff0c;有些容易搞错的点和概念&#xff0c;我们要特别注意。 首先&#xff0c;先满足一下急性子的…

【刷题笔记——链表专栏】牛客网:合并两个排序链表

【刷题笔记——链表专栏】牛客网&#xff1a;合并两个排序链表 一、题目描述 二、思路分析 1、创建新的头节点newHead&#xff08;注意这一步&#xff09; 2、循环遍历pHead1和pHead2并进行链表并进行合并&#xff0c;直到pHead1和pHead2其中有一个为null时结束循环 3、合并完…

Win10,Win11玩游戏找不到d3dx9怎么解决

相信有些朋友遇到了d3dx9_42.dll丢失的情况不知道怎么解决&#xff0c;而今日小编带来的这篇文章就是讲解关于d3dx9_42.dll丢失进行修复的操作内容&#xff0c;d3dx9_42.dll丢失怎么解决&#xff1f;&#xff08;修复方法&#xff09;d3dx9 42.dll文件是DirectX中必备文件,许多…

【期末不挂科 学习数据结构】

期末不挂科 学习数据结构 第一章绪论1.1数据结构的基本概念1.1.1基本概念和术语1.数据2.数据元素3.数据对象4.数据类型5.数据结构 1.1.2数据结构三要素1.数据的逻辑结构2.数据的存储结构3.数据的运算 第一章绪论 1.1数据结构的基本概念 1.1.1基本概念和术语 1.数据 数据是信…

Redis7【⑧ Redis集群(cluster)】

Redis集群 Redis 集群是 Redis 数据库的分布式解决方案&#xff0c;它可以将数据分散存储在多个节点上&#xff0c;以支持大规模数据存储和高并发访问。 Redis 集群使用的是基于槽的分区策略&#xff0c;即将数据分成固定数量的槽&#xff0c;每个槽由一个主节点和多个从节点组…

Python基础教程: 入门简介

Python 最初由 Guido van Rossum 在 1991 年开发&#xff0c;当时他在执行其他项目的时候需要编写一个简单的解释器。Python 最初只是一种简单的脚本语言&#xff0c;但在后来的发展中&#xff0c;它迅速成为一种流行的编程语言。 Python 不仅在大型科技企业中应用广泛&#x…

spring cloud 之 gateway

网关介绍 在微服务架构体系中&#xff0c;一个系统会被拆分为很多个微服务&#xff0c;那么作为客户端要如何去调用这么多的微服务呢&#xff1f;如果没有网关的存在&#xff0c;我们只能在客户端记录每个微服务的地址&#xff0c;然后分别调用&#xff0c;当然这样是不现实的…

Mysql事务原理

一、概述 事务&#xff1a;一组操作要么全部成功&#xff0c;要么全部失败&#xff0c;目的是为了保证数据最终的一致性。 数据库一般都会并发执行多个事务&#xff0c;多个事务可能会并发的对相同的一批数据进行增删改查操作&#xff0c;可能就会导致我们说的脏写、脏读、不可…

水站桶装水订水系统桶装水小程序,改变了桶装水行业传统的送水模式;

水站桶装水订水系统桶装水小程序&#xff0c;改变了桶装水行业传统的送水模式&#xff0c;客户通过线上下单&#xff0c;送水工实时接单配送&#xff0c;空桶更好的记录管理&#xff0c;财务数据在后台清晰明了&#xff0c;提高了水站的工作效率。 除此之外&#xff0c;还有很多…

网络系统集成实验(五)| 系统集成路由器OSPF动态、综合路由配置

一、前言 该系列文章将会对网络系统集成课程中相关实验进行更新&#xff0c;本篇为第五篇&#xff0c;有关路由器的OSPF、综合路由配置&#xff0c;包括了OSPF的配置实验、单臂路由实验、RIP配置实验、综合实验等。 注意&#xff1a;该实验的后半部分综合实验基于前面的实验&am…

java Collection集合使用笔记

1、Collection集合概述 它是单例集合的最顶层接口&#xff0c;它表示一组对象&#xff0c;这些对象也称之为Collection的元素JDK不提供此接口任何直接实现&#xff0c;但提供更具体的子接口&#xff08;如&#xff1a;List和Set&#xff09;实现创建Collection集合对象的方法&…

麒麟信安与飞腾携手共赴云端

当前各行业已进入全面云化时代&#xff0c;云桌面技术作为典型办公终端替代方案&#xff0c;凭借其数据安全、便捷运维、综合成本占优的优势正逐步在各行业应用实施。伴随十四五规划加速数字化转型及信息产业核心技术自主化发展&#xff0c;各政企组织迫切需要基于国产软硬件实…

gmap构建离线地图,用createCustomerTiledLayer方法,瓦片地址尾部多了 ?x={x}y={y}z{z} 导致无法显示地图。

gmap构建离线地图&#xff0c;用createCustomerTiledLayer方法&#xff0c;瓦片地址尾部多了 ?x{x}&y{y}&z&{z} 导致无法显示地图。 function initMap() {this.map new GL.Map(map, {center: "120.650847,31.3092434",zoom: 12,zoomControl: false,sca…

青大数据结构【2018】【算法设计】

关键词&#xff1a; 单链表递增、树的先序遍历 1&#xff09;带头结点的单链表L&#xff0c;从首结点开始&#xff0c;依次两两比较&#xff0c;如果前者大于等于后者&#xff0c;说明是非递增的&#xff1b;否则递增。 2&#xff09; 1&#xff09;先遍历二叉树&#xff0c;…

【mars3d】基于vue3的marsgis通用UI库 mars-ui 的使用

一名脑残程序员的mars-ui心酸使用记录。 通过mars3d的官网我们可以看到&#xff0c;有配套的UI库使用&#xff0c;那么我们如何使用到自己的项目中呢&#xff0c;跟着文章一步一步来吧&#xff01; 1、引入UI库 ① 安装ant-design-vue cnpm install ant-design-vue --save②…

如何实现功能插件化

本文将介绍两种方式来实现功能插件化&#xff1a; Java SPISpring factories 在整个插件化的方案中&#xff0c;会涉及到如下 3 个组成部分&#xff1a; 插件定义&#xff08;即将插件定义为一个接口&#xff09; 插件实现&#xff08;即对插件接口的实现&#xff09; 这里…

【需求实现】输入多少就输出多少的拟合任务如何实现(二):进度条简化

文章目录 导读普通的输出方式上下求索TensorBoard是个不错的切入点与Callback参数对应的Callback方法官方的内置Callback官方进度条简单的猜测与简单的验证拼图凑齐了&#xff01; 导读 在训练模型的过程中往往会有日志一堆一堆的困扰。我并不想知道&#xff0c;因为最后我会在…

今天给大家分享几款好用的卸载神器

在日常使用电脑的过程中&#xff0c;我们经常需要安装和卸载各种软件。然而&#xff0c;有时候使用操作系统自带的卸载程序可能无法完全清除程序及其相关文件和注册表项&#xff0c;导致系统出现垃圾文件和残留问题。为了解决这个困扰&#xff0c;今天我将向大家分享几款好用的…