通过JNDI创建连接池

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容器内,当程序需要的时候自行去容器内获取

tomcat官网关于配置Context的五种方式

posted @ 2018-12-14 15:10  aikf  阅读(299)  评论(0编辑  收藏  举报