20165214 第七週學習任務

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

教材學習內容總結

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

  • 11.3 MySQL客戶端管理工具(如Navicat)能夠在與數據庫服務器創建鏈接以後,進行創建數據庫及相關操做。進行操做後以下結果:
    java

  • 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的時候,出現了以下錯誤:
    mysql

  • 問題1解決方案:緣由是Apache的啓動須要443端口,而443端口被我電腦裏面的VMvare給佔用了。因而我打開VMvare的端口設置,把端口值改爲了449,問題就解決了。參考博客git

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

  • 問題1:在運行第一個程序的時候出現了這樣的問題
    sql

  • 問題1解決方案:如今尚未解決。數據庫

代碼託管

上週考試錯題總結

第五週:

  • 錯題1:內部類是能夠被private修飾的。
    apache

  • 錯題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。

結對及互評

其餘

本週學習了數據庫,不過感受學得很不暢。。倒也不是說代碼的問題,代碼是可以看得懂得,可是在創建數據庫的鏈接、進行程序運行的時候,常常出現這個問題:

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

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積)
目標 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小時

相關文章
相關標籤/搜索