« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
|
公告 |
我近期在研究Maven、Turbine、EJB,如果有朋友想一起交流学习,请加我的MSN:moshco_zhu@hotmail.com!
你为什么来,你何必来,叫我怎么见你!
--《小城之春》 |
| 
|
本站首页 管理页面 写新日志 退出
[01 技术文档]在Weblogic 10中做EJB3的开发 之基础开发 (5) |
在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) | 编辑 | 精华 |
|