«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

我近期在研究Maven、Turbine、EJB,如果有朋友想一起交流学习,请加我的MSN:moshco_zhu@hotmail.com!

   你为什么来,你何必来,叫我怎么见你!

--《小城之春》


我的分类(专题)

首页(19)
04 创想思考(1)
01 技术文档(8)
03 诗歌散文(1)
02 人生感悟(2)


最新日志
关于Java之父戈斯林离职的愤怒
在Weblogic 10中做EJB3的开
在Weblogic 10中做EJB3的开
在Weblogic 10中做EJB3的开
在Weblogic 10中做EJB3的开
在Weblogic 10中做EJB3的开
在Weblogic 10中做EJB3的开
在Weblogic 10中做EJB3的开
在Weblogic 10中做EJB3的开
用Maven2管理EJB项目

最新回复
回复:在Weblogic 10中做EJB
回复:在Weblogic 10中做EJB
回复:在Weblogic 10中做EJB
回复:用Maven2管理EJB项目
回复:在Weblogic 10中做EJB
回复:使用Continuum配置定时打包
回复:在Weblogic 10中做EJB
回复:在Weblogic 10中做EJB
回复:在Weblogic 10中做EJB
回复:在Weblogic 10中做EJB

留言板
签写新留言



链接




本站首页    管理页面    写新日志    退出

[01 技术文档]在Weblogic 10中做EJB3的开发 之基础开发 (5)
moshco zhu 发表于 2007/11/6 15:37:32

在Weblogic 10中做EJB3的开发    之基础开发 (5) ---------------------------------------------------------------------------4.配置数据源  我这里使用的数据库是MySQL,版本是:5.0.37。下载安装的过程我就不多说了!我使用的客户端软件是:phpMyAdmin 2.10.0.2。如果能熟练使用MySQL命令,也可以不使用这个软件。  下载安装完成MySQL后,创建一个数据库,名称[ejb3],在数据库中创建一个表[user],表的结构如下: -------------------------------------------------- 字段  数据类型 是否可为空  其它   备注 id  int  否   auto_increment  记录编号 Name  varchar(64) 否      姓名 --------------------------------------------------  向表[user]中插入几条记录,至少要有一条[id=1]的,等会程序会搜索这条记录。  启动weblogic服务,打开控制中心。  进入[Domain Structure]->[Services]->[JDBC]->[Data Sources],然后点击左上角的[lock &Edit],然后点击[new],创建一个新的数据源,设置[name="mysql_ejb31"]、[JNDI name = "mysql_ejb31"]、[Database Type ="MySQL"]、[Database Driver="com.mysql.jdbc.Driver"],然后点击[Next]按钮,再次点击[Next],[Database Name="ejb3"]、[Database Name="localhost"]、[Port="3306"]、[Database User Name ="root"](这个要根据你自己的实际情况来填写),[Password=""][Confirm Password=""](这两个也要根据你的实际情况填写)、然后点击[Next],点击[Test Configuration],测试一下我们的配置,如果上面显示成功,我们要继续点击[Next],然后构选服务器[AdminServer],点击[Finish],最好点击左上角的[Activate Changes]。这样就算配置完成了!  做完上面的操作,你可以打开服务器[AdminServer]的JNDI树,看一下是否多了一个[mysql_ejb31]。  好!下面我们做一个程序来使用这个数据源。  首先创建一个工具类。 文件地址:[Java/JavaSource/com/mh/util/DSUtil.java] 包名:[com.mh.util] 名称:[DSUtil] 内容如下: --------------------------------------------------------------------- /**  *   */ package com.mh.util;  import java.util.Properties;  import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource;  /**  * @author moshco zhu  *   */ public class DSUtil {   public static String Host = "localhost";  static {   Host = "localhost";  }   /**   * @功能 获取EJB对象从默认的应用服务器   *    * @param strJNDI   * @return   * @throws Exception   */  public static DataSource getDSObject(String strJNDI) throws Exception {    // 创建属性对象   Properties props = new Properties();   props.setProperty(Context.INITIAL_CONTEXT_FACTORY,     "weblogic.jndi.WLInitialContextFactory");   props.setProperty(Context.PROVIDER_URL, "t3://" + Host + ":7001");    // 创建上下文环境对象   InitialContext ctx;   ctx = new InitialContext(props);    // 远程计算机   DataSource oDS = (DataSource) ctx.lookup(strJNDI);    // 返回函数值   return oDS;  }   /**   * @功能 获取本地EJB对象   *    * @param strJNDI   * @return   * @throws Exception   */  public static DataSource getDSLocalObject(String strJNDI) throws Exception {    // 创建上下文环境对象   InitialContext ctx;   ctx = new InitialContext();    // 本地电脑   DataSource oDS = (DataSource) ctx.lookup(strJNDI);    // 返回函数值   return oDS;  }  } --------------------------------------------------------------------- 这个类的作用主要是获取一个数据源,以后扩展它的功能,还可以用来管理多个数据源。  下面创建一个接口程序。 文件地址:[EJB3/JavaSource/com/mh/ejb3/test/EJB3TestDBConnection.java] 包名:[com.mh.ejb3.test] 名称:[EJB3TestDBConnection] 内容如下: --------------------------------------------------------------------- /**  *   */ package com.mh.ejb3.test;  /**  * @author moshco zhu  *  */ public interface EJB3TestDBConnection {    public String sayTest();  } ---------------------------------------------------------------------  创建EJB的Bean类。 文件地址:[EJB3/JavaSource/com/mh/ejb3/test/EJB3TestDBConnectionBean.java] 包名:[com.mh.ejb3.test] 名称:[EJB3TestDBConnectionBean] EJB类型:无状态会话Bean 实现接口:远程接口 内容如下: --------------------------------------------------------------------- /**  *   */ package com.mh.ejb3.test;  import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;  import javax.ejb.Remote; import javax.ejb.Stateless; import javax.sql.DataSource;  import com.mh.util.DSUtil;  /**  * @author moshco zhu  *   */ @Stateless(mappedName = "EJB3TestDBConnectionBean") @Remote(EJB3TestDBConnection.class) public class EJB3TestDBConnectionBean implements EJB3TestDBConnection {   /*   * (非 Javadoc)   *    * @see com.mh.ejb3.test.EJB3TestDBConnection#sayTest()   */  public String sayTest() {    // 定义变量   DataSource ds = null;   Connection conn = null;   String strMessage = "";    try {     // 获取数据源    ds = DSUtil.getDSObject("mysql_ejb31");    // 获取数据库连接    conn = ds.getConnection();    if (conn != null && !conn.isClosed()) {     strMessage += "数据库连接成功!\n<br>";    }     // 查询用户名    PreparedStatement pre = conn      .prepareStatement("select Name from user where id = 1");    ResultSet rs = pre.executeQuery();     // 获取数据    while (rs.next()) {     strMessage += "Hello,";     strMessage += rs.getString("Name") + "!\n<br>";     break;    }    } catch (Exception e) {    e.printStackTrace();    strMessage += "出错了:[" + e.toString() + "]\n<br>";   } finally {    try {     if (conn != null && !conn.isClosed()) {      conn.close();      conn = null;     }    } catch (SQLException e) {     e.printStackTrace();    }    ds = null;   }    // 返回函数值   return strMessage;  }  } --------------------------------------------------------------------- 上面的程序,通过数据库的JNDI获取数据源,进而获取数据库连接,最后查询数据库表,获取用户名。  打开文件[WebContext/JavaSource/com/mh/servlet/test/CommonSV.java],我们在servelt中加入下面这段: ---------------------------------------------------------------------   } else if (strPara != null     && strPara.equals("EJB3TestDBConnection")) {    // 通过JNDI获取EJB对象    EJB3TestDBConnection test = (EJB3TestDBConnection) getEJBObject("EJB3TestDBConnectionBean#com.mh.ejb3.test.EJB3TestDBConnection");    message += test.sayTest(); ---------------------------------------------------------------------  在欢迎页面程序[WebContext/index.jsp]中加入下面这段: --------------------------------------------------------------------- <p> <center><a  href="<%=request.getContextPath() %>/sv/CommonSV.do?dowith=EJB3TestDBConnection"  target="_blank">EJB3测试:使用数据库</a></center> </p> ---------------------------------------------------------------------  好!现在可以编译发布看效果了!

阅读全文(3199) | 回复(0) | 编辑 | 精华


发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144764052 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号