· 數據庫自己是個獨立運行的應用程序html
· 撰寫應用程序是利用通訊協議對數據庫進行指令交換,以進行數據的增刪查找java
· JDBC(Java DataBase Connectivity)是Java聯機數據庫的標準規範mysql
· 定義一組標準類與接口,應用程序須要聯機數據庫時調用這組標準API,標準API中接口會由數據庫廠商操做,稱爲JDBC驅動程序git
· JDBC標準分爲兩部分正則表達式
· JDBC應用程序開發者接口sql
· JDBC驅動程序開發者接口數據庫
· 依操做方式可將驅動程序分爲四種類型:1、JDBC-ODBC Bridge Driver;2、Native API Driver;3、JDBC-Net Driver;4、Native Protocol Driver學習
· Connection接口的操做對象是數據庫聯機表明對象,要取得Connection操做對象,能夠經過DriverManager的getConnection()。測試
除了基本的用戶名稱、密碼以外,還必須提供JDBC、URL,其定義了鏈接數據庫時的協議、子協議或者數據源識別。.net
取得Connection對象以後,可使用isClosed()方法測試與數據庫鏈接是否關閉。在操做完以後,若肯定再也不須要鏈接,則必須使用close()來關閉與數據庫的鏈接,以釋放連接是相關的必要資源。
讓Java程序設計人員在撰寫數據庫操做程序時能夠有個統一的接口,無須依賴特定的數據庫API,「寫一個Java程序,操做全部數據庫」
·鏈接數據庫
鏈接數據庫,必需要有廠商操做的JDBC驅動程序,必須在CLASSPATH中設定驅動程序JAR文檔
要取得數據庫聯機,必須的幾個動做
註冊Driver操做對象
取得Connection操做對象
關閉Connection操做對象
使用JDBC加載.class文件方法有四種
(1)使用Class.forName()
(2)自行創建Driver操做接口類的實例(直接撰寫代碼java.sql.Driver driver = new com.mysql.jdbc.Driver())
(3)啓動JVM時指定jdbc.drivers屬性(執行java命令時java-Djdbc.drivers=com.mysql.jdbc.Driver;XXXDriverYourProgram)指定多個驅動程序類,用分號間隔
(4)設定JAR中/service/java.sql.Driver文檔
·取得Connection操做對象
「協議」在JDBC
URL中老是jdbc開始,「子協議」是橋接的驅動程序、數據庫產品名稱或聯機機制,「數據源識別」標出數據庫的地址、端口號、名稱、用戶、密碼等信息
關閉Connection操做對象
取得Connection對象後,使用isClosed()方法測試與數據庫的鏈接是否關閉,再也不須要鏈接必須使用close()來關閉與數據庫的鏈接,以釋放鏈接時相關的必要資源,可使用嘗試自動關閉資源語法
使用Statement、ResultSet
執行SQL,必須取得java.sql.Statement,使用Connection的createStatement()創建Statement對象
取得Statement對象後,使用executeUpdate()(在表中插入一筆數據,返回int結果,表示數據變更的筆數)、executeQuery()(用於SELECT等查詢數據庫的SQL,返回java.sql.ResultSet對象,表明查詢結果,會是一筆一筆的數據)
Statement或ResultSet不使用時,使用close()關掉,Statement關閉時,所關聯的ResultSet也會自動關閉
日期時間在JDBC中,並非使用java.util.Date,這個對象可表明的日期時間格式是「年、月、日、分、秒、毫秒」,在JDBC中要表示日期,是使用java.sql.Date,其日期格式是「年、月、日」,要表示時間的話則是使用java.sql.Time,其格式時間爲」時、分、秒」,java.sql.Timestamp表示「時、分、秒、微秒」的格式。
在ResultSet時,默承認以使用next()移動數據光標至下一筆數據,然後使用getXXX()方法來取得數據
在數據光標移動的API上,可使用absolute()、afterLast()、beforeFirst()、first()、last()進行絕對位置移動,使用relative()、previous()、next()進行相對位置移動,移動成功返回true。
可以使用isAfterLast()、isBeforeFirst()、isFrist()、isLast()判斷當前位置。
·交易的四個基本要求是原子性、一致性、隔離行爲與持續性,依英文字母首字母簡稱爲ACID。
在交易管理時,僅想要撤回某個SQL執行點,則能夠設定存儲點。
·幻讀:同一交易期間,讀取到的數據筆數不一致。
·批次更新
·使用addBatch()方法來收集SQL,並使用executeBatch()方法將所收集的SQL傳送出去
·SQL的執行順序就是addBath()時的順序
·Blob與Clob
·JDBC中提供了java.sql.Blob與java.sql.Clob兩個類分別表明BLOB與CLOB數據
·經過PreparedStatement的setBlob()來設定Blob對象,讀取數據時,能夠經過ResultSet的getBlob()取得Blob對象
問題1:定義註釋時,可以使用java.lang.annotation.Target.限定時可指定java.lang.annotation.ElementType的枚舉值。可是在製做JavaDoc文件時,卻默認不會將註釋數據加入文件中,若是想,該怎樣操做?
解決過程:若是想要將註釋數據加入文件,可使用java.lang.annotation.Documented.。 默認父類設定的註釋,不會被繼承至子類,在定義註釋時,設定java.lang.annotation.Inherited註釋,就可讓註釋被子類繼承。
本週代碼方面沒有什麼問題,精力大都在實驗上
,詳情請見本週實驗二的博客。
NIO2中,可使用()中的方法取出文件系統根目錄信息。
A .Path
B .DirectoryStream
C .FileStore
D .FileSystem
• 正則表達式 zo* 匹配()
A .z
B .zo
C .zoo
D .zooooooooooooooooooooooooooo
正確答案: A B C D
本週學習的三張內容相較於前面的內容相對來講比較簡單,可是我以爲更爲實用,本週學習時間比較緊張,知識將幾個代碼跑了跑,後慢若是空出時間來的話必定將書上的代碼都運行一下。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 20篇 | 400小時 | |
第一週 | 100/100 | 1/1 | 7/7 | |
第二週 | 50/150 | 1/2 | 8/15 | |
第三週 | 50/200 | 1/3 | 10/25 | |
第四周 | 500/800 | 1/4 | 20/45 | |
第五週 | 300/1100 | 1/5 | 20/65 | |
第六週 | 800/1900 | 1/6 | 32/97 | |
第七週 | 400/2300 | 2/8 | 30/127 | |
第八週 | 400/2700 | 1/9 | 23/150 | |
第九周 | 300/3000 | 2/11 | 18/168 |
計劃學習時間:25小時
實際學習時間:18小時