關於mysql,需要掌握的基礎(二):JDBC和DAO層
目錄
2、載入註冊驅動:為什麼Class.forName(「com.mysql.jdbc.Driver」); 一行程式碼就可以完成載入、註冊驅動操作?
7、語句對象PreparedStatement 和Statement 的比較:
9、掌握連接池(也叫數據源DataSource)-獲取連接對象
jdbc封裝的dao層的模板類jdbcTemplate來操作資料庫:
關於mysql,需要掌握的基礎(二):JDBC和DAO層
1、了解jdbc是什麼?
■ java DataBase Connectivity,java連接資料庫,通過java程式碼操作資料庫,可以進行CRUD
執行SQL語句的java API,JDBC 本身是java連接資料庫的一個標準,【需要載入連接驅動程式-連接資料庫的jar包】,jdbc是進行資料庫連接的抽象層,由java編寫的一組類和介面組成,介面的實現由各個資料庫廠商來完成。
2、載入註冊驅動:為什麼Class.forName(「com.mysql.jdbc.Driver」); 一行程式碼就可以完成載入、註冊驅動操作?
① Class.forName(); 會把com.mysql.jdbc.Driver 這份位元組碼
② 當一份位元組碼別載入進JVM時,就會執行該位元組碼中的靜態程式碼塊,在該靜態程式碼塊中有: java.sql.DriverManager.
3、原始方式-獲取連接對象:
1):載入註冊驅動:
Class.forName(「com.mysql.jdbc.Driver」);
2):獲取連接:通過DriverManger類的getConnection方法來獲取連接對象:
Connection conn = DriverManger.getConnection(url,username, password);
4、JDBC 操作資料庫的步驟:【賈璉欲執事】
1)賈:載入註冊驅動
2)璉:獲取連接對象
3)欲:創建語句對象
4)執:執行SQL語句
5)事:釋放資源
5、了解DAO層是什麼?
■ Data Access Object 數據訪問對象,跟jdbc一樣本身是一個介面,封裝了數據的增刪改查(CRUD)操作。
6、DAO誕生的背景:
■ 以前我們是把資料庫的操作程式碼編寫到客戶端里:
①跟業務程式碼混雜在一起;②而且每次操作資料庫時都需要重複書寫程式碼。
■ DAO封裝了數據的增刪改操作,數據訪問介面。
7、語句對象PreparedStatement 和Statement 的比較:
■ 拼接sql方面和安全方面【注入問題】
8、開發中獲取自動生成主鍵:
■ 獲取主鍵的作用:
—註冊時,一次性填寫過多資訊,不友好,分成兩次填寫唄【**獲取主鍵,將其傳遞給第二個填寫註冊資訊介面**】
■ 原始方式-獲取主鍵:
9、掌握連接池(也叫數據源DataSource)-獲取連接對象
■常用的連接池中的druid(德魯伊):阿里巴巴提供的,號稱世界最好的連接池
✿ 從jdbc—》dao層—》myBatis:
jdbc封裝的dao層的模板類jdbcTemplate來操作資料庫:
● 使用BeanHandler和BeanListHandler要注意,對象的屬性名和表中的列名需要相同,不同報錯。
■ jdbc—>jdbc模板(通用結果集處理器[需要保證類的屬性名和表名相同])—-》ORM框架(MyBatis框架)