簡(jiǎn)介
Spring-boot 中為我們提供了一套非常簡(jiǎn)單易用的開(kāi)發(fā)框架,本文將記錄Spring-boot 中如何連接MySql。由于筆者是第一次接觸后端開(kāi)發(fā),如有問(wèn)題,歡迎指正。
各種配置
MySql
當(dāng)我們要在本地調(diào)試MySql時(shí),我們首先需要確認(rèn),本地有個(gè)運(yùn)行著的MySql。所以,我們首先要在本地下載一個(gè)MySql。此處推薦brew直接下載。
// 下載安裝
brew install mysql
// 啟動(dòng)
mysql -u root -p
接下來(lái),我們可以看一下,MySql的簡(jiǎn)單命令:
// 查看MySql中有哪些數(shù)據(jù)庫(kù)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ocean_database |
| performance_schema |
| sys |
+--------------------+
// 選擇某個(gè)數(shù)據(jù)庫(kù)
mysql> use ocean_database;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
// 顯示所有表
mysql> show tables;
+--------------------------+
| Tables_in_ocean_database |
+--------------------------+
| user_table |
+--------------------------+
// 顯示表中所有數(shù)據(jù)
mysql> select * from user_table;
+----+-------+-----+-----+
| id | name | age | sex |
+----+-------+-----+-----+
| 1 | ocean | 28 | m |
+----+-------+-----+-----+
關(guān)于如何建表,如何增加數(shù)據(jù)不是本篇重點(diǎn),讀者可自行查閱MySql的相關(guān)語(yǔ)法。
除了以上命令,我們還需要知道當(dāng)前MySql的一些信息。
// 查詢MySql的端口號(hào)
mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
// 查詢版本號(hào)
mysql> status;
--------------
mysql Ver 8.0.16 for macos10.14 on x86_64 (MySQL Community Server - GPL)
Connection id: 54
Current database: ocean_database
Current user: root@localhost
SSL: Not in use
Current pager: less
Using outfile: ''
Using delimiter: ;
Server version: 8.0.16 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /tmp/mysql.sock
Uptime: 7 days 7 min 1 sec
Threads: 2 Questions: 210 Slow queries: 0 Opens: 226 Flush tables: 3 Open tables: 131 Queries per second avg: 0.000
--------------
我們通過(guò)上面的命令知道,本地環(huán)境中,MySql的端口號(hào)為3306,版本號(hào)為8.0.16。這些信息都是非常重要的。
pom.xml
在spring-boot中,我們使用pom.xml來(lái)管理我們的依賴。我們要操作MySql當(dāng)然需要依賴一些第三方組件。由于我們準(zhǔn)備的調(diào)用方式,我們需要加入如下兩個(gè)依賴:
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
</dependencies>
這里要注意,mysql-connector-java的版本一定要與本地的MySql版本一致!否則將連接失敗。
application.properties
在 application.properties 中,我們配置mysql的連接信息。
##########################################################
#
# mysql
#
##########################################################
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ocean_database?characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=******(不能給你看)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
這里需要注意的是,端口、數(shù)據(jù)庫(kù)名、密碼一定要正確,這就是前面準(zhǔn)備那么多MySql指令的作用了。
快速開(kāi)始
完成了以上的配置,我們就可以開(kāi)始開(kāi)發(fā)軟件,操作MySql了。
JdbcController
@RestController
public class JdbcController {
@Resource
private JdbcTemplate jdbcTemplate;
@RequestMapping(value = "/users" , method = RequestMethod.GET)
public String getUserList(ModelMap map){
String sql = "SELECT * FROM user_table";
List<User> userList = jdbcTemplate.query(sql, new RowMapper<User>() {
User user = null;
@Override
public User mapRow(ResultSet resultSet, int i) throws SQLException {
user = new User();
user.setId(resultSet.getString("id"));
user.setName(resultSet.getString("name"));
user.setSex(resultSet.getString("sex"));
user.setAge(resultSet.getString("age"));
return user;
}
});
StringBuilder builder = new StringBuilder();
for (User user : userList){
builder.append("name : ").append(user.getName()).append("\n");
}
return builder.toString();
}
}
我們調(diào)用了SELECT * FROM user_table然后將數(shù)據(jù)存入U(xiǎn)ser中。
public class User {
private String id;
private String name;
private String age;
private String sex;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
最后,顯示User中的name字段。
完成以上代碼后,我們就可以在localhost中,看到我們從MySql中查詢的結(jié)果啦。

至此,一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)demo就完成啦。
小結(jié)
jdbc只是spring-boot提供的一個(gè)執(zhí)行簡(jiǎn)單sql語(yǔ)句的引摯。當(dāng)我們真正進(jìn)行數(shù)據(jù)庫(kù)相關(guān)的開(kāi)發(fā)時(shí),jdbc是不夠用的。
本文只是為了記錄MySql環(huán)境的配置。要點(diǎn)就是:版本、域名、端口、密碼的正確性。
如有問(wèn)題,歡迎指正。