1. 程式人生 > >20165330 2017-2018-2 《Java程序設計》第7周學習總結

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

password AS 自動 name mes string jdbc事務處理 sta 數據行

課本知識總結

第十一章 JDBC與MySQL數據庫

  • 安裝XAMPP軟件及啟動MySQL
  1. 下載鏈接:XAMPP
  2. 安裝步驟:參考教程xampp新手學習指引(windows示例)
  3. 啟動MySQL:打開系統cmd命令,轉到MySQL的bin目錄下
    • 初始化:mysqld --initialize-insecure
    • 啟動:mysqld或mysqld -nt
    • 修改root用戶密碼:mysqladmin -u root -p password
  • 連接數據庫
  1. 下載JDBC-MySQL數據庫驅動
  2. 加載JDBC-MySQL數據庫驅動
  3. 連接數據庫
Connection getConnection(java.lang.String,java.lang.String,java.lang.String)
Connection getConnection(java.lang.String)
  • 查詢操作
  1. 向數據庫發送SQL查詢語句
try {  statement sql=con.createStatement();
}
catch(SQLException e) {}
  1. 順序查詢
    • 使用next()方法移到下一個數據行
    • 移動成功返回true,否則返回false
  2. 條件與排序查詢
    • where子語句:select 字段 from 表名 where 條件
    • 排序:用order by子語句對記錄進行排序
select * from mess order by height
select * from mess where name like ‘%林%‘ order by name
  1. 通用查詢:使用返回到程序中的結果集來獲取相關的信息
  • 更新、添加與刪除操作
  1. 更新:update 表 set 字段 = 新值 where <條件子句>
  2. 添加:insert into 表(字段列表) values (對應的具體記錄)
  3. 刪除:delete from 表名 where <條件子句>
  • 預處理語句:可使用通配符?來代替字段的值
    技術分享圖片
  • JDBC事務處理
  1. 用setAutoCommit(booean b)方法關閉自動提交模式
con.setAutoCommit(false);
sql = con.createStatement();
  1. 用commit()方法處理事務
  2. 用rollback()方法處理事務失敗:即撤銷事務所做的操作

遇到的問題及解決方法

  1. 在安裝XAMPP時出現Tomcat下載不成功
    技術分享圖片

    解決方法:上網查了好多沒有看懂,我在卸載重新下載後又重啟了電腦,發現下載成功

  2. 在輸入127.0.0.1 來進入XAMPP時出現下圖
    技術分享圖片

    在看同學的博客後發現,只要將網址改成http://localhost/phpmyadmin就可以直接進入了

  3. 在虛擬機裏運行代碼時遇到
    技術分享圖片

    解決方法:1. 下載mysql,輸入sudo apt-get install mysql-server mysql-client 2. 找到mysql所在目錄:/var/lib/mysql 3.啟動mysql:mysql start

代碼托管

技術分享圖片

錯題總結

第五周
  1. 技術分享圖片

    解析:C項:內部類的類體中不可以聲明類變量和類方法。

  2. 技術分享圖片

    解析:對於嚴重的錯誤,通過Error類來描述,而對於非嚴重的問題,則是通過Exception類來進行描述的。

  3. 技術分享圖片

    解析:B項:finally代碼塊定義一定會執行的代碼,它通常用於關閉資源。對於異常的部分,如果沒有做finally處理,那麽這個程序是有缺陷的,每次調用完資源再把資源釋放掉是必須的,否則運行壓力會特別大。

  4. 技術分享圖片

    解析:File類不涉及對文件的讀寫操作。

  5. 技術分享圖片

    解析:通過查詢API可知,以上均為File類的構造方法。

  6. 技術分享圖片

    解析:public int hashCode():計算此抽象路徑名的哈希碼。

  7. 技術分享圖片

    解析:InputStream是父類。

  8. 技術分享圖片

    解析:參數name指定的文件稱為輸出流的目的地。

  9. 技術分享圖片

    解析:A項,以時間換取空間。

第六周
  • 由於時間預估錯誤及手機自身問題,雖然已經作答完成,卻在最後提交時錯失提交時間,所以沒能按時提交答案,也就沒有糾錯,以下僅憑印象列出個錯題:
  • 1:下列關於Math類的說法,正確的是
    A. public static double cbrt(double a) 返回 double 值的立方根。如果參數為 NaN,那麽結果為 NaN。
    B. public static double cos(double a) 返回角的三角余弦。如果參數為 NaN 或無窮大,那麽結果為 NaN。
    C. public static double floor(double a) 返回最大的(最接近正無窮大)double 值,該值小於等於參數,並等於某個整數。如果參數為 NaN 或無窮大,那麽結果為 NaN。
    D. public static double log10(double a) 返回 double 值的底數為 10 的對數。如果參數為正 0 或負 0,那麽結果為負無窮大。

答案:ABD 解答:查詢API。C項:如果參數為 NaN、無窮大、正 0 或負 0,那麽結果與參數相同。

  • 2:對於如下代碼,下列哪個敘述是正確的?
    public class E {
    public static void main (String args[]) {
    String s1 = args[1];
    String s2 = args[2];
    String s3 = args[3];
    System.out.println(s3);
    }
    }
    A. 程序出現編譯錯誤。
    B. 無編譯錯誤,在命令行執行程序:“java E I love this game”,程序輸出this。
    C. 無編譯錯誤,在命令行執行程序:“java E let us go”,程序無運行異常。
    D. 無編譯錯誤,在命令行執行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序輸出3。

答案:D

  • 3:下列哪個敘述是錯誤的?
    A. "9dog".matches("\ddog")的值是true。
    B. "12hello567".replaceAll("[123456789]+","@")返回的字符串是@hello@。
    C. new Date(1000)對象含有的時間是公元後1000小時的時間
    D. "\hello\n"是正確的字符串常量。

答案:C

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