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

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

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

第一步:

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

第二步:

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

4f1150b881333f12a311ae9ef34da474.png<?xml version="1.0" encoding="UTF-8"?>

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png auth="Container"

4f1150b881333f12a311ae9ef34da474.png type="javax.sql.DataSource"

4f1150b881333f12a311ae9ef34da474.png maxActive="100"

4f1150b881333f12a311ae9ef34da474.png maxIdle="30"

4f1150b881333f12a311ae9ef34da474.png maxWait="10000"

4f1150b881333f12a311ae9ef34da474.png username="root" password="root"

4f1150b881333f12a311ae9ef34da474.png driverClassName="com.mysql.jdbc.Driver"

4f1150b881333f12a311ae9ef34da474.png url="jdbc:mysql://localhost/test"/>

4f1150b881333f12a311ae9ef34da474.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文件,内容如下:

4f1150b881333f12a311ae9ef34da474.png<?xml version="1.0" encoding="UTF-8"?>

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.pngxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

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

4f1150b881333f12a311ae9ef34da474.pngversion="2.4">

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.pngDB Connection

4f1150b881333f12a311ae9ef34da474.pngjdbc/test

4f1150b881333f12a311ae9ef34da474.pngjavax.sql.DataSource

4f1150b881333f12a311ae9ef34da474.pngContainer

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

4f1150b881333f12a311ae9ef34da474.png

说明:

引用资源说明

引用资源的JNDI名

引用资源的类名

管理者(Container)

第四步:

写个jsp,试一下吧!

1fa987a29c6482f53d401256f96355eb.png

1fa987a29c6482f53d401256f96355eb.png

1fa987a29c6482f53d401256f96355eb.png

d18c02628675d0a2c816449d98bda930.png try

d18c02628675d0a2c816449d98bda930.png {

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

d18c02628675d0a2c816449d98bda930.png Context ctx = new InitialContext();

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

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

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

d18c02628675d0a2c816449d98bda930.png //取出连接

d18c02628675d0a2c816449d98bda930.png Connection conn = ds.getConnection();

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

d18c02628675d0a2c816449d98bda930.png } catch (NamingException e) {

d18c02628675d0a2c816449d98bda930.png System.out.println(e.getMessage());

d18c02628675d0a2c816449d98bda930.png } catch (SQLException e) {

d18c02628675d0a2c816449d98bda930.png e.printStackTrace();

d18c02628675d0a2c816449d98bda930.png }finally

d18c02628675d0a2c816449d98bda930.png {

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

d18c02628675d0a2c816449d98bda930.png conn.close();

d18c02628675d0a2c816449d98bda930.png }

d18c02628675d0a2c816449d98bda930.png

8f1ba5b45633e9678d1db480c16cae3f.png}

4f1150b881333f12a311ae9ef34da474.png%>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值