一、德魯伊連接池密碼要改嗎
德魯伊連接池數據庫配置文件中包含數據庫密碼,這樣會導緻密碼泄露的風險,因此建議修改德魯伊數據庫密碼。修改密碼的具體步驟如下:
public class Test { public static void main(String[] args) { String password = "oldPassword"; //舊密碼 String newPassword = "newPassword"; //新密碼 String druidPassword = "XXX"; //加密後的密碼 String data = "jdbc:mysql://localhost:3306/druid"; String encryptPassword = DruidPasswordUtil.encrypt(password, data); //加密 if(encryptPassword .equals(druidPassword)) { String newEncryptPassword = DruidPasswordUtil.encrypt(newPassword, data); //加密新密碼 System.out.println(newEncryptPassword); } } }
二、德魯伊數據連接池配置
在使用德魯伊數據連接池之前,需要在pom文件中引入德魯伊依賴,具體如下:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency>
德魯伊數據連接池的配置主要包括:
1、連接池名稱設置
2、JDBC驅動設置
3、數據庫連接字符串設置
4、用戶名和密碼設置
5、連接池參數設置
6、過濾器設置
@Configuration public class DruidConfig { private Logger logger = LoggerFactory.getLogger(DruidConfig.class); @Bean @ConfigurationProperties(prefix = "spring.datasource") public DataSource druid() { return new DruidDataSource(); } @Bean public ServletRegistrationBean statViewServlet() { //配置Druid監控平台 ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); //IP白名單 servletRegistrationBean.addInitParameter("allow", "127.0.0.1"); //IP黑名單(共同存在時,deny優先於allow) servletRegistrationBean.addInitParameter("deny", "192.168.1.100"); //用戶名 servletRegistrationBean.addInitParameter("loginUsername", "druid"); //密碼 servletRegistrationBean.addInitParameter("loginPassword", "123456"); //是否顯示SQL監控 servletRegistrationBean.addInitParameter("logSlowSql", "true"); logger.info("開啟Druid監控"); return servletRegistrationBean; } @Bean public FilterRegistrationBean webStatFilter() { //配置Druid監控攔截器 FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); filterRegistrationBean.setFilter(new WebStatFilter()); //過濾規則 filterRegistrationBean.addUrlPatterns("/*"); //過濾靜態資源 filterRegistrationBean.addInitParameter("exclusions", "*.css,*.js,*.html,/druid/*"); return filterRegistrationBean; } }
三、德魯伊連接池教程
德魯伊連接池是目前比較流行的Java連接池之一,它不僅可以完美整合一些主流框架,而且提供了很多高級特性。
德魯伊連接池的使用流程如下:
1、添加德魯伊連接池依賴
2、在配置文件中對德魯伊連接池進行配置
3、在代碼中獲取連接池對象
4、從連接池對象中獲取連接
5、將連接返回連接池
@Configuration public class TestConfig { @Autowired private DataSource dataSource; @Bean public JdbcTemplate jdbcTemplate() { return new JdbcTemplate(dataSource); } public void test() { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { //從連接池中獲取連接 conn = dataSource.getConnection(); String sql = "SELECT * FROM user"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while(rs.next()) { System.out.println("user_id:" + rs.getInt("user_id") + ",user_name:" + rs.getString("user_name")); } } catch(SQLException e) { e.printStackTrace(); } finally { //將連接返回連接池 try { if(rs != null) rs.close(); if(pstmt != null) pstmt.close(); if(conn != null) conn.close(); } catch(SQLException e) { e.printStackTrace(); } } } }
四、德魯伊連接池有什麼用
德魯伊連接池主要用於解決數據庫連接過多、連接被耗盡、效率低下等問題。通過使用連接池,可以避免頻繁地創建、關閉數據庫連接,提高了數據庫連接的效率和穩定性。
五、德魯伊連接池優缺點
德魯伊連接池的優點有:
1、提高了數據庫連接使用效率和穩定性
2、提供豐富的監控、統計功能,便於問題排查
3、配合Druid監控平台可以監控SQL語句
4、支持JDBC和Datasource數據源類型
德魯伊連接池的缺點有:
1、需要在應用啟動前進行初始化,佔用一定的時間
2、默認配置較為保守,沒有發揮出德魯伊連接池的高級特性
六、德魯伊連接池源碼
德魯伊連接池源碼下載地址:
https://github.com/alibaba/druid
七、德魯伊連接池配置參數
在使用德魯伊連接池時,可以對連接池進行配置參數,從而達到更好的使用效果,主要的配置參數如下:
1、initialSize:初始化連接數量
2、minIdle:最小空閑連接數量
3、maxActive:最大連接數量
4、maxWait:獲取連接等待超時時間
5、timeBetweenEvictionRunsMillis:連接空閑池中的最小生存時間
6、minEvictableIdleTimeMillis:連接池中連接最小空閑時間
7、validationQuery:用於驗證連接是否可用的SQL語句
8、testWhileIdle:空閑連接是否進行驗證
9、testOnBorrow:獲取連接時是否進行驗證
10、testOnReturn:歸還連接時是否進行驗證
八、德魯伊連接池如何銷毀
在應用關閉時,需要手動關閉德魯伊連接池,避免連接池資源未被釋放,而導致資源泄露。關閉連接池的詳細代碼如下:
@PreDestroy public void destroy() { if(dataSource != null) { ((DruidDataSource) dataSource).close(); } }
九、德魯伊連接池參數說明
德魯伊連接池參數說明請參考官方文檔:
https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E6%95%B0
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/303240.html