咱們有時須要更換數據庫,應用程序跨平臺也是常常的需求,JDBC基本上就是用來解決這些問題的。JDBC是Java聯機數據庫的標準規範。具體而言,它定義了一組標準類與接口,應用程序須要聯機數據庫時調用這組標準API,而標準API中的接口由數據庫廠商操做,一般稱爲JDBC驅動程序。
html
JDBC標準主要分爲兩個部分:JDBC應用程序開發者接口以及JDBC驅動程序開發者接口。若是應用程序須要聯機數據庫,就是調用JDBC應用程序開發者接口,相關API主要在java.sql
與javax.sql
兩個包中,JDBC驅動程序開發者接口是數據庫廠商操做驅動程序時的規範。
java
java.sql.DataSource
接口中,實際如何取得Connection則由操做接口的對象來負責。Connection是數據庫鏈接的表明對象,接下來要執行SQL的話,必須取得java.sql.Statement
操做對象,它是SQL描述的表明對象。java.sql.PreparedStatement
。可使用Connection的PreparedStatement()方法創建好預先編譯的SQL語句,當中參數會變更的部分,先指定「?」這個佔位字符。在JDBC裏要表示日期,是使用java.sql.Date
,其日期格式是「年、月、日」,要表示時間的話則是使用java.sql.Time
,其時間格式爲「時、分、秒」,若是要表示「時、分、秒、微秒」的格式,你可使用java.sql.Timestamp
。mysql
javax.sql.rowset
包中。java.lang.Class
的實例表明Java應用程序運行時載入的.class文檔,Class類沒有公開(public)構造函數,實例是由JVM自動產生,能夠經過Object的getClass()方法,或者是透過.class常量取得每一個對象對應的Class對象。ClassNotFoundException
異常。Class對象加載的.class文檔,取得Class對象後,就能夠取得.class文檔中記載的信息,每一個類型都會有對應的類型,若是事先不知道類名稱,能夠利用Class.forName()動態加載.class文檔,取得Class對象以後,利用其newInstance()方法創建類實例。git
Bootstrap Loader、Extended Loader與System Loader在程序啓動後,就沒法再改變它們的搜索路徑。若是在程序運行過程當中,打算動態決定從其餘路徑加載類,就要產生新的類加載器,新的類加載器創建後,父加載器會設爲System Loader。sql
若是B是A的子類,而Node(B)可視爲一種Node(A),則稱Node具備逆變性。Java泛型並不支持逆變性,可使用類型通配字符?與super來聲明,以達到相似逆變性的效果。數據庫
定義enum時能夠自定義構造函數,條件是不得爲公開(public)構造函數,也不能夠在構造函數中調用super(),定義enum時有個特定值類本體語法,可用於操做接口或從新定義父類方法。網絡
Java提供了一些標準註釋,咱們常常看到的@Override就是標準註釋。舉個例子來講,如今有Son和Parent兩個類,且類型Son將會重寫類型Parent的getName函數,可是因爲咱們的馬虎,一不當心寫成了下面的代碼:less
public class Parent{ public String getName(){ return "Parent"; } } public class Son extends Parent{ public String getNames(){ return "Son"; } }
當咱們用上@Override註釋時,就不會再發生這樣的問題,子類函數添加 @Override 後,該函數重寫父類中籤名相同的函數,不然將會編譯失敗。ide
一開始運行代碼,發現拋出異常:
函數
進入下載頁面以後找到JDBC Driver for MySQL
,點擊Download
接着選擇下面那個,即下載ZIP壓縮包
直接下載便可
mysql-connector-java-5.1.38-bin.jar
放到你的JDK中lib目錄下接着,在IDEA中導入這個jar包,選中External Libraries< 1.8 >,而後右鍵打開Open Library Settings
點擊右邊的綠色"+",找到mysql-connector-java-5.1.38-bin.jar
添加進來
這時,再次運行程序會發現拋出了新的異常,這是由於咱們尚未安裝MySQL,數據庫天然也就沒法聯機了
setup_xampp.bat
進行配置,這樣能使配置文件中的路徑信息獲得更新。接着打開xampp-control.exe
,點擊start打開MySQL
一開始我原本想點擊admin,直接建立數據庫,可是點開以後發現沒法訪問網頁
因而,只好點開Shell命令窗口,先輸入指令mysql -uroot
(ps:因爲個人代碼中沒有設密碼,所以,在這裏輸入指令時也不須要輸入密碼,若是有密碼的話能夠用指令mysql -uroot -p
)
爲了防止出現亂碼問題,咱們還要設置數據庫使用UTF-8進行編碼,因而輸入指令SET NAMES utf8;
而後輸入指令CREATE DATABASE lesson
,建立數據庫
這時再運行程序,便能成功開啓數據庫聯機
在此你們能夠參考一下常見的MySQL數據庫命令
本週學習的重點在於MySQL的學習,剛剛接觸的時候感受有點無從下手,中間花了比較長的時間去摸索XAMPP軟件,後來經過在網上搜集資料慢慢對XAMPP有所瞭解,而且創建起了一個簡單的數據庫。一開始我想不太明白Java和數據庫之間到底有什麼聯繫,可是我慢慢意識到Java應用的主流應該是在網絡方向,尤爲是大規模的企業級應用,這必然致使要與大批量的數據發生關係,所以用數據庫來對這些數據進行管理對於一些用Java開發的大規模應用來講是很是有必要的,這也就更加說明了數據庫對Java的重要性,若是咱們可以學好數據庫,那麼對於從此一些項目的開發也會很是有幫助。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | 編寫了Hello Java代碼 |
第一週 | 100/100 | 2/2 | 12/12 | 編寫了Hello Java代碼 |
第二週 | 200/300 | 2/4 | 15/27 | 理解了printf和println的區別 |
第三週 | 450/750 | 1/5 | 22/49 | 對對象有了更深層次的理解 |
第四周 | 869/1619 | 1/6 | 28/77 | 對對象的三大特徵有了更全面的認識 |
第五週 | 1123/2742 | 1/7 | 25/102 | 學會了異常處理 |
第六週 | 863/3605 | 2/9 | 30/132 | 理解了線程 |
第七週 | 505/4110 | 2/11 | 28/160 | 掌握了日期和時間的運用 |
第八週 | 490/4600 | 2/13 | 26/186 | 掌握了git託管的節奏 |
第九周 | 591/5191 | 2/15 | 30/216 | 初步學會使用MySQL |
【附1】本週學習的代碼已經成功託管,截圖以下:
【附2】利用wc統計代碼行數,截圖以下: