type
status
date
slug
summary
tags
category
icon
password

创造你的第一个控制器

接下来便可以正式写代码了 右键com.example.demo,新建一个名为 controller 的软件包
notion image
你无需删除前面的com.example.demo,接着在后面填写contorller,然后回车
notion image
右键controller,新建一个Java类
notion image
填写HelloController,回车
notion image
依据传统,我们写一个Hello,World!
notion image
运行你的项目,按右上角绿色的三角按钮
或者右键项目主文件,DemoApplication.java
notion image
当终端出现这些字样代表运行成功,然后在浏览器的地址栏输入
localhost:8080
,冒号后面的端口号8080请注意终端中的提示,如果你和我不一样,请自行修改端口号,不过默认都是8080
notion image
这时你的浏览器应该会出现Hello,World!字样,代表你成功运行了你的第一个控制器。
notion image

创建你的数据库

快捷键Win+Q,搜索MySQL并打开MySQL 9.2 Command Line Client
notion image
输入你的密码,密码是在MYSQL安装过程中设置的,
notion image
输入SQL命令:
CREATE DATABASE blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
并回车
notion image
输入:
SHOW DATABASES;
来列出所有数据库,会发现已经有了blog。
notion image
创建用户并设置密码:
CREATE USER 'blog_user'@'%' IDENTIFIED BY '123456';
在这里的用户名是
blog_user
,密码是
123456
。你也可以按自己想的修改用户名与密码。 授予用户对blog数据库的所有权限:
GRANT ALL PRIVILEGES ON blog.* TO 'blog_user'@'%';
最后刷新权限:
FLUSH PRIVILEGES;
快捷键Win+Q,搜索MySQL并打开Workbench
notion image
点击+号按钮
notion image
填写信息
notion image
这时你的主页会出现这个数据库,单击打开
notion image
按图所示创建user表
notion image
notion image
打开user表并随便填写一些假数据
notion image
至此你已经成功创建了你的user表

连接你的数据库

打开application.properties,配置数据库连接 注意要在spring.datasource.url=jdbc:mysql://localhost:3306/后填写自己的数据库名, spring.datasource.username=数据库用户 spring.datasource.password=这里填写密码
notion image

将后端与你的数据库关联起来

新建软件包entity,并创建一个User类,其中User类和user表同名,可以不区分大小写,因为类名命名规则通常都是首字母大写的驼峰命名法则。
notion image
到此我们需要安装Lombok依赖,用于减少样板代码,提高开发效率。 在此我推荐去相关依赖的官网,找到最新版本的依赖导入方式,否则会出现各种奇奇怪怪的报错。 Lombok官网Maven依赖导入:
、 找到这两段代码。
notion image
==请注意,找到对应的地方,一个是
<dependency></dependency>
,一个是
<plugin></plugin>
notion image
导入依赖后不要忘记同步一下Maven更改 在设置里找到插件并下载lombok插件
notion image
点击构建、执行、部署 -> 编译器 -> 注解处理器 -> 启用注解处理 ->确定
notion image
接下来回到User类继续编写。
在这里,我们使用了Lombok的Data注解,自动为id,username,password这些声明生成了对应的操作方法(如 gettersettertoString()equals()/hashCode() 等) 我们只需声明变量,无需手动编写对应方法,提高了开发效率。 这里的id,username,password和user表的内容会自动一一对应。
请注意,MySQL里的命名方式采用下划线命名,而Java采用驼峰命名。 如果MySQL里的命名是user_name,则Java里要写成userName。当然你也可以手动映射对应,用@Column(username = "user_name")注解来解决,更多其他方法请自行查找,在此不过多赘述。

在后端执行对应的数据库操作

数据库操作这块也有一个依赖可以方便我们提高开发效率 MyBatis-Plus安装 | MyBatis-Plus 找到Spring Boot3对应的依赖,并添加到pom.xml中,之前已经演示过很多次在此不做赘述。
notion image
创建一个新的软件包mapper,并创建一个UserMapper接口,==注意是接口==
notion image
在UserMapper中写入
我们的UserMapper继承了mybatisplus的BaseMapper,BaseMapper已经包含了许多常用的CRUD(增删改查)操作,无需我们手动写SQL代码,可直接操作 User 实体对应的数据库表如果你有其他操作需求,可自行在UserMapper里添加代码。
在DemoApplication.java主文件添加
@MapperScan("com.example.demo.mapper")
notion image
@MapperScan("com.example.demo.mapper")
会自动将com.example.demo.mapper目录下的所有mapper类添加@Mapper注解。 @Mapper的作用是
标识一个接口是 MyBatis 的 Mapper 接口,并告诉 MyBatis 需要为这个接口生成动态代理实现类,从而能够执行 SQL 操作。

利用Thymeleaf将数据展示到前端浏览器

可以省略<version>, 会自动继承<parent></parent>里的Spring Boot的版本
接着我们来继续编写HelloController控制器
@Autowired 是 Spring 的依赖注入注解,用于自动装配 Bean。 这里 Spring 会自动查找 UserMapper 类型的 Bean 并注入到 userMapper 字段中。 @GetMapping 是 Spring MVC 的请求映射注解,专门处理 HTTP GET 请求。 Model 是 Spring MVC 提供的一个接口,用于在控制器和视图之间传递数据。 model.addAttribute("userList", userList);这将 userList 数据添加到模型中,可以在视图中通过 ${userList} 或 Thymeleaf 的 th:each 访问。
接着写一个网页
th:each="user : ${userList}就像Python 里的for user in userList一样,我们可以用 . 符号取出user里的id,username,password等属性。
在resources里创建一个templates文件夹,创建一个alluser.html,这里的alluser与控制器返回的要对应
notion image
接着我们来运行一下
打开浏览器并在网址栏输入localhost:8080/alluser
notion image
可以发现我们取出了数据库里的所有user并展示在了浏览器上