連接池和數據源

連接池的實現:


原理:在服務器啓動的時候,創建一系列的連接對象(稱爲數據源);在程序中需要使用連接的時候,直接從數據源中獲取一個已經存在的連接;(關閉連接,將當前連接重新放入到數據源中)。

連接池使用的幾種核心技術:
1. 數據源(javax.sql.DataSource)(作用:用來存放連接)
2. JNDI(java目錄命名對象)(作用:通過樹形節點,來獲取一個數據源)

使用連接池技術步驟:
1. 在Tomcat的conf目錄中找到context.xml文件,配置連接池信息。
或者
將context.xml配置文件,存放在META-INF目錄下。

2. 將sqljdbc.jar驅動,放在tomcat的lib目錄中。
3. 在程序中使用JNDI技術,來查找當前配置的數據源。
4. 從數據源獲取連接。
(注意:不能使用普通Java程序來測試連接即需要啓動服務器)

連接的關閉並不是通常的關閉,而是把沒有用的連接再吃放入連接池中

 

代碼實例:

import java.sql.Connection;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

/**
 *
 * 高效率的獲取連接
 *
 *
 */
public class DBUtil {

 private static DataSource ds;
 
 //靜態語句塊,最先執行,並且只會執行一次
 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;
 }
 
}
 

content.xml 的配置

<!-- The contents of this file will be loaded for each web application -->
<Context>
 <Resource name="jdbc/studentDB"
      type="javax.sql.DataSource"  數據類型    maxActive="0"  最大連接數量 爲0表示沒有限制
      maxIdle="30"  空閒連接的最小數目   maxWait="10000" 最長的等待時間,-1 表示永久等待 可用來設置系統開放的時間和長度

 username="sa" password="123456" initialSize="50"   初始的連接數
      driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"    指定JDBC驅動程序類名
      url="jdbc:sqlserver://localhost:1433;DatabaseName=studentDB" /> 指定連接數據庫的URL
</Context>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章