第14周 數據庫

0. 本週課程設計發佈

Java課程設計mysql

1. 本週學習總結

1.1 以你喜歡的方式(思惟導圖或其餘)概括總結多數據庫相關內容。

2. 書面做業

1. MySQL數據庫基本操做

創建數據庫,將本身的姓名、學號做爲一條記錄插入。(截圖,需出現本身的學號、姓名)
在本身創建的數據庫上執行常見SQL語句(截圖)
-參考:實驗任務書-題目1
打開mysql,輸入密碼,結果密碼沒設置好是空密碼,輸入SQL語句後面還要加「;」。。。

show databases展現數據庫

設置了一個test1

從新設置了一個,desc student顯示student相關數據

插入了個人姓名學號;

一系列的刪除更改操做
sql

2. 使用JDBC鏈接數據庫與Statement

2.1 使用Statement操做數據庫。(粘貼一段你認爲比較有價值的代碼,出現學號)

2.2 你認爲使用JDBC操做數據庫的套路是什麼?有那幾點須要注意。

1.DriverManager裝載數據庫所需驅動到JVM
2.connection建立鏈接
3.建立Statement實例
4.執行sql語句
5.關閉連接釋放資源

-參考:實驗任務書-題目2數據庫

3. PreparedStatement與參數化查詢

3.1 使用PreparedStatement根據用戶指定的查詢條件進行查詢。(粘貼一段你認爲比較有價值的代碼,出現學號)

這段代碼頗有意思,盯着她看了很久

3.2 批量更新-批量插入1000個學生,統計整個操做所消耗的時間。對比普通方法插入與使用executeBatch方法所消耗的時間。(使用JUint4測試,須要出現時間對比截圖)

//201521044152       
long t1=System.currentTimeMillis();
//處理1000個學生信息
for(int i=0;i<1000;i++){
    String strSql = "insert into students(stuno,name,birthdate,age) values(?,?,?,?)";
    pStatement = con.prepareStatement(strSql);
    pStatement.setString(1, "007");
    pStatement.setString(2, "毛小卓");
    pStatement.addBatch();
}
long t2=System.currentTimeMillis();
Calendar c=Calendar.getInstance();
c.setTimeInMillis(t2-t1);
System.out.println("耗時: " + c.get(Calendar.MINUTE) + "分 " + c.get(Calendar.SECOND) + "秒 " + c.get(Calendar.MILLISECOND) + " 微秒");
int[] arr=pStatement.executeBatch();
pStatement.executeUpdate();
pStatement.close();
System.out.println(Arrays.toString(arr));

參考:實驗任務書-題目3函數

4. JDBCUtil與DAO

4.1 粘貼一段你認爲比較有價值的代碼,並說明爲何要摘取這段代碼。出現學號

//201521044152
public boolean add(Student stu)
{
    boolean flag=true;
    String sql= "insert into lin (Name,ID) values(?,?)";
    try{
        pst=conn.prepareStatement(sql);
        pst.setString(1,stu.name);
        pst.setInt(2,stu.id);
        int i=pst.executeUpdate();
        if(i==0){
            flag=false;
        }

    }catch (Exception e)
    {
        e.printStackTrace();
    }
    finally {
        try {
            pst.close();
        }catch(SQLException e) {}
    }

    return flag;
}

public void TdiplayAllStudent(List<Student> t) {
    for(int i=0;i<t.size();i++){
        System.out.println(t.get(i).toString());
    }
}//遍歷List,輸出學生姓名和年齡
public void MAPdiplayAllStudent(List<Student> t) {
    Map<String,Student> map=new HashMap<String,Student>();
    for(int i=0;i<t.size();i++){
        map.put(t.get(i).getName(), t.get(i));
    }
}
Map<String,Integer> map=new HashMap<String,Integer>();
//取出Student,放到Map中

4.2 使用DAO模式訪問數據庫有什麼好處?

對於比較大型的項目,使用DAO時分工比較明細,方便後期維護,DAO提供給用戶的接口只有DAO的接口,若是用戶想添加數據,能夠調用DAO的create()函數便可,不須要對數據庫在進行復雜的好多操做

參考:實驗任務書-題目5學習

5. 使用數據庫改造購物車系統

5.1 使用數據庫改造之前的購物車系統(應有圖形界面)。若是之前爲完成購物車系統,可編寫基於數據庫的學生管理系統。包括對學生的增刪改查,要求使用。

5.2 相比較使用文件,使用數據庫存儲與管理數據有何不同?

使用文件存儲與管理的實現以文件爲單位的數據共享,而使用數據庫存儲與管理的實現是以記錄和字段爲單位的數據共享;使用文件操做數據,須要打開文件和關閉文件,而用    數據庫來操做數據,只須要輸入密碼打開數據庫輸入命令來實現數據的存儲等功能,更加簡單;使用文件存儲與管理,硬盤空間浪費嚴重,容易形成數據的不一致;使用數據庫存儲與管理中,數據能夠被多個用戶、多個應用共享使用,減小了存儲空間的浪費,空間利用比較合理,提升了數據的一致性和完整性。

選作:6. 批量更新測試

數據庫課程上,須要測試索引對查找的加速做用。然而在幾百或幾千的數據量上進行操做沒法直觀地體驗到索引的加速做用。現但願編寫一個程序,批量插入1000萬條數據,且該數據中的某些字段的內容能夠隨機生成。測試

6.1 截圖你的代碼(出現學號)、統計運行時間

6.2 計算插入的速度到底有多快?(以條/秒、KB/秒兩種方式計算)

選作:7. 事務處理

7.1 使用代碼與運行結果證實你確實實現了事務處理功能。(粘貼一段你認爲比較有價值的代碼,出現學號)

7.2 你以爲何時須要使用事務處理?

參考:實驗任務書-題目4ui

選作 8. 數據庫鏈接池

使用數據庫鏈接池改寫題目5設計

參考:實驗任務書-題目4
數據鏈接池參考資料code

3. 碼雲

3.1. 碼雲代碼提交記錄

在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖
blog

4.課外閱讀

相關文章
相關標籤/搜索