程序员应该不需要关心“具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和口令是什么?”
等等这些问题,程序员编写的程序应该没有对 JDBC 驱动程序的引用,没有服务器名称,没有用户名称或口令, 甚至没有数据库池或连接管理。
而是把这些问题交给J2EE容器来配置和管理,程序员只需要对这些配置和管理进行引用即可。由此,就有了JNDI。
Tomcat配置JNDI数据源连接池
1.数据库连接
2.连接池
3.Tomcat配置JNDI数据源连接池
配置方法一:使用tomcat默认的DBCP连接池(全局数据源)
第一步:将要连接的数据库驱动程序复制到tomcat安装目录下的lib文件夹
第二步:找到tomcat安装目录下context.xml文件,并在其中添加如下内容
[conf\context.xml]
<Resource
name="" --JNDI 对象的名称
type="" --资源类型
scope="" --作用域,可省略
factory="" -- 对象工厂
username="" --数据库账号
url="" --连接数据库的URL
driverClassName="" --数据库驱动类
password="" --数据库账号的密码
maxActive="" --连接池最大连接数
maxIdle="" --连接池最小连接数
/>
实例:
<Resource name="jdbc/oraqzg"
type="javax.sql.DataSource"
scope="share"
username="scott"
password="tiger"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
maxActive="10"
maxIdle="3" />
第三步:直接在代码中使用
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/对象名称");
Connection con = ds.getConnection();
配置方法二:使用tomcat默认的DBCP连接池(全局数据源)不推荐使用
第一步:将要连接的数据库驱动程序复制到tomcat安装目录下的lib文件夹
第二步:找到tomcat安装目录下server.xml文件,并在<globalmappingresources>标签中添加如下内容
<Resource
name="" --JNDI 对象的名称
type="" --资源类型
scope="" --作用域
factory="" -- 对象工厂
username="" --数据库账号
url="" --连接数据库的URL
driverClassName="" --数据库驱动类
password="" --数据库账号的密码
maxActive="" --连接池最大连接数
maxIdle="" --连接池最小连接数
/>
实例:
<Resource name="jdbc/oraqzg"
type="javax.sql.DataSource"
scope="share"
username="scott"
password="tiger"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
maxActive="10"
maxIdle="3" />
第三步:在工程webRoot\meta-info下创建一个context.xml文件,并添加如下内容
<Context>
<ResourceLink name="jdbc/oraqzg"
type="javax.sql.DataSource"
global="jdbc/oraqzg"/>
</Context>
第四步:直接在代码中使用
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/对象名称");
Connection con = ds.getConnection();
配置方法三:使用tomcat默认的DBCP连接池(局部数据源) 推荐使用
第一步:将要连接的数据库驱动程序复制到tomcat安装目录下的lib文件夹(建议放在项目工程目录下)
第二步:在工程webRoot\meta-info下创建一个context.xml文件,并添加如下内容
<Context>
<Resource name="jdbc/oraqzg"
type="javax.sql.DataSource"
scope="share"
username="scott"
password="tiger"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
maxActive="10"
maxIdle="3" />
</Context>
第三步:web.xml可以不需要配置;
第四步:直接在代码中使用
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/对象名称");
Connection con = ds.getConnection();