Springboot项目本地连接并操作MySQL数据库
目录
前提
准备工作
用cmd在本地创建数据库、表:
1.创建springboot项目(已有可跳过)
2.编辑Mybatis配置
3.连接数据库
4.创建模型类,用于与数据库里的数据表相连
5.创建接口mapper,定义对数据库的操作
6.创建controller类,来处理前端发送的请求
7.创建xml配置文件,编写SQL映射语句
前提
1.已有springboot项目,安装有jdk(17版本以上)、MySQL
2.下载navicat软件用于编辑数据库(也可以是其他类似软件)
3.下载apifox软件用于创建接口并测试连接(按需求选择)
准备工作
用cmd在本地创建数据库、表:
- 登录到MySQL:mysql -u 用户名 -p
- 使用CREATE DATABASE语句来创建一个新的数据库,例如,要创建一个名为my_database的数据库:CREATE DATABASE my_database
- 在创建表之前,你需要先选择你刚刚创建的数据库,使用USE语句来选择数据库:USE my_database;
- 使用CREATE TABLE语句来定义表的结构,例如,要创建一个简单的用户表,你可以执行:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
这个命令创建了一个名为users的表,它包含四个字段:id(自增主键)、username(非空字符串)、email(非空字符串)和created_at(时间戳,默认为当前时间)。
1.创建springboot项目(已有可跳过)
项目结构:
2.编辑Mybatis配置
xml配置文件用于创建编辑数据库的基础命令,向数据表插入数据、更新数据、删除数据等,注意名字要相对应。Java文件声明数据库编辑方法,如搜索账户是否存在
3.连接数据库
1)打开navicat,点击“文件”-> “新建连接”->“MySQL”,或者直接点击下面的“连接”->“MySQL”,输入本地创建的数据库名称,用户名(默认为root),密码,端口(默认3306)
连接成功后会显示本地的数据库,点击“文件”->“新建”->“表”创建数据表,双击表可查看数据表内容。
2)springboot项目连接数据库:
- Username:用户名
- Password:密码
- url:数据库路由,格式一般为“jdbc:mysql://localhost:3306/******(数据表名称)?useUnicode=true&characterEncoding=utf8&useSSL=false”
- driver-class-name:驱动java数据库连接程序(指JDBC,项目通过jdbc api与数据库进行交互)
4.创建模型类,用于与数据库里的数据表相连
- @TableName(“数据表名”):连接的数据表表名
- @Entity:将java标记为实体类,从而允许这些类映射到数据库中的表
- @Id:JPA(Java Persistence API)规范中的注解,标识实体类中的主键字段
- @TableId:MyBatis-Plus 框架中的注解,用于标识实体类的主键字段
注意:@Id和@TableId二者作用相同,按项目所包含依赖选择其一即可
右键->“生成”->“构造函数”setter和getter
5.创建接口mapper,定义对数据库的操作
6.创建controller类,来处理前端发送的请求
- @CrossOrigin(origin=“*”):允许所有来源访问该url,解决本地访问跨域问题
- @RestController:@Controller和@ResponseBody的组合,它告诉Spring这个类是一个控制器(Controller),并且所有的方法返回的内容都直接写入HTTP响应体中,而不是解析为跳转路径,这通常用于RESTful Web服务,其中返回的数据是JSON或XML等格式。
- @RequestMapping(“/api/***”):用于将HTTP请求映射到特定的处理器方法或处理器类上
- @Autowired:用于自动装配Spring容器中的bean, 当Spring发现@Autowired注解时,它会尝试查找匹配的bean来注入到被注解的字段、构造函数参数或setter方法的参数中。如果找到多个匹配的bean,并且没有指定哪个bean应该被注入,那么将会抛出一个异常。如果找不到匹配的bean,并且该字段是可选的(即,它是null可以接受的类型,比如接口或接口的实现类的字段),那么它将不会被注入,而是保持为null。
- @GetMapping:定义请求方式为Get方法(也可以是post方法PostMapping)
7.创建xml配置文件,编写SQL映射语句
id:映射方法名
namespace:命名空间,指向mapper包里面的相同名字的java文件
UserMapper.java:
- @Mapper指明是一个mapper接口
- public interface UserMapper extends BaseMapper<UserInfo>:UserMapper接口继承自BaseMapper<UserInfo>,这意味着它自动拥有了BaseMapper中定义的所有方法,这些方法都是针对UserInfo类型的数据进行操作的。这大大减少了编写重复性代码的需要。
- 定义了一些自定义的方法,如selectByAccount、existsByAccount、insertUserToken等