答:設置兩個dao接口,分別用於管理用戶模塊和圖書模塊,其中要創建一個圖書表books
用於存放圖書館裏的全部書籍,而後要創建一個用戶表users
用於存放用戶,而後每一個用戶要擁有一個借閱表,表名以用戶ID前加一個字母a
(表名不能全爲數字)命名。mysql
books
表:
sql
users
表:
數據庫
借閱表
:
api
須要將每週的代碼統計狀況融合到一張表中。函數
周次 | 總代碼量 | 新增代碼量 | 總文件數 | 新增文件數 |
---|---|---|---|---|
2 | 607 | 607 | 15 | 15 |
3 | 1642 | 1035 | 33 | 18 |
5 | 2044 | 402 | 42 | 9 |
6 | 2874 | 830 | 57 | 15 |
7 | 3161 | 287 | 63 | 6 |
8 | 4299 | 1138 | 72 | 9 |
9 | 4831 | 532 | 81 | 9 |
10 | 5475 | 644 | 93 | 12 |
11 | 5958 | 483 | 102 | 9 |
12 | 6819 | 861 | 116 | 14 |
13 | 7408 | 589 | 127 | 11 |
14 | 8348 | 940 | 141 | 14 |
15 | 9296 | 948 | 156 | 15 |
創建數據庫,將本身的姓名、學號做爲一條記錄插入。(截圖,需出現本身的學號、姓名)
在本身創建的數據庫上執行常見SQL語句(本身完成,沒必要截圖)學習
public static void displayAll()
與public static int insert(Student stu)
的關鍵代碼並出現本身的學號。
public Student findStuByName(String name)
,其中的sql語句怎麼寫?public Student findStuByName(String name)
,實現根據name進行查找, 。(粘貼關鍵代碼及運行截圖,運行截圖中需出現學號,比較2.2,說明兩種實現的不一樣)答:使用PreparedStatement
對象和使用Statement
對象的主要區別是前者採用了」?」
佔位符,用於執行參數化查詢,它經過connection.preparedStatement(strSql)
方法能夠可讓數據庫對其strSql
語句進行預編譯,這樣這條語句就能在後續的查詢中重用,在速度上的優越性大於Statement
對象的查詢速度。測試
public List findStusByName(String name)
,可根據name進行模糊匹配,如將姓名中包含zhang
的同窗都找出來。先插入一些相關數據:ui
findStusByName
方法:編碼
測試:命令行
運行結果:
數據庫課程上,須要測試索引對查找的加速做用。然而在幾百或幾千的數據量上進行操做沒法直觀地體驗到索引的加速做用。現但願編寫一個程序,批量插入10萬條數據,且該數據中的某些字段的內容能夠隨機生成。
答:十萬條對於普通方法來講要跑過久了(一萬條其實也很久了),就改爲一萬條了。
用10萬的測試數據來單獨測試了一遍batchTest,能夠看到速度也是很快的。
StudentDao
接口及其實現類StudentDaoJDBCImpl
。StudentDao
接口:StudentDaoJDBCImpl
類:Test
類:
答:數據庫不一樣,其使用它們的命令語句也不一樣,使用DAO模式訪問數據庫能夠屏蔽不一樣數據庫實現差別性,它只關注怎麼將數據寫入數據庫和怎麼取出來,對底層訪問提供了很好的支持。在這一題中,由於只寫了一種實現方法,因此它的優越性沒有很好的體現出來,但若是咱們要使用DAO模式來訪問另一個數據庫,那麼咱們只須要寫一個新的實現類來實現DAO接口中所定義的方法,而後使用的時候就能夠根據咱們的須要使用接口.實現類
語句來選擇使用哪個數據庫,但若是咱們用的是傳統的模式,那咱們就得寫兩個獨立程序來實現這個功能,不只增長了代碼量,還不方便程序的拓展與維護。
答:在數據庫中,一項事務是指由一條或多條對數據庫更新的語句組成的一個工做單元,事務處理機制是指在處理事務時,只有當事務中全部操做都正常完成之後,事務才能被提交到數據庫,若是一項未完成都要撤銷工做。
在jdbc的api中,系統默認會自動提交事務,所以要將多條語句組成一個事務,就得使用setAutoCommit(false)
語句來禁止提交,當總體都正常執行之後再使用’commit()’來提交,不然就要調用’rollback()’方法來撤銷事務。
數據表內容:
正常運行:
異常運行:
數據表內容(發現MySQL的可視化界面用起來更方便嘞,我的感受比命令行好使):
答:在數據庫的操做中,事務是多條操做語句組成一個不可分割的總體,只有其中全部的操做都成功纔可以算整個事務的成功,所以要實現這種功能,就須要用到事務處理,能夠在發生錯誤時及時撤銷以前的事務。`