1. 程式人生 > >20165214 第七周學習任務

20165214 第七周學習任務

int 問題: 平臺 實現 org 除了 ava 跟著 1.10

20165214 2017-2018-2 《Java程序設計》第七周學習總結

教材學習內容總結

  • 11.1 介紹了如何下載MySQL社區版,我跟著流程下載成功了。
  • 11.2 介紹了如何啟動MySQL數據庫服務器;可以使用mysqadmin -r [用戶名] -p [密碼]來修改密碼。初始化成功後出現了data目錄:
    技術分享圖片

  • 11.3 MySQL客戶端管理工具(如Navicat)可以在與數據庫服務器建立連接之後,進行建立數據庫及相關操作。進行操作後如下結果:
    技術分享圖片

  • 11.4 Java有專門操作數據庫的API:JDBC。使用JDBC的步驟:①與一個數據庫建立連接;②向已連接的數據庫發送SQL語句;③處理SQL語句返回的結果。
  • 11.5 應用程序在和MySQL數據庫服務器上的數據庫建立連接後,能夠和數據庫交互信息。
    • 在將數據庫驅動放到JDK的擴展目錄後,加載數據庫驅動

      try{ Class.forName("com.mysql.jdbc.Driver");
      {
      catch(Exception e){}
    • 連接數據庫使用java.sql包中的DriverManager類中的類方法Connection getConnection來建立連接
  • 11.6 查詢操作。查詢操作分三個步驟:①向數據發送SQL查詢語句;②處理查詢結果;③關閉連接(關閉後程序無法在數據庫中獲得數據)
    • 結果集的遊標的初始位置在結果集第一行的前面,可以使用next()
      方法進行移動。也可以利用Statement stmt=con.creatStatement(int type,int concurrency)來獲得一個Statement對象後,根據type類型可以使得遊標以不同方式進行移動。
    • 條件與排序查詢:①where語句的格式where 字段 from 表格 where 條件,使用該語句可以在表格中獲取關鍵字且關鍵字滿足條件的信息。其中可以用操作符進行匹配,使用%代替0個或者多個字符,用一個下劃線_代替一個字符。②order by語句的格式select * from mess where name like * order by name可以在where語句的基礎上進行關鍵字按條件排序,然後獲取信息。
  • 11.7 更新、添加與刪除操作。首先要創建Statement對象,然後用該對象調用方法public int executeUpadte(String sqlStatement)來進行操作。
    • ①更新:update 表 set 字段 = 新值 where <條件子句>
    • ②添加:insert into 表 values (對應的具體記錄)
    • ③刪除:delete from 表 where <條件字句>
  • 11.8 使用預處理語句(PrepareStatement
    • 預處理語句可以對指定的SQL語句進行預編譯處理,提高程序執行效率。PrepareStatement對象可以調用這三個方法來使得底層內部命令被數據庫執行:
      • ResultSet executeQuery()
      • boolean execute()
      • int executeUpdate()
    • 通配符的使用:在對SQL進行預處理時可以使用通配符?(註意,這裏必須為英文輸入法)代替字段的值,但是要預先調用相應的方法設置通配符?代表的具體值,如:sql.setFloat(1,1.76f);sql.setString(2,"你好");。通配符按照它們在預處理SQL語句中從左到右出現的順序分別被稱為第1個,第2個...。
  • 11.9 通用查詢。ResultSet對象調用調用getMetaData()方法返回一個ResultSetMetaData對象,然後這個對象就可以調用getColumeCount()方法來返回結果集中列的數目;也可以調用getColumnName(int i)方法可以返回結果集中第i列的名字。
  • 11.10 事務
    • 事務及處理。事務由一組SQL語句組成;事務處理是指應用程序保證事務中的SQL語句的執行與否是同步的,這可以保證數據庫中數據的完整性與一致性。
    • JDBC事務處理步驟
      • ①和數據庫的連接對象(例如con)的提交模式是自動提交模式,即它產生的Statement對象對數據庫提交的SQL語句都會立刻升序,因此為了事務處理,con可以調用setAutoCommit(false)方法來關閉自動提交方式,接著再像之前那樣獲取Statement對象sql。
      • ②con可以調用commit()方法讓SQL語句全部生效。
      • ③當con調用commit()方法進行事務處理時,只要其中一個SQL語句未能生效,就拋出SQLException異常,處理異常時要調用rollBack()方法,來撤銷已經成功執行的SQL語句,以此來達到事務處理的效果。
  • 11.11 介紹了SQL Server數據庫的下載與連接建立。
  • 11.12 Derby數據庫是Java平臺提供的一個數據庫管理系統,雖然它占空間小,但是支持幾乎大部分的數據庫應用所需要的特性。應用程序連接Derby數據庫需要兩個步驟
    • ①加載Derby數據庫驅動程序:Class.forName("org.apache.jdbc.EmbeddedDriver");
    • ②創建並連接數據庫或連接已有的數據庫:Connection con=DriverManager.getConnection("jdbc:derdy:students;create=true");這裏create取true,若沒有該數據庫,則創建。如果將create取false,那麽只能連接已有的數據庫而不能創建。

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

  • 問題1:除了下載MySQL以外,我還下載了XAMMP。但是,在啟動Apache和MySQL的時候,出現了如下錯誤:
    技術分享圖片

  • 問題1解決方案:原因是Apache的啟動需要443端口,而443端口被我電腦裏面的VMvare給占用了。於是我打開VMvare的端口設置,把端口值改成了449,問題就解決了。參考博客。

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

  • 問題1:在運行第一個程序的時候出現了這樣的問題
    技術分享圖片

  • 問題1解決方案:現在還沒有解決。

代碼托管

技術分享圖片

上周考試錯題總結

第五周:

  • 錯題1:內部類是可以被private修飾的。
    技術分享圖片

  • 錯題2:對於嚴重的錯誤才用Error類來描述,這裏是不嚴重的問題,應該通過Exception類來描述。
    技術分享圖片

  • 錯題3:要註意審題。
    技術分享圖片

  • 錯題4:要學會查找API(現在已經學會查詢API了)。
    技術分享圖片

  • 錯題5:B選項應當是抽象路徑名的路徑名字符串。
    技術分享圖片

  • 錯題6:?指得是出現1次或者0次。這裏?修飾的是c而不是abc三個字母。
    技術分享圖片

  • 錯題7:
    技術分享圖片

第六周:

  • 錯題1:第⑤項應該是TreeMap

  • 錯題2:A選項是錯的。因為如果指定對象無法與該 set 中的當前元素進行比較,則拋出ClassCastException異常。
    技術分享圖片

  • 錯題3:/d+匹配0~9中的數字出現一次或者一次以上。
    技術分享圖片

  • 錯題4:查閱了API,D是正確的。
    技術分享圖片

  • 錯題5:B選項的右邊發生錯誤,超出short類型範圍。
    技術分享圖片

  • 錯題6:命令行輸入的得一個元素存儲在args[0],因此args[3]=3。
    技術分享圖片

結對及互評

  • 本周結對學習情況
    • 結對照片
    • 結對學習內容
      • 進行了結隊編程,實現了四則運算的本周內容。
  • 上周博客互評情況
    • 20165210

其他

本周學習了數據庫,不過感覺學得很不順暢。。倒也不是說代碼的問題,代碼是能夠看得懂得,但是在建立數據庫的連接、進行程序運行的時候,經常出現這個問題:
技術分享圖片

也一直沒找到解決的方案。這周的時間比較趕,於是我就先把書上的教程都不落下地閱讀並且操作了一回,打算在下周解決完這個問題後,再回來嘗試著運行這些有問題的程序。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積)
目標 5000行 30篇 400小時
第一周 36/36 1/1 8/8
第二周 432/468 2/3 15/23
第三周 964/1432 1/4 16/39
第四周 725/2157 1/5 14/53
第五周 1428/3585 3/8 18/71
第六周 1323/4908 1/9 17/88
第七周 960/5868 3/12 22/110
  • 計劃學習時間:20小時

  • 實際學習時間:22小時

20165214 第七周學習任務