创造你的第一个控制器
接下来便可以正式写代码了 右键com.example.demo,新建一个名为 controller 的软件包

你无需删除前面的com.example.demo,接着在后面填写contorller,然后回车

右键controller,新建一个Java类

填写HelloController,回车

依据传统,我们写一个Hello,World!
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.ResponseBody;
@Controllerpublic class HelloController { @GetMapping @ResponseBody public String Hello() { return "Hello, World!"; }}
运行你的项目,按右上角绿色的三角按钮
或者右键项目主文件,DemoApplication.java

当终端出现这些字样代表运行成功,然后在浏览器的地址栏输入
localhost:8080
,冒号后面的端口号8080请注意终端中的提示,如果你和我不一样,请自行修改端口号,不过默认都是8080

这时你的浏览器应该会出现Hello,World!字样,代表你成功运行了你的第一个控制器。

创建你的数据库
快捷键Win+Q,搜索MySQL并打开MySQL 9.2 Command Line Client

输入你的密码,密码是在MYSQL安装过程中设置的,

输入SQL命令:
CREATE DATABASE blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
并回车

输入:
SHOW DATABASES;
来列出所有数据库,会发现已经有了blog。

创建用户并设置密码:
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

点击+号按钮

填写信息

这时你的主页会出现这个数据库,单击打开

按图所示创建user表


打开user表并随便填写一些假数据

至此你已经成功创建了你的user表
连接你的数据库
安装MySQL依赖 Maven Repository: com.mysql » mysql-connector-j » 9.2.0
<dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>9.2.0</version></dependency>打开application.properties,配置数据库连接 注意要在spring.datasource.url=jdbc:mysql://localhost:3306/后填写自己的数据库名, spring.datasource.username=数据库用户 spring.datasource.password=这里填写密码
# MySQL数据库连接配置spring.datasource.url=jdbc:mysql://localhost:3306/blogspring.datasource.username=blog_userspring.datasource.password=这里填写密码spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
将后端与你的数据库关联起来
新建软件包entity,并创建一个User类,其中User类和user表同名,可以不区分大小写,因为类名命名规则通常都是首字母大写的驼峰命名法则。

到此我们需要安装Lombok依赖,用于减少样板代码,提高开发效率。 在此我推荐去相关依赖的官网,找到最新版本的依赖导入方式,否则会出现各种奇奇怪怪的报错。 Lombok官网Maven依赖导入:
、 找到这两段代码。

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.38</version> <scope>provided</scope></dependency><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.38</version> </path> </annotationProcessorPaths> </configuration></plugin>==请注意,找到对应的地方,一个是
<dependency></dependency>
,一个是
<plugin></plugin>

导入依赖后不要忘记同步一下Maven更改 在设置里找到插件并下载lombok插件

点击构建、执行、部署 -> 编译器 -> 注解处理器 -> 启用注解处理 ->确定

接下来回到User类继续编写。
package com.example.demo.entity;
import lombok.Data;
@Datapublic class User { @TableId(type = IdType.AUTO) private Integer id; private String username; private String password;}在这里,我们使用了Lombok的Data注解,自动为id,username,password这些声明生成了对应的操作方法(如 getter、setter、toString()、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中,之前已经演示过很多次在此不做赘述。
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.12</version></dependency>
创建一个新的软件包mapper,并创建一个UserMapper接口,==注意是接口==

在UserMapper中写入
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.example.demo.entity.User;
public interface UserMapper extends BaseMapper<User> {
}我们的UserMapper继承了mybatisplus的BaseMapper,BaseMapper已经包含了许多常用的CRUD(增删改查)操作,无需我们手动写SQL代码,可直接操作 User 实体对应的数据库表。 如果你有其他操作需求,可自行在UserMapper里添加代码。
在DemoApplication.java主文件添加
@MapperScan("com.example.demo.mapper")

@MapperScan("com.example.demo.mapper")
会自动将com.example.demo.mapper目录下的所有mapper类添加@Mapper注解。 @Mapper的作用是
标识一个接口是 MyBatis 的 Mapper 接口,并告诉 MyBatis 需要为这个接口生成动态代理实现类,从而能够执行 SQL 操作。
利用Thymeleaf将数据展示到前端浏览器
安装Thymeleaf依赖 Maven Repository: org.springframework.boot » spring-boot-starter-thymeleaf » 3.4.5
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>可以省略<version>, 会自动继承<parent></parent>里的Spring Boot的版本
接着我们来继续编写HelloController控制器
package com.example.demo.controller;
import com.example.demo.entity.User;import com.example.demo.mapper.UserMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controllerpublic class HelloController { @GetMapping @ResponseBody public String Hello() { return "Hello, World!"; }
@Autowired private UserMapper userMapper;
@GetMapping("/alluser") public String alluser(Model model) { List<User> userList = userMapper.selectList(null); System.out.println("查询到的用户数据:" + userList); model.addAttribute("userList", userList); return "alluser"; }}@Autowired 是 Spring 的依赖注入注解,用于自动装配 Bean。 这里 Spring 会自动查找 UserMapper 类型的 Bean 并注入到 userMapper 字段中。 @GetMapping 是 Spring MVC 的请求映射注解,专门处理 HTTP GET 请求。 Model 是 Spring MVC 提供的一个接口,用于在控制器和视图之间传递数据。 model.addAttribute("userList", userList);这将 userList 数据添加到模型中,可以在视图中通过 ${userList} 或 Thymeleaf 的 th:each 访问。
接着写一个网页
<!DOCTYPE html><html xmlns:th="<http://www.thymeleaf.org>"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <p style="text-align: center;">用户列表</p> <div style="padding: 0 10%"> <p style="width: 33%;float: left;">ID</p> <p style="width: 33%;float: left;">用户名</p> <p style="width: 33%;float: left;">密码</p> </div> <div style="padding: 0 10%" th:each="user : ${userList}"> <p style="width: 33%;float: left;" th:text="${user.id}"></p> <p style="width: 33%;float: left;" th:text="${user.username}"></p> <p style="width: 33%;float: left;" th:text="${user.password}"></p> </div> </body></html>th:each="user : ${userList}就像Python 里的for user in userList一样,我们可以用 . 符号取出user里的id,username,password等属性。
在resources里创建一个templates文件夹,创建一个alluser.html,这里的alluser与控制器返回的要对应

接着我们来运行一下
打开浏览器并在网址栏输入localhost:8080/alluser

可以发现我们取出了数据库里的所有user并展示在了浏览器上
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时









