1. 程式人生 > >MyBatis學習-使用Druid連線池將Maybatis整合到spring

MyBatis學習-使用Druid連線池將Maybatis整合到spring

[TOC] ## 前言 在[MyBatis學習-連線oracle實現CURD操作](https://www.cnblogs.com/Jack-Blog/p/13179382.html)實現了MyBatis基本配置與CRUD操作。但是每次都是手工建立SqlSessionFactory本篇將通過spring來管理bean,同時使用Druid連線池替換自帶的連線池。 ## 什麼是Druid連線池 Druid是一個JDBC元件,它包括三部分: * DruidDriver 代理Driver,能夠提供基於Filter-Chain模式的外掛體系。 * DruidDataSource 高效可管理的資料庫連線池。 * SQLParser ## Druid可以做什麼? 1. 可以監控資料庫訪問效能,Druid內建提供了一個功能強大的StatFilter外掛,能夠詳細統計SQL的執行效能,這對於線上分析資料庫訪問效能有幫助。 2. 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴充套件性好的資料庫連線池。 3. 資料庫密碼加密。直接把資料庫密碼寫在配置檔案中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支援PasswordCallback。 4. SQL執行日誌,Druid提供了不同的LogFilter,能夠支援Common-Logging、Log4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的資料庫訪問情況。 擴充套件JDBC,如果你要對JDBC層有程式設計的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴充套件外掛。 ## 匯入庫包 ### 連線oracle 如果我們要連線oracle資料庫,需要匯入oralce的jdbc的包。但是由於oracle收費, 因此maven沒有oracle庫包,需要我們自己手工匯入外部包。或者也可以將oracle的jar匯入到maven庫中。具體匯入步驟可以檢視[Maven新增Oracle的依賴及驅動](https://blog.csdn.net/qq_21359547/article/details/79731665) ``` xml ``` ### 連線mysql 由於mysql是免費的,我們可以通過maven直接安裝mysql的jdbc資料庫連線包 ``` xml ``` ### 匯入mybatis ``` xml ``` ### 匯入druid ``` xml ``` ### 匯入spring-jdbc包 ``` xml ``` ### 匯入spring包 ``` xml ``` ### 匯入spring事務相關包 ``` xml ``` ### 匯入mybatis-spring整合包 ``` xml ``` ## 配置 下面使用過mysql資料庫為例。 ### 資料庫配置 在resources目錄下新建一個mysql.properities檔案,用於配置連線資料庫的相關配置。 ``` druid.url=jdbc:mysql://localhost:3306/mysql?serverTimezone=UTC #這個可以預設的,會根據url自動識別 druid.driverClassName=com.mysql.cj.jdbc.Driver druid.username=root druid.password=123456 ##初始連線數,預設0 druid.initialSize=10 #最大連線數,預設8 druid.maxActive=30 #最小閒置數 druid.minIdle=10 #獲取連線的最大等待時間,單位毫秒 druid.maxWait=2000 #快取PreparedStatement,預設false druid.poolPreparedStatements=true #快取PreparedStatement的最大數量,預設-1(不快取)。大於0時會自動開啟快取PreparedStatement,所以可以省略上一句設定 druid.maxOpenPreparedStatements=20 ``` ### druid配置 在resources目錄下新建一個applicationContext-mysql.xml檔案,用於配置mysql的druid的資料庫連線池配置以及注入到spring的bean。 1. 資料來源的配置從mysql.propertie獲取的 ``` xml