用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
chnic的公告
写Blog主要为了沉淀一下自己的所学。这里的博文都是从我的另一博客copy来的。http://chnic.javaeye.com
文章分类
存档

原创  在Tomcat5.0.28 和5.5.15 配置JNDI数据源 收藏

 无意中搜了下网上的相关文章,发现天下文章一大抄,有不少文章都是错的。自己整理一下关于这方面的心得,希望能给有需要的人一点帮助吧。

Tomcat 5.0.28

不用多说第一步肯定是装好Tomcat了,5.5以下的版本不需要1.5以上的JDK支持。把驱动包拷到%Tomcat%\common\lib目录下,搞定之后进入http://localhost:8080/admin/  这时左边会有一个树形菜单。我们假设你现在的工程名字叫Test,按照  Tomcat Server -> Service -> Host(localhost) -> Context(/Text) -> Resource -> Data Source 的顺序进入数据源设置菜单。在右上角的下拉框选择 Create new Data Source,这时会出现一个菜单。按照菜单的要求填完Save保存,之后点击Commit Changes提交。这时会在 %Tomcat%\conf\Catalina\localhost 下 你会发现Test.xml Context节点下多了如下的内容

  <Resource name="jdbc/mysql" type="javax.sql.DataSource"/>
  
<ResourceParams name="jdbc/mysql">
    
<parameter>
      
<name>maxWait</name>
      
<value>5000</value>
    
</parameter>
    
<parameter>
      
<name>maxActive</name>
      
<value>4</value>
    
</parameter>
    
<parameter>
      
<name>password</name>
      
<value>root</value>
    
</parameter>
    
<parameter>
      
<name>url</name>
      
<value>jdbc:mysql://localhost:3306/test</value>
    
</parameter>
    
<parameter>
      
<name>driverClassName</name>
      
<value>com.mysql.jdbc.Driver</value>
    
</parameter>
    
<parameter>
      
<name>maxIdle</name>
      
<value>2</value>
    
</parameter>
    
<parameter>
      
<name>username</name>
      
<value>root</value>
    
</parameter>
  
</ResourceParams>

就此配置完成,若是觉得进入admin页面配置麻烦也可以把上面的那段XML直接粘贴到 %Tomcat%\conf\Catalina\localhost  目录下相对应的工程xml里。接下来我们用程序测试。

Context context = new InitialContext();   
DataSource ds 
= (DataSource)context.lookup("java:comp/env/jdbc/mysql");   
Connection conn 
= ds.getConnection();   
System.out.println(conn);

控制台会显示一个Mysql的连接,说明配置成功。关于JNDI的路径 java:comp/env/jdbc/mysql 不明白的人可以去参阅相关的资料,在此就不多说,不过还是要啰唆一句:其实把JNDI想像成为一个xml文件即可,JNDI就相当XPath。

Tomcat 5.5.15

 Tomcat 5.5需要JDK 1.5支持。安装完毕之后把Admin的管理插件也安装上。可以在Apache的网站上下到Admin的插件,文件名apache-tomcat-5.5.25-admin.zip。一切做完之后第一步还是把驱动文件拷到%Tomcat%\common \lib下。之后进入admin页面。这次我们配置全局的JNDI数据源也就是这个数据源可以被所有工程共享。选择Resources-> Data Sources 节点,创建一个JNDI Data Source。填入相应的数据,保存提交。这个时候在%Tomcat%\conf下的server.xml中会多出如下内容。

<Resource  
      
name="jdbc/mysql"  
      type
="javax.sql.DataSource"  
      password
="root"  
      driverClassName
="com.mysql.jdbc.Driver"  
      maxIdle
="2"  
      maxWait
="5000"  
      username
="root"  
      url
="jdbc:mysql://localhost:3306/test"  
      maxActive
="4"/>  

观察后能发现5.5和5.0生成的配置文件并不一样。拷贝这段xml代码然后将其保存至同目录的context.xml文件的Context节点下。重新启动Tomcat并用测试代码测试,发现也可以得到连接。
这个时候我们发现我们的测试代码并没有改一行一句,数据库的改变对上层程序完全是透明的。JNDI使得上层的程序不必关注一些顶层的配置,使得配置和程序彻底解耦。这就是JNDI的一大益处。

看来解耦合在J2EE中无处不在。

发表于 @ 2008年03月14日 00:41:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:Oracle返回结果集用JDBC读取 | 新一篇:用JDK+记事本来完成一个无状态SessionBean

  • 发表评论
  • 评论内容:
  •  
Copyright © chnic
Powered by CSDN Blog