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