java jndi 开发_Java开发(2) - Tomcat配置JNDI数据源

本例使用的数据库为Mysql 5.0,对于其它数据库只是修改一下相应的参数即可,

服务器是Tomcat5.5, 与之间的版本配置连接池最简便

第一步:

将驱动程序(jar包)放到tomcat安装目录下的common\lib文件夹下

第二步:

在Tomcat的webapps目录随便创建一个工程目录,例如myjdbc。在myjdbc目录下创建META-INF目录,在此目录下创建一个context.xml文件,里面的内容如下:

0818b9ca8b590ca3270a3433284dd417.png<?xml version="1.0" encoding="UTF-8"?>

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png auth="Container"

0818b9ca8b590ca3270a3433284dd417.png type="javax.sql.DataSource"

0818b9ca8b590ca3270a3433284dd417.png maxActive="100"

0818b9ca8b590ca3270a3433284dd417.png maxIdle="30"

0818b9ca8b590ca3270a3433284dd417.png maxWait="10000"

0818b9ca8b590ca3270a3433284dd417.png username="root" password="root"

0818b9ca8b590ca3270a3433284dd417.png driverClassName="

com.mysql.jdbc.Driver"

0818b9ca8b590ca3270a3433284dd417.png url="

jdbc:mysql://localhost/test"/>

0818b9ca8b590ca3270a3433284dd417.png

附注如下:

Tomcat标准数据源资源工厂配置项如下:

* driverClassName - 所使用的JDBC驱动类全称。

* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。

* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。

* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。

* password - 传给JDBC驱动的数据库密码。

* url - 传给JDBC驱动的连接URL。

* user - 传给JDBC驱动的数据库用户名。

* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。

* 如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。

jdbc/test是数据源的名称(随意写,要和web.xml文件中 jdbc/test 一样即可),

其他的参数按照自己的实际情况进行修改,例如数据库的名称、账号、密码。

第三步:

在myjdbc目录下创建WEB-INF目录,创建web.xml文件,内容如下:

0818b9ca8b590ca3270a3433284dd417.png<?xml version="1.0" encoding="UTF-8"?>

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

0818b9ca8b590ca3270a3433284dd417.pngxsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

0818b9ca8b590ca3270a3433284dd417.pngversion="2.4">

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.pngDB Connection

0818b9ca8b590ca3270a3433284dd417.pngjdbc/test

0818b9ca8b590ca3270a3433284dd417.pngjavax.sql.DataSource

0818b9ca8b590ca3270a3433284dd417.pngContainer

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

说明:

引用资源说明

引用资源的JNDI名

引用资源的类名

管理者(Container)

第四步:

写个jsp,试一下吧!

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png try

0818b9ca8b590ca3270a3433284dd417.png {

0818b9ca8b590ca3270a3433284dd417.png //初始化查找命名空间

0818b9ca8b590ca3270a3433284dd417.png Context ctx = new InitialContext();

0818b9ca8b590ca3270a3433284dd417.png //InitialContext ctx = new InitialContext();亦可

0818b9ca8b590ca3270a3433284dd417.png //找到DataSource,对名称进行定位java:comp/env是必须加的,后面跟你的DataSource名

0818b9ca8b590ca3270a3433284dd417.png DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/test");

0818b9ca8b590ca3270a3433284dd417.png //取出连接

0818b9ca8b590ca3270a3433284dd417.png Connection conn = ds.getConnection();

0818b9ca8b590ca3270a3433284dd417.pngSystem.out.println("connection pool connected !!");

0818b9ca8b590ca3270a3433284dd417.png } catch (NamingException e) {

0818b9ca8b590ca3270a3433284dd417.png System.out.println(e.getMessage());

0818b9ca8b590ca3270a3433284dd417.png } catch (SQLException e) {

0818b9ca8b590ca3270a3433284dd417.png e.printStackTrace();

0818b9ca8b590ca3270a3433284dd417.png }finally

0818b9ca8b590ca3270a3433284dd417.png {

0818b9ca8b590ca3270a3433284dd417.png //注意不是关闭,是放回连接池.

0818b9ca8b590ca3270a3433284dd417.png conn.close();

0818b9ca8b590ca3270a3433284dd417.png }

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png}

0818b9ca8b590ca3270a3433284dd417.png%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值