20165203《Java程序設計》第七週Java學習總結

20165203《Java程序設計》第七週Java學習總結

教材學習內容總結

第11章 JDBC與MySQL數據庫html

  • MySQL數據庫管理系統
    MySQL數據庫管理系統,簡稱MySQL,是世界上最流行的開源數據庫管理系統,其社區版(MySQL Community Edition)是最流行的免費下載的開源數據庫管理系統。
    下載安裝後,進行啓動MySQL數據庫服務器,並創建鏈接,創建數據庫,建立表等操做。java

  • 鏈接MySQL數據庫
    1.下載JDBC-MySQL數據庫驅動
    2.加載JDBC-MySQL數據庫驅動
    代碼以下:mysql

    try{ 
    Class.forName("com.mysql.jdbc.Driver");
    }
    catch(Exception e){}

    3.鏈接數據庫git

    使用Connection getConnection(java.lang.String)方法創建鏈接的代碼以下:正則表達式

    Connection con;
    String uri = 
    "jdbc:mysql://192.168.100.1:3306/students?user=r oot&password=&useSSL=true";
    try{
       con = DriverManager.getConnection(uri); //鏈接代碼
     }
    catch(SQLException e){
        System.out.println(e);
    }

    使用
    Connection getConnection(java.lang.String, java.lang.String, java.lang.String)
    方法創建鏈接的代碼以下:sql

    Connection con;
    String uri = "jdbc:mysql:// 192.168.100.1:3306/students? useSSL=true";
    String user ="root";
    String password ="";
    try{  
        con = DriverManager.getConnection(uri,user,password); //鏈接代碼
     }
    catch(SQLException e){
        System.out.println(e);
    }

    4.注意漢字問題數據庫

  • 查詢操做
    具體步驟:
    1.獲得SQL查詢語句對象服務器

try{  Statement sql=con.createStatement();
}
catch(SQLException e ){}

2.處理查詢結果
注意:
不管字段是何種屬性,總可使用
getString(int columnIndex)或
getString(String columnName)
方法返回字段值的串表示學習

3.關閉鏈接hibernate

順序查詢:
指ResultSet對象一次只能看到一個數據行,使用next()方法移到下一個數據行,next()方法最初的查詢位置,即遊標位置,位於第一行的前面。next()方法向下(向後、數據行號大的方向)移動遊標,移動成功返回true,不然返回false。

控制遊標:
爲了獲得一個可滾動的結果集,需使用下述方法得到一個Statement對象。

Statement stmt = con.createStatement(int type ,int concurrency);

條件與排序查詢:

  1. where子語句
    通常格式:
    select 字段 from 表名 where 條件
    2.排序
    用order by子語句對記錄排序
  • 更新、添加與刪除操做
    1.更新
    update 表 set 字段 = 新值 where <條件子句>
    2.添加
    insert into 表(字段列表) values (對應的具體的記錄)

    insert into 表 values (對應的具體的記錄)
    3.刪除
    delete from 表名 where <條件子句>

  • 使用預處理語句
Connection和某個數據庫創建了鏈接對象con,那麼con就能夠調用prepareStatement(String sql)方法對參數sql指定的SQL語句進行預編譯處理,生成該數據庫底層的內部命令,並將該命令封裝在PreparedStatement對象中,那麼該對象調用下列方法均可以使得該底層內部命令被數據庫執行。
  • 事務
    JDBC事務處理步驟
    1.用setAutoCommit(booean b)方法關閉自動提交模式
    2.用commit()方法處理事務
    3.用rollback()方法處理事務失敗

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

Q1:想總結一下hibernatejdbc鏈接數據庫的優劣比較

A1: 主要從內存消耗,運行效率,開發效率三個方面來分析,參考jdbc與hibernate的優缺點比較

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

Q:在運行Example11_1時,出現瞭如圖所示狀況。

A:在學習夥伴的幫助下,在命令行終端輸入sudo apt-get install mysql-server mysql-client命令,安裝MySQL,以後問題解決。

代碼託管

上週考試錯題總結

Q1:下列關於異常的說法,錯誤的是

A.Java使用throws拋出一個異常,使用throw聲明方法可能拋出異常。
B.執行System.out.println(3/0);語句會報ArithmeticException異常。
C.Java中的錯誤是以對象的方式呈現爲java.lang.Throwable的各類子類實例。
D.方法parseInt()在執行過程當中可能拋出DataFormatException異常。
正解:AD
知識點:

  • Java使用throw拋出一個異常,使用throws聲明方法可能拋出異常。
    -方法parseInt()在執行過程當中可能拋出NumberFormatException異常。

Q2: 若是超出JVM運行能力以外,如「byte[] arr=new
byte[1024 * 1024 *600];」會拋出java.lang.OutOfMemory
Error異常。
A.true
B.false
正解:B
知識點: 對於嚴重的錯誤,經過Error類來描述,而對於非嚴重的問題,則是經過Exception類來進行描述的。
Q3:InputStream類繼承自FileInputStream,能夠以字節爲單位讀取文件。

A.true
B.false
正解:B
知識點:InputStream類是父類,FileInputStream是子類

Q4:下列關於TreeSet 泛型類經常使用方法的介紹,正確的是
A.public boolean contains(Object o) 若是此 set 包含指定的元素,則返回 true。若是指定對象沒法與該 set 中的當前元素進行比較,或不包含,則返回false。
B.public boolean add(E e)將指定的元素添加到此 set。若是此 set已經包含這樣的元素,則該調用不改變此 set 並返回 false。

C.public boolean addAll(Collection<? extends E> c)將指定 collection 中的全部元素添加到此 set 中。若是此 set 因爲調用而發生更改,則返回 true。

D.public E lower(E e) 返回此 set 中嚴格小於給定元素的最大元素;若是不存在這樣的元素,則返回 null。
正解:BCD
知識點:若是指定對象沒法與該 set 中的當前元素進行比較,則拋出ClassCastException異常。
Q5:下列說法正確的是

A.hasMoreTokens()方法返回語言符號的計數個數。
B.StringTokenizer 方法不區分標識符、數和帶引號的字符串,它們也不識別並跳過註釋。
C.字符串分析器的計數變量的初始值等於字符串中的單詞數目。
D.與split()方法不一樣的是,StringTokenizer對象不使用正則表達式做爲分割標記。
正解:BCD
知識點:計數變量的值大於0,該方法返回true。不然返回false。

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

本週主要學習了數據庫,在安裝MySQL時出現了一些小波折,不過通過本身查找問題的緣由以及小夥伴的幫助下,問題都迎刃而解了,再次感謝個人學習夥伴們。

學習進度條

~ 代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 48/48 1/1 20/20
第二週 390/438 2/3 18/38
第三週 886/1304 1/4 18/56
第四周 1105/2409 1/5 30/86
第五週 1229/3196 1/6 20/106
第六週 1147/4343 2/8 25/131
第七週 1862/3668 1/9 20/151
相關文章
相關標籤/搜索