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

对于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.hqwc.cn/news/129.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP/IP详解(一)

TCP/IP协议是Internet互联网最基本的协议&#xff0c;其在一定程度上参考了七层OSI&#xff08;Open System Interconnect&#xff0c;即开放式系统互联&#xff09;模型 OSI参考模型是国际组织ISO在1985年发布的网络互联模型&#xff0c;目的是为了让所有公司使用统一的规范来…

ADB usage

查看手机设备的信息 获取设备的Android版本号 adb shell getprop ro.build.version.release 获取设备的API版本号 adb shell getprop ro.build.version.sdkAdb 获得 sdk版本 adb shell getprop ro.build.version.sdk27 Adb 获得Android版本 adb shell getprop ro.build.vers…

Spring MVC各种参数进行封装

目录 一、简单数据类型 1.1 控制器方法 1.2 测试结果 二、对象类型 2.1 单个对象 2.1.1 控制器方法 2.1.2 测试结果 2.2 关联对象 2.2.1 控制器方法 2.2.2 测试结果 三、集合类型 3.1 简单数据类型集合 3.1.1 控制方法 3.1.2 测试结果 3.2 对象数据类型集合 3.…

linux:docker-compose下载后无法使用

参考&#xff1a; Ubuntu 安装 Docker & Docker-Compose - 知乎 解决方法: PC上下载二进制文件&#xff0c;之后filezilla上传到服务器对应目录

【跑实验05】利用CLIP中的图像编码器,如何遍历文件夹中的图像,将图像文件改为28*28的尺寸,然后输出到excel中的每一列,最后一列全都标记为0

文章目录 一、初步实现二、警告信息的解决三、Excel的限制四、尝试解决 一、初步实现 要遍历文件夹中的图像并将其尺寸调整为28x28&#xff0c;并将结果输出到Excel中&#xff0c;可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保您已经安装了Pandas库&#xff0c…

【MySQL 数据库】7、SQL 优化

目录 一、插入数据优化(1) insert 语句① 批量插入数据② 手动控制事务③ 主键顺序插入&#xff0c;性能要高于乱序插入 (2) load 大批量插入数据【☆❀ 二、主键优化(1) 数据组织形式(2) 页分裂(3) 页合并(4) 主键设计原则 三、orber by 优化四、group by 优化五、limit 优化&…

CSDN个性化推荐系统-负反馈测试

文章目录 前言一、uc不感兴趣标签过滤测试1.uc不感兴趣标签获取(uc_unlike_tag_list)1.1个人中心界面1.2从标签中可以发现什么&#xff1f;1.3与研发确认点1.4设计开发1.5接口获取结果 2.推荐流文章标签获取(tag_list)2.1部分代码2.2基本标签校验2.3基本标签校验结果 3.推荐流u…

Midjourney推出5.2版本,更新zoom out功能

Midjourney是一款专业的图像处理软件&#xff0c;它可以让用户轻松地创造出高质量的图像。它最近宣布推出了5.2版本&#xff0c;这是一个重大的更新&#xff0c;其中最亮眼的功能就是zoom out功能。 zoom out功能可以让用户无限地缩小原始图像&#xff0c;同时保持图像的清晰度…

centos 安装 nginx

1.下载nginx安装包 wget -c https://nginx.org/download/nginx-1.24.0.tar.gz 下载到了当前目录下 2.解压安装包 解压后的结果 3.安装依赖 yum -y install gcc gcc-c make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 4. ./configure --prefix/usr/lo…

【TCP/IP】多播 - 定义、原理及编程实现 (TTL、多播组、多播消息)

目录 多播 多播的原理 多播的数据传输时的特点 TTL 的概念 TTL 和 多播组的配置方法 多播的编程与实现 发送者 接收者 多播 多播是一种介于单播和广播通信之间的技术方式&#xff0c;可以将发送者所需要发送的数据包分别发送给分散在不同子网中的一组接收者。 多播的原…

Pytorch数据类型Tensor张量操作(操作比较全)

文章目录 Pytorch数据类型Tensor张量操作一.创建张量的方式1.创建无初始化张量2.创建随机张量3.创建初值为指定数值的张量4.从数据创建张量5.生成等差数列张量 二.改变张量形状三.索引四.维度变换1.维度增加unsqueeze2.维度扩展expand3.维度减少squeeze4.维度扩展repeat 五.维度…

8.6 socket套接字及TCP的实现框架

socket套接字 目录 socket套接字 体系结构的两种形式 几种常见的网络编程接口 socket套接字 socket常用API介绍 socket套接字 三元组【IP地址&#xff0c;端口&#xff0c;协议】 地址族结构体 套接字类型 TCP通信的实现过程 体系结构的两种形式 网络的体系结构 (N…