Spring Data
Spring Data
2019/07/10 (更新)
基本概念
Spring Framework所支援的JDBC相關元件,如:Connection、SQLException,透過執行SQL的方式去存取資料庫。使用JDBC時,可以利用Spring Framework提供的JdbcTemplate執行SQL Statement,可以大量的簡化所需要的程式碼。
Spring Framework也提供了Java Persistence API(JPA)及JDBC的相關元件。JPA簡化了java對資料庫的存取,也讓程式設計師不必寫SQL就可以存取資料庫。不過,如果不是單純的新增、刪除、修改,使用JPA可能就會有一些效能上的問題。
資料庫相關概念
- Schema (database)
- Character Set (如:utf-8)and Collation(如:utf8_general_ci) (詳參: http://www.codedata.com.tw/database/mysql-tutorial-7-charset-database/)
- Table
- Column
- Data type (詳參: http://www.codedata.com.tw/database/mysql-tutorial-8-storage-engine-datatype/, https://www.w3schools.com/sql/sql_datatypes_general.asp, https://www.w3schools.com/sql/sql_datatypes.asp)
- Int
- Float, Double, Decimal
- VarChar vs. Char
- General attributes (詳參: http://www.codedata.com.tw/database/mysql-tutorial-9-table-index/ )
- Not Null
- Signed vs. unsigned
- Auto Increment
- Primary Key
- Relationship
- Foreign Key
- Constraint
- SQL (詳參: https://www.w3schools.com/sql/)
- 資料表或欄位盡量不要使用保留字 (如:desc) (詳參: https://dev.mysql.com/doc/refman/5.5/en/keywords.html )
資料庫
比較常用的關聯式資料庫有SQL server,、MySQL、MariaDB、Oracle database。
MySQL是一個開源的資料庫,原本是由MySQL AB開發,2008年被Sun收購,2009年Oracle收購Sun時,就變成Oracle的產品了,MySQL最新版本是8.0.16 (下載: MySQL Community Downloads)(詳參:MySQL)。
MariaDB是MySQL的一個分支,在2013年由MySQL的創始人Ulf Michael Widenius與其他人一起成立了MaribDB Foundation來主導MariaDB的開發。在MariaDB 5.5之前,MariaDB的版本都與MySQL同步,之後,MariaDB就與MySQL版本不再同步,由10.0開始。目前最新的穩定版本是10.4.6 (下載: Downloads) (詳參: MariaDB)。
一般而言,可以直接下載MySQL或Maria DB,也可以下載一些安裝包(如:XAMPP、AppServ),這些安裝包將這些軟體包裝好,可以一次安裝好,不必一個一個的安裝。使用安裝包的時候要注意,每個安裝包所內含的軟體是不太一樣的,目前最大的差異在於使用MySQL或MariaDB,例如,XAMPP內含MariaDB,AppServ內含MySQL,WampServer則是MySQL及MariaDB,另外,還要注意的是支援的作業系統,AppServ及WampServer支援windows,XAMPP號稱跨平台,所以,支援Windows、Mac、Linux版本。
常用的管理介面有phpmyadmin及MySQLWorkBench,可採用phpmyadmin,phpmyadmin包含在XAMPP裡,XAMPP支援Windows、Mac、Linux版本(詳參: XAMPP安裝與操作初步 、XAMPP v7.3.6 網頁伺服器自動架站機 ),XAMPP支援的是MariaDB,不過,介面上還是寫MySQL。XAMPP透過phpmyadmin來管理mysql。
- 如何使用MySQ LWorkBench (詳參: https://dev.mysql.com/doc/workbench/en/wb-home.html)
中文的設定
my.ini/my.cnf for utf-8
在[client]底下,需要:
[client]
default-character-set=utf8
在[mysql]底下,需要:
[mysql]
default-character-set=utf8
在[mysqld]底下,需要:
[mysqld]
## UTF 8 Settings
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
skip-character-set-client-handshake
character_sets-dir="C:/xampp/mysql/share/charsets"
參考資料
- http://projects.spring.io/spring-data/
- http://projects.spring.io/spring-data-jpa/
- https://spring.io/guides/gs/relational-data-access/
- http://www.codedata.com.tw/category/database/
- http://www.codedata.com.tw/database/mysql-tutorial-getting-started/
- http://www.codedata.com.tw/database/mysql-tutorial-database-abc-mysql-installation
- http://www.codedata.com.tw/database/mysql-tutorial-basic-query/
- http://www.codedata.com.tw/database/mysql-tutorial-7-charset-database/
- http://www.codedata.com.tw/database/mysql-tutorial-8-storage-engine-datatype/
- http://www.codedata.com.tw/database/mysql-tutorial-9-table-index/
- Top five software applications to access MySQL/MariaDB servers
- SQLyog (Windows only)
- MySQL Workbench (Free, Windows, Linux, Mac) (網友說跟MariaDB 10.x不相容)
- HeidiSQL (Free, only Windows versions)
- Navicat for MySQL(Support MariaDB)
- dbForge Studio for MySQL (Free, only Windows versions)
- 15 Best MySQL GUI Tools Roundup
- 20+ Best MySQL GUI Tools 2018
- Best Free GUI Tools for MySQL for live Environments
- Workbench (Microsoft Windows, Mac OS X and Linux)
- phpMyAdmin (Microsoft Windows, Mac OS X and Linux, PHP 4 – 5 and MySQL 3 – 5)
- 常見問題
![](https://www.google.com/images/icons/product/drive-32.png)