連接池的實現:
連接池使用的幾種核心技術: 使用連接池技術步驟: 2. 將sqljdbc.jar驅動,放在tomcat的lib目錄中。 連接的關閉並不是通常的關閉,而是把沒有用的連接再吃放入連接池中 代碼實例: import java.sql.Connection; import javax.naming.Context; /** private static DataSource ds; content.xml 的配置 <!-- The contents of this file will be loaded for each web application --> username="sa" password="123456" initialSize="50" 初始的連接數
原理:在服務器啓動的時候,創建一系列的連接對象(稱爲數據源);在程序中需要使用連接的時候,直接從數據源中獲取一個已經存在的連接;(關閉連接,將當前連接重新放入到數據源中)。
1. 數據源(javax.sql.DataSource)(作用:用來存放連接)
2. JNDI(java目錄命名對象)(作用:通過樹形節點,來獲取一個數據源)
1. 在Tomcat的conf目錄中找到context.xml文件,配置連接池信息。
或者
將context.xml配置文件,存放在META-INF目錄下。
3. 在程序中使用JNDI技術,來查找當前配置的數據源。
4. 從數據源獲取連接。
(注意:不能使用普通Java程序來測試連接即需要啓動服務器)
import javax.naming.InitialContext;
import javax.sql.DataSource;
*
* 高效率的獲取連接
*
*
*/
public class DBUtil {
//靜態語句塊,最先執行,並且只會執行一次
static{
try {
//1. 創建JNDI的對象
Context cxt = new InitialContext();
//2. 獲取數據源
ds = (DataSource)cxt.lookup("java:comp/env/jdbc/studentDB");//jdbc/studentDB 是content.xml 文件中配置值的屬性值 java:comp/env 值不能變 是固定的
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* 使用連接池來獲取連接
*
* @return
*/
public static Connection getConn(){
try {
//3. 從數據源中獲取連接
return ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
<Context>
<Resource name="jdbc/studentDB"
type="javax.sql.DataSource" 數據類型 maxActive="0" 最大連接數量 爲0表示沒有限制
maxIdle="30" 空閒連接的最小數目 maxWait="10000" 最長的等待時間,-1 表示永久等待 可用來設置系統開放的時間和長度
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 指定JDBC驅動程序類名
url="jdbc:sqlserver://localhost:1433;DatabaseName=studentDB" /> 指定連接數據庫的URL
</Context>