20145209 2016-2017-2 《Java程序设计》第9周学习总结
20145209 2016-2017-2 《Java程序設計》第9周學習總結
教材學習內容總結
JDBC簡介
撰寫應用程序是利用通信協議對數據庫進行指令交換,以進行數據的增刪查找
JDBC目的:讓Java程序設計人員在撰寫數據庫操作程序時可以有個統一的接口,無須依賴特定的數據庫API,“寫一個Java程序,操作所有數據庫”
連接數據庫
聯機數據庫,需要在classpath中設定JDBC驅動程序
基本數據庫操作相關JDBC接口或類是為位于java.sql包中
Connection接口的操作對象是數據庫聯機代表對象
使用Statement、ResultSet
Statement是SQL描述的代表對象,可以使用executeUpdate()、executeQuery()等方法來執行SQL。
Statement的executeUpdate()方法用于SELECT等查詢數據庫的SQL,返回int結果,表示數據變動的筆數
Statement的executeQuery()方法返回java.sql.ResultSet對象,代表查詢結果。
Statement的execute()方法用來執行SQL,返回true表示SQL執行將返回ResultSet作為查詢結果。
使用PreparedStatement、CallableStatement
如果有些操作只是SQL語句當中某些參數會有所不同,其余的SQL子句皆相同,則可以使用java.sql.PreparedStatement。調用clearParametere()清除設置的參數,之后就能再次使用這個PreparedStatement實例。
如果撰寫數據庫的預存程序,并想要使用JDBC來調用,則可使用java.sql.CallableStatement。必須調用prepareCall()建立CallableStatement異常,可以使用registerOutParameter()注冊輸出參數。
使用DataSource取得聯機
讓MessageDAO依賴于java.sql.DataSource接口,可以通過其定義的getConnection()方法取得Connection。
日后要修改數據庫服務器主機位置,為了打算重復利用Connection對象而想要加入聯機池機制等情況,這個MessageDAO都不用修改。
聯機相關信息可以使用.properties設定。
使用ResultSet卷動、更新數據建立Statement或PreparedStatement實例時,可以指定結果集類型與并行方式。
批次更新
批次更新的限制是,SQL不能使SELECT,否則會拋出異常。
要支持批次更新,必須在JDBC URL 上附加rewriteBatchedStatements = true 參數才有實際的作用。
Blob與Clob
BLOB用于存儲大量的二進制數據,像是圖檔、影音檔等;CLOB用于存儲大量的文字數據。
可以把BLOB字段對應byte[]或輸入\輸出串流。
交易簡介
在交易管理時,僅想要撤回某個SQL執行點,則可以設定存儲點。
通過JDBC得知數據庫是否支持某個隔離行為設定,可以通過Connection的getMetaData()取得DatabaseMetadata對象,通過DatabaseMetadata的supportTransaction-IsolationLevel()得知是否支持某個隔離行為。
metadata簡介Metadata即“詮讀數據的數據”,可以通過connection的getMetaData()方法取得DatabaseMetaData對象,可以取得數據庫整體信息,而ResultSet表示查詢到的數據,可以通過ResultSet的getMetaData()方法,取得ResultSetMetaData對象。
RowSet簡介javax.sql.RowSet接口,代表數據的列集合。可以對列集合進行增刪改查。通過setCommand()設定查詢指令,通過execute()執行查詢指令以填充數據。
RowSet簡介
定義了javax.sql.RowSet接口用以代表數據的類集合。
數據可以是電子表格數據、XML數據或任何具有列集合概念的數據源。可以使用RowSet對列集合進行增刪查改。
教材學習中的問題和解決過程
- 問題1:IDEA中如何取得數據庫鏈接?
- 問題1解決方案:通過百度找到了答案
網址:http://www.cnblogs.com/jeffen/p/6027970.html
上周考試錯題總結
- 錯題1:NIO2中,可以使用(D)中的方法取出文件系統根目錄信息。
A .Path
B .DirectoryStream
C .FileStore
D .FileSystem
錯題2:Which of the statements is true about the following code snippet?(對于下面的代碼段,說法正確的是?)(E)
int[] array = new int[25];
array[25] = 2;
A .
The integer value 2 will be assigned to the last index in the array.(整數2會賦給數組中最后一個元素)
B .
The integer value 25 will be assigned to the second index in the array.(整數25會賦給數組中的第2個索引)
C .
The integer value 25 will be assigned to the third value in the array. (整數25會賦給數組中的第3個元素)
D .
This code will result in a compile-time error.(代碼會產生編譯時錯誤)
E .
This code will result in a run-time error. (代碼會產生運行時錯誤)
評分標準
- 不使用Markdown不加分
- 有語法錯誤的不加分(鏈接打不開,表格不對,列表不正確...)
- 排版混亂的不加分
- 缺少“教材學習中的問題和解決過程”的不加分
- 缺少“代碼調試中的問題和解決過程”的不加分
- 代碼托管不能打開的不加分
- 缺少“結對及互評”的不能打開的不加分
- 缺少“上周考試錯題總結”的不能加分
- 缺少“進度條”的不能加分
- 缺少“參考資料”的不能加分
教材學習中的問題和解決過程, 一個問題加1分
代碼調試中的問題和解決過程, 一個問題加1分
- 一周提交次數少于20次的不加分
- 周五前發博客的加1分
- 感想,體會不假大空的加1分
- 排版精美的加一分
- 進度條中記錄學習時間與改進情況的加1分
- 有動手寫新代碼的加1分
- 課后選擇題有驗證的加1分
- 代碼Commit Message規范的加1分
- 錯題學習深入的加1分
- 點評認真,能指出博客和代碼中的問題的加1分
- 結對學習情況真實可信的加1分
- 有抄襲的扣至0分
- 代碼作弊的扣至0分
- 遲交作業的扣至0分
點評模板:
- 博客中值得學習的或問題:
- xxx
- xxx
- ...
- 代碼中值得學習的或問題:
- xxx
- xxx
- ...
基于評分標準,我給本博客打分:XX分。得分情況如下:xxx
參考示例
點評過的同學博客和代碼
- 本周結對學習情況
- 結對同學學號1
- 結對照片
- 結對學習內容
- XXXX
- XXXX
- ...
上周博客互評情況(只要鏈接,具體點評放相應博客下)
- 學號1
- 學號2
- 學號3
- 學號4
- ...
學習進度條
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/4 | 18/38 | |
| 第三周 | 500/1000 | 3/7 | 22/60 | |
| 第四周 | 300/1300 | 2/9 | 30/90 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
參考:軟件工程軟件的估計為什么這么難,軟件工程 估計方法
計劃學習時間:10小時
實際學習時間:6小時
改進情況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)
參考資料
Java學習筆記(第8版)
- 《Java學習筆記(第8版)》學習指導
...
轉載于:https://www.cnblogs.com/liuyiyang/p/6753780.html
總結
以上是生活随笔為你收集整理的20145209 2016-2017-2 《Java程序设计》第9周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C中的一些不足
- 下一篇: Jstatd命令(Java Statis