上次幫小王入了 Spring Boot 的門后,他覺得我這個人和藹可親、平易近人,于是隔天小王又微信我說:“二哥,快教教我,怎么在 Spring Boot 專案中使用 JDBC 連接 MySQL 啊?”
收到問題的時候,我有點頭大,難道以后就要被小王纏上了?

沒等我發牢騷,小王就緊接著說:“二哥,你先別生氣,上次你幫了我的忙后,我在心里感激了你一晚上,想著第一次遇到這么親切的大佬,一定要抱緊大腿,,,,,”
馬屁拍到這份上,我的氣自然也就消了,隨后,我花了五分鐘的時間幫他解決了苦惱,沒成想,他又發給我了一個小紅包,表示對我的感謝,并建議我再寫一篇文章出來,因為他覺得像他這樣的小白還有很多,沒辦法,我關上門,開了燈,開始了今天這篇文章的創作,
01、初始化 MySQL 資料庫
既然要連接 MySQL,那么就需要先在電腦上安裝 MySQL 服務(本文暫且跳過),并且創建資料庫和表,
CREATE DATABASE `springbootdemo`;
DROP TABLE IF EXISTS `mysql_datasource`;
CREATE TABLE `mysql_datasource` (
`id` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
02、使用 Spring Initlallzr 創建 Spring Boot 專案
創建一個 Spring Boot 專案非常簡單,通過 Spring Initlallzr(https://start.spring.io/)就可以了,

勾選 Lombok、Web、MySQL Driver、Actuator、JDBC 等五個依賴,
1)Lombok 是一種 Java 實用工具,可用來幫助開發人員消除 Java 的一些冗余代碼,比如說可以通過注解生成 getter/setter,使用之前需要先在 IDE 中安裝插件,
2)Web 表明該專案是一個 Web 專案,便于我們直接通過 URL 來實操,
3)MySQL Driver:連接 MySQL 服務器的驅動器,
4)Actuator 是 Spring Boot 提供的對應用系統的自省和監控的集成功能,可以查看應用配置的詳細資訊,例如自動化配置資訊、創建的 Spring beans 以及一些環境屬性等,
5)JDBC:本篇文章我們通過 JDBC 來連接和操作資料庫,
選項選擇完后,就可以點擊【Generate】按鈕生成一個初始化的 Spring Boot 專案了,生成的是一個壓縮包,匯入到 IDE 的時候需要先解壓,
03、編輯 application.properties 檔案
專案匯入成功后,等待 Maven 下載依賴,完成后編輯 application.properties 檔案,配置 MySQL 資料源資訊,
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springbootdemo
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
1)spring.datasource. 為固定格式,
2)URL 為 MySQL 的連接地址,
3)username 為資料庫的訪問用戶名,
4)password 為資料庫的訪問密碼,
5)driver-class-name 用來指定資料庫的驅動器,也可以不指定,Spring Boot 會根據 URL(有 mysql 關鍵字) 自動匹配驅動器,
04、編輯 Spring Boot 專案
為了便于我們操作,我們對 SpringBootMysqlApplication 類進行編輯,增加以下內容,
@SpringBootApplication
@RestController
public class SpringBootMysqlApplication {
@Autowired
private JdbcTemplate jdbcTemplate;
@RequestMapping("insert")
public String insert() {
String id = UUID.randomUUID().toString();
String sql = "insert into mysql_datasource (id,name) values ('"+id+"','沉默王二')";
jdbcTemplate.execute(sql);
return "插入完畢";
}
}
1)@SpringBootApplication、@RestController、@RequestMapping 注解在[之前的文章]()中已經介紹過了,這里不再贅述,
2)@Autowired:顧名思義,用于自動裝配 Java Bean,
3)JdbcTemplate:Spring 對資料庫的操作在 jdbc 上做了深層次的封裝,利用 Spring 的注入功能可以把 DataSource 注冊到 JdbcTemplate 之中,JdbcTemplate 提供了四個常用的方法,
①、execute() 方法:用于執行任何 SQL 陳述句,
②、update() 方法:用于執行新增、修改、洗掉等 SQL 陳述句,
③、query() 方法:用于執行查詢相關 SQL 陳述句,
④、call() 方法:用于執行存盤程序、函式相關 SQL 陳述句,
本例中我們使用 execute() 方法向 mysql_datasource 表中插入一行資料 {id:uuid, name:'沉默王二'},
05、運行 Spring Boot 專案
接下來,我們直接運行 SpringBootMysqlApplication 類,這樣一個 Spring Boot 專案就啟動成功了,

這時候,我們可以直接瀏覽器的 URL 中鍵入 http://localhost:8080/insert 測驗 MySQL 的插入陳述句是否執行成功,很遺憾,竟然出錯了,

該怎么辦呢?這需要我們在連接字串中顯式指定時區,修改 spring.datasource.url 為以下內容,
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springbootdemo?serverTimezone=UTC
重新運行該專案后再次訪問,發現資料插入成功了,

為了確保資料是否真的插入成功了,我們通過 Navicat(一款強大的資料庫管理和設計工具)來查看一下,

情況不妙,中文亂碼了,該怎么辦呢?需要我們在連接字串中顯式指定字符集,修改 spring.datasource.url 為以下內容,
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springbootdemo?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
重新運行該專案后再次訪問,發現中文不再亂碼了,

快給自己點個贊,

06、鳴謝
我是沉默王二,一枚有趣的程式員,如果覺得文章對你有點幫助,請微信搜索「 沉默王二 」第一時間閱讀,回復【666】更有我為你精心準備的 500G 高清教學視頻(已分門別類),
本文 GitHub 已經收錄,有大廠面試完整考點,歡迎 Star,
原創不易,莫要白票,請你為本文點個贊吧,這將是我寫作更多優質文章的最強動力,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/176781.html
標籤:Java
