`
paulwong
  • 浏览: 72440 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MyEclipse+WebSphere 通过 JNDI 连接 Sybase 简介

阅读更多

       很久不来这里写东西了,一是工作忙,还有就是我是个初学者也写不出什么东西。这几天因工作需要学习了一下 WebSphere5.1, 在网上找了些资料终于了解了如何通过 JNDI 连接 Sybase 数据库。贴上来一个是怕自己以后忘了,另外就是希望能帮助像我一样苦苦探索的初学者。

<o:p> </o:p>

该文参考了 :

1.  IBM WebSphere Application Server V5.1 System Management and Configuration - WebSphere Handbook Series

2.  moyunhe   http://www.matrix.org.cn 发表的 WebSphere 中流行数据库连接池的配置 (Oracle SQL Server Sybase MySQL), 该文地址 :      http://www.matrix.org.cn/thread.shtml?topicId=30665&forumId=40

3.  MyEclipse 网站的一篇文档,该文地址 : http://www.myeclipseide.com/Articles/WebSphere5.1LogConfiguration/WAS5.1LogConfiguration.html

<o:p> </o:p>

软件环境 :eclipse V<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">3.1.1</st1:chsdate>, MyEclipse V4.1.1 Build id: 20060309-4.1.1-GA, Sybase ASE 12.5 字符集 : iso_1, WebShpere 5.1 中文版

<o:p> </o:p>

<!----> A.         <!----> WebSphere5.1 log 重定向至 MyEclipse 控制台 ( 摘自 MyEclipse 帮助 ”Configuring WebSphere 5.1 Logging for MyEclipse”. 所以 WebSphere 是英文的 )

<!----> 1.   <!----> 打开指定 Server Log 设置


<!----> 2.    <!----> 选择 JVM Logs


<!----> 3.   <!----> 设置 Output Error Logs 到控制台 (Console), 之后点击确认 (OK) 按钮


<!----> 4.   <!----> 点击 Save


<!----> 5.    <!----> 点击 Save 按钮


<!----> B.         <!----> MyEclipse 中设置 WebSphere5.1 属性

<!----> 1.    <!----> 按下图请根据自己的具体环境设置


<!----> 2.    <!----> Jdk 设置必须指定 WebSphere 自带 jdk


<!----> 3.    <!----> 如果安装了 MQ 需要以下设置,否则会在 MyEclipse 启动时由于找不到 bipmainw110.dll 而导致 MQ 启动失败


<!----> 4.   <!----> 这些设置好之后就可以通过下图所示来启动 WebSphere, 启动日志应该显示在 eclipse 的控制台中


<!----> C.         <!----> 接下来设置 Sybase JDBC JNDI

<!----> 1.    <!----> 点击 环境 -> 管理 WebSphere 变量 “( 下边 WebSphere 是自己公司的,所以是中文的 ) ,然后点击 新建 按钮


<!----> 2.   <!----> 点击右边的 ” SYBASE_JDBC_DRIVER_PATH ” ( 通常 Sybase 数据库的 JDBC 连接程序为 jconn2.jar ,根据 Sybase 版本不同可能存放于 \sybase\jConnect-5_5\classes\ 或是存放于目录 \sybase\Sybase Central 3.2\java\ , 将具体的 jconn2.jar 所在路径指定给他们即可。 ) ,点击 确认 跳转页面后点击链接 保存 ,再次跳转页面后点击按钮 保存 ”( 注意 : 不是上边的链接,是下边的 保存 按钮,以后保存步骤简写为保存 )

 


<!----> 3.    <!----> 之后点击 环境 -> 更新 Web 服务器插件 ,再点击 确定 ”( 当服务器、群集、 HTTP 传输或虚拟主机别名配置更改时,必须更新 Web 服务器插件,这个后面也不再多说,反正服务器修改东西后没效果在这里更新一下,还不行重起 web 服务,再不行重起机器,最后还不行肯定是某个地方配置错了 ,google 上查查资料,或者看看 ” WebSphere Application Server V5.1 System Management & Configuration” 这本书。这本书英文版可以去 emule 上下载下来 , 书店里有卖中文的,网上似乎没有,我是在书店里发现有这本书才去 emule 下的 )

 


<!---->

4.    <!----> 点击 资源 -> JDBC 提供程序 ,在打开的页面中点击 新建 ”( 图片中的 ”Sybase JDBC Driver” 是我已经建好的,不用理会 )

 



<!----> 5.    <!----> 选择 ”Sybase JDBC Driver” ,确认后页面跳转。

 



<!----> 6.   <!----> 可以在这里更改名称、描述,其它默认,然后再确定,最后保存。这时 Sybase JDBC 已设置好。



 

<!----> 7.   <!----> 点击刚才建好的 Sybase JDBC 名称

 



<!----> 8.    <!----> 点击 数据源

c8.gif

<!----> 9.   <!----> 点击 新建 ”( 下边图片中的 hq 是我已建好的不必理会 , 您的页面应该是什么都没有,要有东西说明见到鬼了 )

 



<!----> 10.    <!----> 输入 名称 ”JNDI 后点击 应用

 



<!----> 11.   <!----> 点击下方的 定制属性 ,在打开的页面中按下图设置 JDBC 链接属性,没有的需要新建该属性。 连接池 需要根据自己实际情况设置。属性和连接池中的各项可以参考 ” WebSphere Application Server V5.1 System Management & Configuration” 这本书

 



<!----> 12.    <!----> 保存后更新插件,之后需要重起 WebSphere 才生效。之后我们可以测试刚才的设置是否成功,测试成功表示 JNDI 已正确设置,否则可能数据库没有启动或者有些地方没有设置正确。

 



<!----> D.        <!----> MyEclipse 中测试刚才设置的 JNDI

<!----> 1.    <!----> 新建 ” Enterprise Application Project ”

 



<!----> 2.   <!----> 下一步后敲入项目名称,选择 ”J2EE <st1:chmetcnv unitname="”" sourcevalue="1.3" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">1.3”</st1:chmetcnv>( 必须选择该项 , 否则生成的 application.xml web.xml 格式是 J2EE1.4 的, WebSphere5.1 并不支持该格式,发布应用时会出错导致无法发布 ) ”Define Ejb Project Modules” 就不用选了,我们没用 ejb

 



<!----> 3.    <!----> “ Create Web Project Module ” 上打勾

 



<!----> 4.   <!----> 点击完成

 



<!----> 5.    <!----> test.pool 包中建类 TestPool ,在 WebRoot 下建 jsp: testjndi.jsp, 如下图 :

 



<!----> 6.   <!----> 代码

test 表结构 :

<!----> CREATE   TABLE  dbo.test 
(
    name 
varchar ( 60 NULL
)

TestPool 类内容 :


<!---->
 
/*该代码借用了 moyunhe文章中的TestPool类,详细内容请见该文参考*/

/*
 * 创建日期 2005-11-5
 *
 * 更改所生成文件模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 
*/
package  test.pool;

import  java.sql.Connection;
import  java.sql.ResultSet;
import  java.sql.SQLException;
import  java.sql.Statement;

import  javax.naming.Context;
import  javax.naming.InitialContext;
import  javax.naming.NamingException;
import  javax.sql.DataSource;

/**
 * 
@author  moyunhe
 *
 * 更改所生成类型注释的模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 
*/
public   class  TestPool {
    
    
private   static  Connection getConnection(String strConnPoolJndi)  throws  NamingException, SQLException  {
        Context ctx 
=   null ;
        ctx 
=   new  InitialContext();
        DataSource ds 
=  (DataSource)ctx.lookup(strConnPoolJndi);
        Connection conn 
=  ds.getConnection();
        
        
return  conn;
        
    }
    
    
public   static  String getDBData(String strConnPoolJndi, String sql) {
        String strReturn
= "" ;
        Connection conn 
=   null ;
        Statement st 
=   null ;
        ResultSet rs 
=   null ;

        
try  {
            conn 
=  getConnection(strConnPoolJndi);
            st 
=  conn.createStatement();
            st.executeUpdate(
" delete test " );
            st.executeUpdate(
" insert test(name) values(' " + sql + " ') " );
            rs 
=  st.executeQuery(  " select name from test "  );
            
            
if  (rs.next()) {
                strReturn 
=  rs.getString( 1 );
            }

        }
        
catch  (Exception e) {
            e.printStackTrace();
            strReturn 
=  e.getMessage();
        }
        
finally  {
            
try  {
                
if  (st  !=   null ) {
                    st.close();
                    st 
=   null ;
                }
                
if  (rs  !=   null  ) {
                    rs.close();
                    rs 
=   null ;
                }
                
if  (conn  !=   null ) {
                    conn.close();
                    conn 
=   null ;
                }
            }
            
catch  (SQLException e) {
                e.printStackTrace();
            }
        }
        
        
return  strReturn;
    }

}

testjndi.jsp 文件内容 :


<!----> <% @ page language = " java "  contentType = " text/html;charset=utf-8 "  pageEncoding = " utf-8 " %>
<% @page import = " java.util.* " %>

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
  
< head >
    
< title > My JSP 'MyJsp.jsp' starting page </ title >
  
</ head >
  
  
< body >
    世界杯. 
< br >
    
<% out.println( " SYBASE_JNDI: "   +  test.pool.TestPool.getDBData( " jdbc/hq " , " 2006年德意志世界杯 " )); %>
  
</ body >
</ html >

<!----> 7.   <!----> 游览器运行结果



 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics