Day 15 - MySQL 手動建立Schema與Table
上一章教大家手動建立Table
今天要講如何使用 Spring Boot 自動建立Table
首先我們需要在application.properties設定參數
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=12345
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.jpa.hibernate.ddl-auto:
指的是服務起來時要用何種方式執行ddl指令, 有create, update, create-drop 等形式。
create: 啟動時建立Table, 下次啟動會覆蓋上次的, 故會造成資料遺失
update: 若無Table則啟動時建立, 若有則視有無變更自動Update
create-drop:啟動時建立Table, 當次Session關閉則刪除
spring.datasource.url:
jdbc連線方式, 因時區關係, 我們在參數後指定了serverTimezone=UTC
spring.datasource.username:
MySQL的使用者名稱
spring.datasource.password
MySQL的使用者密碼
spring.datasource.driver-class-name
我們的driver名稱
spring.jpa.database-platform
使用的資料庫平台, 我們用的是MySQL 8.0
spring.jpa.properties.hibernate.dialect.storage_engine
儲存方式, MySQL有很多種, 預設為MyISAM, 我們使用的是innodb
簡單講一下重點差別, 有興趣的朋友可自行google
MyISAM: Select速度快, 佔用空間小, 不支援Transaction
innodb: 佔用空間較大, 支援Transaction, 發生錯誤時可直接Rollback
這樣我們設定就完成了, 但Model還需要指定名稱與格式大小
下一章教大家如何用Annotation設定資料庫欄位
Day 17 - MySQL 使用Annontation設定欄位 (1)