使用Spring連線資料庫

2021-10-03 11:20:30 字數 2491 閱讀 5805

資料庫連線是一種關鍵、有限且昂貴的資源,建立和釋放資料庫連線是乙個很耗時的操作,頻繁地進行這樣的操作將占用大量的效能開銷,而使用資料庫連線池可以節省系統許多開銷。

資料庫連線池(database connection pooling)在程式初始化時建立一定數量的資料庫連線物件並將其儲存在一塊記憶體區中,它允許應用程式重複使用乙個現有的資料庫連線,而不是重新建立乙個;釋放空閒時間超過最大空閒時間的資料庫連線以避免因為沒有釋放資料庫連線而引起的資料庫連線遺漏。這項技術能明顯提高對資料庫操作的效能。

資料庫連線池不僅負責建立資料庫連線,還負責分配、管理和釋放資料庫連線,可以通過配置連線池的引數來控制連線池中的初始連線數、最小連線、最大連線、最大空閒時間等。

最大連線數資料庫連線池一直保持的資料庫連線個數

最小連線數限定了連線池能儲存的最大連線數,如果資料庫連線請求超過此數,後面的資料庫連線請求將被加入到等待佇列中

連線最大空閒時長控制空閒連線存活時長,超時連線會被清理,但連線池連線總數不會低於最小連線數

最大連線時長單個已使用連線所能持續的最大時長,超時則被釋放

原理解讀:程式初始化時建立一定資料量的資料庫連線物件儲存在記憶體中,當程式需要訪問資料庫時,並非建立乙個新的連線,而是從連線池中取出乙個已建立的空閒連線物件;如果連線池內沒有空閒連線,連線池建立新的資料庫連線物件並將這個連線物件提供給應用程式使用,應用程式用完後,資料庫連線池不會立刻關閉該連線,在空閒時間超過最大空閒時間時,該連線才被關閉;當程式需要再次訪問資料庫時,資料庫連線池會將空閒時間最長的那個連線提供給應用程式; 如果資料庫連線請求超過最大連線數,則該資料庫連線請求被加入到等待佇列中;程式退出時,資料庫連線池斷開所有連線並釋放資源。

流行連線池:hikaricp資料庫連線池

是當前速度最快的資料庫連線池

**示例:

以使用hikaricp為例,要想使用spring連線並進行資料庫操作,需要使用jdbctemplate類,借助該類提供的方法可以很方便的實現資料的增刪改查。

(1)修改spring配置檔案,新增jdbctemplate配置資訊

(2)建立jdbctemplate物件,呼叫jdbctemplate方法

注:可通過向操作類中新增以下**讓ioc容器自動建立jdbctemplate物件

@autowired

private jdbctemplate jdbctemplate;

1、修改

public class test else 

}}

2、查詢

public class test 

}

public class test 

} }}

4、查詢自定義類物件(內部類,實現resultsetextractor介面)

public class test 

return null;

}} userinfo userinfo = jdbctemplate.query(sql, new userinforesult(), "1e549aeb-1417-4129-b94f-5f5089af0367");

system.out.println(userinfo);

}}

public class test 

}, "1e549aeb-1417-4129-b94f-5f5089af0367");

}}

public class test , "1e549aeb-1417-4129-b94f-5f5089af0367");

system.out.println(userinfo);

}}

7、獲取資料庫多條資料(使用query方法)

public class test 

});}}

8、獲取資料庫多條資料(使用queryforobject方法)

public class test 

return list;

}});

for (userinfo ui : list)

}}

spring連線資料庫時username錯誤

spring抽取properties檔案中的鍵值,注入到bean中連線資料庫 之前是直接寫死資料庫連線資訊,像這樣 driverclassname value com.mysql.cj.jdbc.driver url value 這個是url username value 資料庫使用者名稱 data...

使用python連線資料庫

使用python連線資料庫 import pymysql 第一步 連線資料庫 conn pymysql.connect host ip位址 port 埠,user 賬號 passwd 密碼 database 資料庫名 第二步 通過連線拿到游標 cursor conn.cursor try sql s...

使用sqlplus連線資料庫

sqlplus sjtu sjtu description address list address protocol tcp host 192.168.0.77 port 1521 connect data service name sjtu 如下圖所示 如下圖所示 方法1中的格式是固定的,我們在...