MySQL 是目前项目中运用最广泛的关系型数据库,无论是互联网大厂,还是中小型公司,几乎都在用。MySQL 不仅体积小、速度快、源码开放,且深受广受开发者喜爱。
所以,这期我们就围绕它进行重点讲解,那么,这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途中有任何不清楚或疑问的地方皆可评论区留言或私信,bug菌将第一时间给予解惑,那么废话不多说,直接开整!Fighting!!
本地的开发环境: 开发工具:IDEA 2021.3 JDK版本: JDK 1.8 Spring Boot版本:2.3.1 RELEASE Maven版本:3.8.2
通过前几期的基础教学,想必大家都已经Spring Boot项目创建及启动等基本内容了吧,今个儿我就来整点高级的,跟数据库交互交互。如何连接mysql数据库,创建数据库表,最后再成功查询数据库并打印数据内容?是这期要讲的内容,可能会比较简单,同时也希望大家不要掉以轻心,打好基础,认真听哦。
MySQL 是目前项目中运用最广泛的关系型数据库,无论是互联网大厂,还是中小型公司,几乎都在用。MySQL 体积小、速度快、源码开放,所以广受开发者喜爱。MySQL 的安装非常简单,针对不同的操作系统,MySQL 都提供了安装包的下载。
MySQL 目前主推的版本是 8.0,参考官方手册请这里点击:
也可以自主选择跟我一样的版本,MySQL5.6,为了保证课程讲解过程中的一致性嘛。
我这里使用的是Windows系统,所以就教大家如何在Windows11系统上安装MySQL,但如果有云服务器的话,建议安装在云服务器上,这样就可以长时间运行 MySQL 而不用担心服务重启的问题。按照步骤参照官网文档。
Windows系统的同学可以看我这篇安装教程《Windows11下如何快速安装MySQL服务(mysql5.6.50)》,已经单独把这块安装内容剥离出去成独文了,为了不影响正文进度。
在本地Windows系统中安装完MySQL服务后,需要在本地新建一个数据库,如何创建数据库教程请看这里《如何通过Navicat创建Mysql数据库》,讲解的非常详细。
通过使用Navicat 数据库可视化管理工具来创建一个mysql数据库。我们先连接本地数据库,输入连接名,主机ip,端口(3306),用户名,密码是你当初安装mysql服务时填写的。
接着就点击左下角的【测试连接】,查验你本地的mysql服务是否能够被连接上?
如果展示如上截图,提示【连接成功】,则证明你本地的mysql服务是开启的。
如果还不会操作的,请参考bug菌写的这篇 navicat如何创建数据库及导入数据库文件
Navicat 是一个从我参加工作到现在一直都在用的 MySQL 客户端工具,通过 Navicat 可以轻松连接数据库,并执行增删改查操作。
连接数据库也非常的简单,只需要填写主机 IP 地址、端口、用户名和密码即可。
填写完正确的用户名跟密码,点击下方的测试连接,如果显示连接成功,则表示连接数据库成功。
Spring Boot 整合 MySQL 数据库非常简单,只需要添加 MySQL 依赖并在配置文件中添加数据库配置即可。我们可以不用编写原始的访问数据库的代码,也不用调用 JDBC 或者连接池就可以访问 MySQL。
使用 Intellij IDEA 新建一个 Spring Boot 项目,使用 Java 8 版本生成项目后导入。
添加 MySQL 的 Java连接驱动依赖和 JDBC Starter。选择【MySQL Driver 】,最后点击右下角的Finish即可,会创建并跳转到一个新的项目中。
新项目创建完成,并idea打开目录截图:
对应pom.xml文件中的代码:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>connect-mysql-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>connect-mysql-demo</name>
<description>connect-mysql-demo</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
先创建个数据库,取名这个大家随意啊,命名最好见名之意。
选择刚才创建好的数据库下层的表,然后右键打击选择【新建表】
建几个字段,然后点击保存。
附上创建数据库表sql语句:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(255) NOT NULL COMMENT '用户名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`sex` varchar(2) DEFAULT NULL COMMENT '性别',
`address` varchar(255) DEFAULT NULL COMMENT '住址',
`describes` varchar(255) DEFAULT NULL COMMENT '描述',
`image` varchar(255) DEFAULT NULL COMMENT '头像',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8;
先随便造几条数据吧,待会儿有用得上。
插入数据语句Sql如下:
INSERT INTO `springboot_db`.`user`(`id`, `name`, `age`, `sex`, `address`, `describes`, `image`) VALUES (1, '刘亦菲', 70, '女', '上海闵行', '这是db1的用户', './template/image/刘亦菲.jpg');
INSERT INTO `springboot_db`.`user`(`id`, `name`, `age`, `sex`, `address`, `describes`, `image`) VALUES (2, '杨幂', 20, '女', '北京朝阳', '这是db1的用户', './template/image/杨幂.jpg');
INSERT INTO `springboot_db`.`user`(`id`, `name`, `age`, `sex`, `address`, `describes`, `image`) VALUES (3, '彭于晏', 30, '男', '河北邯郸', '这是db1的用户', './template/image/彭于晏.jpg');
ok!以上跟着bug菌一步一步来哈,不要急,更不要遗漏任何一步骤,接下来我们就是配置项目连接数据库信息。
在 application.yml 文件中添加数据库链接驱动信息。
spring:
datasource:
url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
username: root
password: 123456 #数据库名、用户名和密码改为自己的
driver-class-name: com.mysql.cj.jdbc.Driver
新建实体类User.java,具体请看如下代码:
/**
* 用户基本信息实体
*/
@Data
public class UserEntity implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Integer age;
private String sex;
private String address;
private String describes;
private String image;
}
建议在 pom.xml 文件中添加 lombok 的依赖。
<!--lombok相关jar-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
在写测试用例之前,我们先在pim依赖中引入jdbc starter,目的是使用JDBC模板接口。
<!--引入jdbc stater 目的是使用JDBC模板接口-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
接着在测试类中添加以下代码:
package com.example.connectmysqldemo;
import com.example.connectmysqldemo.entity.UserEntity;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import javax.annotation.Resource;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
@SpringBootTest
@Slf4j
class ConnectMysqlDemoApplicationTests {
@Resource
private JdbcTemplate jdbcTemplate;
@Test
void contextLoads() {
String sql ="select * from user";
List<UserEntity> users = jdbcTemplate.query(sql, new RowMapper<UserEntity>() {
@Override
public UserEntity mapRow(ResultSet rs, int rowNum) throws SQLException {
UserEntity user = new UserEntity();
user.setId(rs.getInt("id"));
user.setAge(rs.getInt("age"));
user.setName(rs.getString("name"));
user.setSex(rs.getString("sex"));
user.setAddress(rs.getString("address"));
user.setDescribes(rs.getString("describes"));
user.setImage(rs.getString("image"));
return user;
}
});
log.info("查询成功");
users.forEach(p->{
log.info("用户{}",p);
});
}
}
Spring Boot 的测试类主要放置在 src/test/java 目录下面,项目创建成功后,Spring Boot 会根据项目名称自动为我们生成测试类。
比如说本次项目名为 connect-mysql-demo,那么测试类名为 ConnectMysqlDemoApplicationTests。
如下,我们可以看到日志打印出来在数据库user表中mock的数据。
我们除了 Navicat 连接数据库工具,还可以使用 Intellij IDEA 自身直接连 MySQL。
点击「Database」面板,在左上角选择 + 号,选择 Data Source ,再选择 MySQL。
在弹出面板中填写连接信息。
如果是第一次连接 MySQL 的话,记得点击「download」下载 MySQL 驱动
下载之后之后点击「test connection」测试是否链接成功,如果出现以下界面,则表示 OK。
选择右侧的数据库表,双击,就可以查看到数据了。
在 idea中的「console」SQL 查询面板里可以编写 SQL 语句来执行增删改查操作。
1:选择你想查询的表鼠标邮件选择【New】
2:选择【New】打开后选择弹框中的第一个【Query Console】
3:你就可以在控制台中写sql语句啦,实现数据的增删改查操作。
比如进行user 表的查询。
至此,本期内容bug菌就介绍的差不多啦,我想同学们看到这里,也都对MySQL数据库有了一定的了解及Spring Boot如何集成MySQL实现数据的增删改查了,这也是我写本期内容的目的所在,因为在日常项目中,与数据库的交互那简直是家常便饭,所以希望不会的同学们能快速学会它,掌握它,如何与之集成实现数据的交互,最终能处理数据实现前后端分离项目的数据增删改查操作,这也是市面上非常流行的前后端开发模式。
-End-
原创作者|bug菌
MySQL作为目前项目开发中运用最广泛的关系型数据库,无论是互联网大厂,还是中小型公司,几乎都在用,而且它还完全开源。当Spring Boot架构越发的轻巧便利,与之那便是强强联合,当初学者步入社会成为一名开发者,SpringBoot项目与Mysql数据库是最日常的搭配,所以这是初学者的必修课,也是我写这篇文章的初衷,希望能帮助更多的初学者或小白们能够快速掌握它,成为一名优秀的"搬砖工"。
因此,本文着重介绍SpringBoot项目如何快速搭建、Idea开发工具的快速搭建及可视化工具的使用,最后是集成到项目中实现数据的交互。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。