經過JNDI建立鏈接池

1,由服務器建立的鏈接池必定要將mysql驅動文件放在tomcat的lib文件夾內java

2,在META-INF文件夾裏新建context.xml(發佈web應用的時候會在tomcat/conf/Catalina/localhost生成配置文件)mysql

 1 <Context ...>
 2   ...
 3   <Resource name="jdbc/EmployeeDB"
 4             auth="Container"
 5             type="javax.sql.DataSource"
 6             username="root"
 7             password="root"
 8             driverClassName="com.mysql.jdbc.Driver"
 9             url="jdbc:mysql://localhost:3306/mydata"
10             maxTotal="8"
11             maxIdle="4"/>
12 </Context>

3,編寫程序獲取數據源web

// 初始化JNDI容器
Context initCtx = new InitialContext();
// 根據名稱獲取JNDI容器
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// 獲取數據源
DataSource ds = (DataSource)
  envCtx.lookup("jdbc/EmployeeDB");
// 獲取連接
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();

服務器啓動的時候會建立JNDI容器,將鏈接池保存到容器裏面,並把鏈接池綁定到一個名稱上面,如上面的"jdbc/EmployeeDB"
擴展:服務器在運行的時候會建立一些對象,常見的方式是在調用方法的時候傳入,如Request,Response,在調用Servlet的時候傳入方法,服務器可能會把建立的對象放在JNDI容器內,當程序須要的時候自行去容器內獲取sql

tomcat官網關於配置Context的五種方式tomcat

相關文章
相關標籤/搜索