1. 程式人生 > >通過JNDI創建連接池

通過JNDI創建連接池

max cti ota servlet conf 服務 取數據 localhost auth

配置Context的五種方式

技術分享圖片

1,由服務器創建的連接池一定要將mysql驅動文件放在tomcat的lib文件夾內
2,在META-INF文件夾裏新建context.xml(發布web應用的時候會在tomcat/conf/Catalina/localhost生成配置文件)

 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,編寫程序獲取數據源

// 初始化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容器內,當程序需要的時候自行去容器內獲取

通過JNDI創建連接池