今日內容
- 數據庫連接池
- Spring JDBC : JDBC Template
數據庫連接池
概念:
其實就是一個容器(集合),存放數據庫連接的容器
當系統初始化好后,容器被創建,容器中會申請一些連接對象,當用戶來訪問數據庫時,從容器中獲取連接對象,用戶訪問完之后,會將連接對象歸還給容器
好處:
- 節約資源
- 用戶訪問高效
實現
- 標準接口:DataSource javax.sql包下的
- 方法:
- 獲取連接:getConnection()
- 歸還連接:Connection.close(). 如果連接對象Connection是從連接池中獲取的,那么調用方法,則不會再關閉連接了.而是歸還連接
- 方法:
- 一般我們不去實現它,有數據庫廠商來實現
- C3P0: 數據庫連接池技術
- Druid: 數據庫連接池實現技術,由阿里巴巴提供的(這玩意十分的高效,性能好,全球最好的數據庫連接池技術!nb吧)
C3P0:數據庫連接池技術
步驟:
- 導入jar包(兩個)
c3p0-0.9.5.2.jar
mchange-commons-java-0.1.12.jar
不要忘記導入數據庫的驅動jar包 - 定義配置文件:
- 名稱:-c3p0.properties 或者 c3p0-config.xml
- 路徑:直接將文件放在src目錄下即可.
- 創建核心對象 數據庫連接池對象 ComboPooledDataSource
- 獲取連接:getConnection
Druid :數據庫連接池實現技術,有阿里巴巴提供的
步驟:
- 導入jar包 fruid-1.9.9.jar
- 定義配置文件:
- 是properties形式的
- 可以叫任意名稱,可以放在任意目錄下
- 加載配置文件.properties
- 獲取數據庫連接池對象:通過工廠來獲取DruidDataSourceFactory
- 獲取連接:getConnection
Spring JDBC
Spring 框架對JDBC的簡單封裝
提供了一個JDBCTemplate對象簡化JDBC的開發
步驟:
1. 導入jar包
2. 創建JdbcTemplate對象,依賴于數據源DataSource
- JdbcTemplate template = new JdbcTemplate(ds);
3. 調用JdbcTemplate的方法來完成CRUD的操作
- update():執行DML語句.增刪改語句
- queryForMap(): 查詢結果將結果集封裝為map集合
- 將列明作為key,將值作為value 將這條記錄封裝為一個map集合
- 注意:這個方法查詢的結果集長度只能是1
- queryForList(): 查詢結果將結果集封裝為list集合
- 注意:將每一條記錄封裝為一個Map集合,再講Map集合裝載到List集合中
- query(): 查詢結果,將結果封裝為JavaBean對象
- query的參數:RowMapper,一般我們使用BeanPropertyRowMapper實現類.
- 以完成數據到JavaBean的自動封裝
- new BeanPropertyRowMapper<類型>(類型.class)
- queryForObject:查詢結果,將結果封裝為對象
- 一般用于聚合函數的查詢
4. 練習:
- 需求:
1. 修改1號數據的 salary 為 10000
2. 添加一條記錄
3. 刪除剛才添加的記錄
4. 查詢id為1的記號,將其封裝為Map集合
5. 查詢所有記錄,將其封裝為List
6. 查詢所有記錄,將其封裝為Emp對象的List集合
7. 查詢總記錄數