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

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

教材學習內容總結

學習目標

  1. 瞭解JDBC架構
  2. 掌握JDBC架構
  3. 掌握反射與ClassLoader
  4. 瞭解自定義泛型和自定義枚舉
  5. 會使用標準註解html

    JDBC

  • 一種用於執行SQR語句的Java API,一次編譯,處處運行。
  • 兩種接口:1.應用程序開發者接口;2.驅動程序開發者接口。
    java

  • Driver接口:起點
  • Connection接口:數據庫聯機表明對象
  • 在操做完數據庫之,必須使用close()關閉數據庫。
  • 使用Connection的createStatement()創建Statement對象。
  • Statement的execute()用來執行SQL,並能夠測試SQL是執行查詢或更新,返回true表示SQL執行將返回ResultSet做爲查詢結果。
  • 使用DataSource取得聯機;使用ResultSet捲動、更新數據
  • 結果集類型3種設定:
    • ResultSet.TYPE_FORWARD_ONLY(默認)(只能前進數據光標)
    • ResultSet.TYPE_SCROLL_INSENSITIVE(先後移動數據光標)
    • ResultSet.TYPE_SCROLL_SENSITIVE(先後移動數據光標,反映數據庫中的數據修改)
  • 更新設定的2種設定:
    • ResultSet.CONCUR_READ_ONLY(默認)(進行數據讀取)
    • ResultSet.CONCUR_UPDATABLE(進行數據讀取、更新)
  • 數據光標移動的API:
    • 絕對位置移動:absolute()、afterLast()、beforeFirst()、first()、last()。
    • 相對位置移動:relative()、previous()、next()。
    • 判斷目前位置:isAfterLast()、isBeforeFirst()、isFirst()、isLast()。
  • 數據修改的條件限制:必須選取單一表格;必須選取主鍵;必須選取全部的NOT FULL的值.
    • 數據更新:調用updatexxx()方法,而後調用updateRow()方法。取消更新:調用cancelRowUpdates()。
    • 新增數據:先調用moveToInsertRow(),以後調用updatexxx()設定要新增的數據各個字段,而後調用insertRow()新增數據。
    • 刪除數據列:調用deleteRow()
      每次執行excuteUpdate(),都會向數據庫發送一次SQL。批次更新時可使用addBatch()方法來收集SQL,並使用executeBatch()方法將所收集的SQL傳送出去。
  • 用BLOB或CLOB數據類型:將文檔寫入數據庫
    • BLOB用於存儲大量的二進制數據,像是圖檔、影音檔等。java.sql.Blob
    • CLOB用於存儲大量的文字數據。java.sql.Clob
  • 交易的四個基本要求ACID:原子性、一致性、隔離行爲、持續性。
  • Connection的getMetaD()方法:取得DatabaseMetadata對象,經過這個對象提供的各類方法能夠取得數據庫總體信息。mysql

教材學習中的問題和解決過程

  • 問題1:在開始運行書上代碼的時候,不能運行
  • 解決方案:須要安裝MySQL JDBC
    git

  • 下載完成以後解壓,將mysql-connector-java-5.1.38-bin.jar放到JDK中lib目錄下
    以後的步驟能夠參考學長的博客中的安裝過程正則表達式

代碼調試中的問題和解決過程

本週代碼暫未遇到什麼問題sql

代碼託管

代碼行數統計
數據庫

上週考試錯題總結

  • 錯題1:ByteBuffer 調用了flip()以後,position的值必定是0。
  • A .True
  • B .False
  • 正確答案: A 你的答案: B
  • 錯題2:Java NIO中與InputStream/OutputStream相對應的接口是(),用來鏈接數據節點。
  • A .Channel
  • B .Buffer
  • C .Path
  • D .FileStore
  • 正確答案: A 你的答案: D
  • 錯題3:正則表達式」(‘|」)(.*?)\1」匹配 「'Hello',"World」」的結果是()
  • A .不匹配
  • B .'Hello'
  • C ."World"
  • D .'Hello',"World"
  • 正確答案: B C 你的答案: D
  • 解析:反向引用 \1 表明第一個()中的匹配內容
  • 錯題4:abc? 匹配( )
  • A .ab
  • B .abc
  • C .abcc
  • D .abccc
  • 正確答案: A B 你的答案: C
  • 錯題5:正則表達式 zo* 匹配()
  • A .z
  • B .zo
  • C .zoo
  • D .zooooooooooooooooooooooooooo
  • 正確答案: A B C D 你的答案: A C
  • 錯題6:正則表達式「r.t」匹配字符串「rat」的Java 代碼表達式是()
  • A ."rat".matcher("r.t")
  • B ."r.t".matcher("rat")
  • C .Pattern.compile("rat").matcher("r.t")
  • D .Pattern.compile("r.t").matcher("rat")
  • 正確答案: D 你的答案: B
  • 錯題7:哪一個類表明可重用的正則表達式?
  • A .Pattern
  • B .Matcher
  • C .Glob
  • D .Regex
  • 正確答案: A 你的答案: C
  • 錯題8:It is possible to send in data to a Java program via the command-line.(能夠在命令行中給Java程序發送數據)
  • A .True
  • B .False
  • 正確答案: A 你的答案: B
  • 錯題9:Which of the following array declarations are invalid? (下面哪一個數組聲明是不合法的)
  • A .int[] grades = new int[5];
  • B .int grades[] = new int[5];
  • C .int[] grades = { 91, 83, 42, 100, 77 };
  • D .all of the above are valid(以上三個都合法)
  • E .none of the above are valid(以上三個都不合法)
  • 正確答案: D 你的答案: B
  • 錯題10:Which of the statements is true about the following code snippet?(對於下面的代碼段,說法正確的是?)
- 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. (代碼會產生運行時錯誤)
  • 錯題11:In Java, array indexes always begin at ________________ .(Java中,數組索引從______開始)
  • A .-1
  • B .0
  • C .1
  • D .2
  • E .you can declare an array to have any indexes you choose(能夠任意指定)
  • 正確答案: B 你的答案: A數組

    結對及互評

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20145226
    • 結對照片
      001
    • 結對學習內容
      • 學習partner的代碼並做出點評
      • 學習partner的博客和本身的博客作對比,找出不足
  • 上週博客互評狀況

其餘(感悟、思考等,可選)

對於Java的學習愈來愈套路,感受本身有了懈怠的情緒,這讓我想起去年學習C語言的時候也是如此,到最後的時候以爲學的難了,就開始懈怠。這周主要是學習了實驗的內容,對於課本的知識就沒有進行全面的掌握,接下來的學習目標以實踐爲主,本身要好好把握。架構

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 50/100 1/1 24/24 安裝學習Java的一系列軟件
第二週 250/300 1/2 30/54 瞭解Java的基本語法
第三週 552/852 1/3 16/60 瞭解Java是面向對象的語言
第四周 717/1569 1/4 10/70 瞭解Java繼承與接口
第五週 495/2064 1/5 6/76 瞭解異常處理,學會使用Collection收集對象
第六週 754/2818 1/6 6/82 瞭解串流和線程
第七週 679/3493 2/8 5/87 瞭解時間與日期,掌握Date和Calendar的一些用法
第八週 352/3845 1/9 8/95 瞭解並會使用通用API
第九周 1203/5048 2/11 5/100 瞭解通用JDBC等相關知識,完成第二次實驗
  • 計劃學習時間:6小時學習

  • 實際學習時間:5小時

參考資料

相關文章
相關標籤/搜索