20155310 2016-2017-2 《Java程序設計》第九周學習總結

20155310 2016-2017-2 《Java程序設計》第九周學習總結

教材學習內容總結

JDBC入門

•數據庫自己是個獨立運行的應用程序html

•撰寫應用程序是利用通訊協議對數據庫進行指令交換,以進行數據的增刪查找java

•JDBC(Java DataBaseConnectivity)是Java聯機數據庫的標準規範 •定義一組標準類與接口,應用程序須要聯機數據庫時調用這組標準API,標準API中接口會由數據庫廠商操做,稱爲JDBC驅動程序mysql

•JDBC標準分爲兩部分正則表達式

•JDBC應用程序開發者接口sql

•JDBC驅動程序開發者接口數據庫

•依操做方式可將驅動程序分爲四種類型學習

•JDBC-ODBC Bridge Driver測試

•Native API Driver設計

•JDBC-Net Driver3d

•Native Protocol Driver

•Connection接口的操做對象是數據庫聯機表明對象,要取得Connection操做對象,能夠經過DriverManager的getConnection(),除了基本的用戶名稱、密碼以外,還必須提供JDBCURL,其定義了鏈接數據庫時的協議、子協議、數據源識別

•取得Connection對象以後,可使用isClosed()方法測試與數據庫鏈接是否關閉。在操做完以後,若肯定再也不須要鏈接,則必須使用close()來關閉與數據庫的鏈接,以釋放連接是相關的必要資源。

•JDBC目的

•讓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;XXXDriver YourProgram)指定多個驅動程序類,用分號間隔

•(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表示「時、分、秒、微秒」的格式。

JDBC進階

•在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對象

•交易簡介

•隔離行爲的支持上,JDBC能夠經過Connection的getTransactionIsolation()取得數據庫目前的隔離行爲設定,經過setTransactionIsolation()可提示數據庫設定指定的隔離行爲,可設定常數是定義在Connection上

•對交易不設定隔離行爲TRANSACTION_NONE

•metadata簡介

•詮釋數據的數據

•JDBC,經過Connection的getMetaData()方法取得DatabasemetaData對象,經過該對象提供的方法取得數據庫總體信息,Result表示查詢到的數據

學習中的問題和解決方法

•結合教材的圖解,「可重複讀取」針對兩次交易讀取數據不一致,同一交易讀取數據必須相同的狀況,「可循序」針對同一交易期間讀取到的數據不一致,在數據不一致時,交易能夠照順序逐一進行

代碼託管

上週考試錯題總結

•Linux中使用rm刪除文件時,若是想忽略提示,直接刪除文件,可使用-f選項強制刪除。

•Linux中使用cp命令拷貝目錄時要加上-r ,-R選項。

•NIO2中,可使用FileSystem中的方法取出文件系統根目錄信息

正則表達式」(‘|」)(.*?)\1」匹配「'Hello',"World」」的結果是(D):

A . 不匹配

B . 'Hello'

C . "World"

D . 'Hello',"World"

解釋:反向引用 \1 表明第一個()中的匹配內容

正則表達式「r.t」匹配字符串「rat」的Java 代碼表達式是(D)

A ."rat".matcher("r.t")

B ."r.t".matcher("rat")

C .Pattern.compile("rat").matcher("r.t")

D .Pattern.compile("r.t").matcher("rat")

結對及互評

評分標準
1.正確使用Markdown語法(加1分):

•不使用Markdown不加分

•有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)

•排版混亂的不加分

2.模板中的要素齊全(加1分)

•缺乏「教材學習中的問題和解決過程」的不加分

•缺乏「代碼調試中的問題和解決過程」的不加分

•代碼託管不能打開的不加分

•缺乏「結對及互評」的不能打開的不加分

•缺乏「上週考試錯題總結」的不能加分

•缺乏「進度條」的不能加分

•缺乏「參考資料」的不能加分

3.教材學習中的問題和解決過程, 一個問題加1分

4.代碼調試中的問題和解決過程, 一個問題加1分

5.本週有效代碼超過300分行的(加2分) •一週提交次數少於20次的不加分

6.其餘加分:

•週五前發博客的加1分

•感想,體會不假大空的加1分

•排版精美的加一分

•進度條中記錄學習時間與改進狀況的加1分

•有動手寫新代碼的加1分

•課後選擇題有驗證的加1分

•代碼Commit Message規範的加1分

•錯題學習深刻的加1分

•點評認真,能指出博客和代碼中的問題的加1分

•結對學習狀況真實可信的加1分

7.扣分:

•有抄襲的扣至0分

•代碼做弊的扣至0分

•遲交做業的扣至0分

點評過的同窗博客和代碼

•本週結對學習狀況

20155332

20155338

20155219

20155209

20155229

其餘

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 4/200 1/2 10/20
第二週 20/500 2/4 20/38
第三週 40/1000 3/7 30/60
第四周 60/1300 4/9 40/90
第五週 80/1600 5/11 50/120
第六週 100/1600 6/11 60/120
第七週 120/1900 7/13 70/150
第八週 150/1900 8/13 80/150
第九周 180/2200 9/15 90/180

參考資料

相關文章
相關標籤/搜索