上次幫小王入了 Spring Boot 的門後,他以爲我這我的和善可親、平易近人,因而隔天小王又微信我說:「二哥,快教教我,怎麼在 Spring Boot 項目中使用 JDBC 鏈接 MySQL 啊?」java
收到問題的時候,我有點頭大,難道之後就要被小王纏上了?mysql
沒等我發牢騷,小王就緊接着說:「二哥,你先別生氣,上次你幫了個人忙後,我在內心感激了你一夜,想着第一次遇到這麼親切的大佬,必定要抱緊大腿。。。。。」git
馬屁拍到這份上,個人氣天然也就消了。隨後,我花了五分鐘的時間幫他解決了苦惱,沒成想,他又發給我了一個小紅包,表示對個人感謝。並建議我再寫一篇文章出來,由於他以爲像他這樣的小白還有不少。沒辦法,我關上門,開了燈,開始了今天這篇文章的創做。程序員
既然要鏈接 MySQL,那麼就須要先在電腦上安裝 MySQL 服務(本文暫且跳過),而且建立數據庫和表。github
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;
複製代碼
建立一個 Spring Boot 項目很是簡單,經過 Spring Initlallzr(start.spring.io/)就能夠了。web
勾選 Lombok、Web、MySQL Driver、Actuator、JDBC 等五個依賴。面試
1)Lombok 是一種 Java 實用工具,可用來幫助開發人員消除 Java 的一些冗餘代碼,好比說能夠經過註解生成 getter/setter。使用以前須要先在 IDE 中安裝插件。spring
2)Web 代表該項目是一個 Web 項目,便於咱們直接經過 URL 來實操。sql
3)MySQL Driver:鏈接 MySQL 服務器的驅動器。數據庫
4)Actuator 是 Spring Boot 提供的對應用系統的自省和監控的集成功能,能夠查看應用配置的詳細信息,例如自動化配置信息、建立的 Spring beans 以及一些環境屬性等。
5)JDBC:本篇文章咱們經過 JDBC 來鏈接和操做數據庫。
選項選擇完後,就能夠點擊【Generate】按鈕生成一個初始化的 Spring Boot 項目了。生成的是一個壓縮包,導入到 IDE 的時候須要先解壓。
項目導入成功後,等待 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 關鍵字) 自動匹配驅動器。
爲了便於咱們操做,咱們對 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:'沉默王二'}
。
接下來,咱們直接運行 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
複製代碼
從新運行該項目後再次訪問,發現中文再也不亂碼了。
快給本身點個贊。
我是沉默王二,一枚有趣的程序員。若是以爲文章對你有點幫助,請微信搜索「 沉默王二 」第一時間閱讀,回覆【666】更有我爲你精心準備的 500G 高清教學視頻(已分門別類)。
本文 GitHub 已經收錄,有大廠面試完整考點,歡迎 Star。
原創不易,莫要白票,請你爲本文點個贊吧,這將是我寫做更多優質文章的最強動力。