开发CMP

50、EJB开发:CMP实体Bean与EJB QL详解 本文详细介绍了EJB开发中的CMP实体Bean及其与EJB QL的结合使用。CMP实体Bean通过容器管理数据持久化,简化了数据库操作,而EJB QL则提供了灵活的查询能力,弥补了CMP在复杂查询方面的不足。文章还通过具体代码示例展示了CMP实体Bean的实现、部署及客户端调用流程,并对EJB QL的语法、使用方式及优势进行了深入解析,帮助开发者更好地理解和应用企业级Java开发技术。 阅读详情

上篇开发了Stateless Session Bean ,这篇介绍了CMP的开发。

Web测试模块的建立不再重复。Ant脚本也无需作任何修改。在上个例子的基础上,我们直接Code CMP 即可。

步骤:

1在PointBase建一个名为mydb的数据库,建一张user表,表里有id,name,age三列。

2 创建一个名为UserBean的CMP,Bean里有userId,name,age三个字段。

3 编辑Bean和修改部署描述符

4 编译,deploy

5 编写jsp进行测试

Now,let’s go!

 

1 在PointBase里建表

在本例我们使用weblogic自带的pointbase数据库,如果你想了解配置pointbase的信息,请参考我的另一篇帖子 —《PointBase入门》

定位到Pointbase文件夹。它通常位于:

<bea home>/weblogic81/common/eval/pointbase

进入tools目录,启动startPointBase.cmd 脚本。然后会看到弹出一个cmd窗口,当显示数据库端口信息时,就完成启动了(很快,不到1秒)

然后启动 startPointBaseConsole.cmd 脚本,会弹出一个对话框。

Jdbc Driver :不用修改

url :输入 jdbc:pointbase:server://localhost/mydb

user:输入 pbpublic

password :输入 pbpublic

在下方有三个选项,选择中间的“create new database”,然后点ok。

行了,mydb数据库创建成功。

 

接下来我们创建表。可以使用菜单里创建表的wizard,用脚本快点:

create table user (

id  INTEGER NOT NULL,

name  VARCHAR (30) ,

age  Integer,

CONSTRAINT  pk_id PRIMARY KEY (id)

);

然后插入三条数据:

insert into user (id,name,age) values ( 1,'Diegoyun',25);

insert into user (id,name,age) values (2,'Houqi',25);

insert into user (id,name,age) values ( 3,'Zhihua',26);

至此,数据库准备工作完成。

 

2 创建ejb

在com.diegoyun.ejb下新建entity包。

在idea里,新建一个CMP,会弹出ejb的属性框,这个和SessionBean的是一样的,属性设置如下:

<ejb-name> :输入User

Package :com.diegoyun.ejb.entity

Primary Key Class:改为java.lang.Integer

为了简单起见,我们这里的CMP使用Remote接口,所以其他信息不用修改,点ok

然后会弹出cmp的属性设置框,进行如下设置:

Display name : UserBean

Add CMP Field :

点击这个框,添加三个字段,分别作如下设置:

userId Integer PK

name String

age Integer

 

然后切换到WeblogicServer属性页,设置jndi名字为:ejb/entity/UserBean

在这个属性页还会看到许多属性,本例先不设置。

关闭属性页。

这样,包括Remote接口的CMP和大部分配置信息已经创建完毕。

你可以在com.diegoyun.entity下看到User,UserBean和UserHome三个文件,并且META-INF里的三个配置文件的内容已经改变。

 

3 编辑Bean和修改部署描述符

下面我们给Bean的Home接口增加几个方法。

打开UserHome文件,添加如下方法:

public Collection findByAge(Integer age)throws RemoteException,FinderException;

    public User create(Integer userId,String name,Integer age)throws RemoteException,CreateException;

 

然后打开UserBean文件,添加:

public Integer ejbCreate(Integer userId,String name,Integer age)throws CreateException {

        setUserId(userId);

        setName(name);

        setAge(age);

        return userId;

    }

    public void ejbPostCreate(Integer userId,String name,Integer age){

 

    }

并且添加一个private字段:

private EntityContext context;

 

修改setEntityContext 和 unsetEntityContext 方法如下:

public void setEntityContext(EntityContext entityContext) throws EJBException {

        this.context = entityContext;

    }

 

    public void unsetEntityContext() throws EJBException {

        this.context = null;

    }

 

ok,源码code完。

 

接下来修改部署描述符。

 

打开ejb-jar.xml

刚才我们在UserHome里定义了一个finder方法,必须要定义它:

在<primkey-field>userId</primkey-field>信息下另起一行,加上:

<query>

              <query-method>

                  <method-name>findByAge</method-name>

                  <method-params>

                      <method-param>java.lang.Integer</method-param>

                  </method-params>

              </query-method>

              <ejb-ql>

                  <![CDATA[SELECT OBJECT(a) FROM UserEJB AS a WHERE a.age = ?1]]>

              </ejb-ql>

          </query>

 

然后打开weblogic-cmp-rdbms-jar.xml,修改如下:

<?xml version="1.0"?>

<!DOCTYPE weblogic-rdbms-jar PUBLIC

 '-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB RDBMS Persistence//EN' 'http://www.bea.com/servers/wls700/dtd/weblogic-rdbms20-persistence-700.dtd'>

 

<weblogic-rdbms-jar>

    <weblogic-rdbms-bean>

        <ejb-name>UserEJB</ejb-name>

        <data-source-name>ejbSamples-ds</data-source-name>

        <table-map>

            <table-name>USER</table-name>

            <field-map>

                <cmp-field>userId</cmp-field>

                <dbms-column>ID</dbms-column>

            </field-map>

            <field-map>

                <cmp-field>name</cmp-field>

                <dbms-column>NAME</dbms-column>

            </field-map>

            <field-map>

                <cmp-field>age</cmp-field>

                <dbms-column>AGE</dbms-column>

            </field-map>

        </table-map>

    </weblogic-rdbms-bean>

    <create-default-dbms-tables>Disabled</create-default-dbms-tables>

</weblogic-rdbms-jar>

 

接下来打开 weblogic-ejb-jar.xml ,修改如下:

<?xml version="1.0"?>

 

<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB//EN" "http://www.bea.com/servers/wls700/dtd/weblogic-ejb-jar.dtd" >

 

<weblogic-ejb-jar>

    <weblogic-enterprise-bean>

        <ejb-name>UserEJB</ejb-name>

        <entity-descriptor>

            <persistence>

                <persistence-use>

                    <type-identifier>WebLogic_CMP_RDBMS</type-identifier>

                    <type-version>7.0</type-version>

                    <type-storage>META-INF/weblogic-cmp-rdbms-jar.xml</type-storage>

                </persistence-use>

            </persistence>

        </entity-descriptor>

        <jndi-name>ejb/entity/UserBean</jndi-name>

    </weblogic-enterprise-bean>

    <weblogic-enterprise-bean>

        <ejb-name>HelloworldEJB</ejb-name>

        <jndi-name>ejb/session/Helloworld</jndi-name>

    </weblogic-enterprise-bean>

</weblogic-ejb-jar>

 

Ok,CMP开发工作已完成。

 

4 编译,deploy

使用原来的build脚本即可。

重启服务器,登陆到管理界面。

 

创建Connetion Pool :

Database Type :选择PointBase

Database Driver :选择 PointBase’s Driver(Type 4)Version : 4.x

然后点continue

在这个界面,输入:

name:ejbSamplesPool

Database Name :输入mydb

Database User Name :输入pbpublic

Password  : 输入pbpublic

然后点continue。之后可以进行测试连接,如无意外,connectin pool创建完成。

 

创建 Data Source :

name 和 jndi name 都输入 :ejbSamples-ds

pool选择ejbSamplesPool

 

deploy ejb :

关于deploy,前面说过,如果用upload方式deploy的话,不需要重新deploy ejb。但因为这个CMP是新建的,还是重新deploy好些,可以让weblogic在deploy时查找潜在的错误。

删除原来的ejb,重新Deploay ejb ,它应该位于:

<bea home>/user_projects/domains/mydomain/myserver/upload 目录下

ok,部署工作完成。

 

5 编写jsp进行测试

在web下新建四个文件如下:

index.html(导航作用)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>Simple CMP Example -- User</title>

  </head>

 

  <body>

  <center>

    <h1>Simple CMP Example -- User</h1>

    <a href="createUser.jsp">Create New User</a>

    <p>

    <a href="searchUser.jsp">Search User By Id</a>

    <p>

    <a href="searchUserByAge.jsp">Search User By Age</a>

    <p>

  </center>

  </body>

</html>

 

createUser.jsp

<%@ page language="java" %>

<%@ page import="java.util.ArrayList" %>

<%@ page import="java.util.Collection" %>

<%@ page import="javax.ejb.ObjectNotFoundException" %>

<%@ page import="javax.naming.Context" %>

<%@ page import="javax.naming.InitialContext" %>

<%@ page import="javax.naming.NamingException" %>

<%@ page import="com.diegoyun.ejb.entity.User" %>

<%@ page import="com.diegoyun.ejb.entity.UserHome" %>

<%@ page import="javax.rmi.PortableRemoteObject" %>

<%@ page import='java.util.*' %>

 

<html>

 

<head><title>CMP_DEMO</title></head>

 

<body bgcolor="white">

<center>

<h2>CMP_DEMO_TITLE</h2>

 

Create user :

<p>

<form method="post" action="createUser.jsp">

<table border=10>

  <tr>

    <td>userId : </td>

    <td><input type="text" name="userId" size="11" value=""></td>

  </tr>

  <tr>

    <td>name : </td>

    <td><input type="text" name="name" size="25" value=""></td>

  </tr>

  <tr>

    <td>age : </td>

    <td><input type="text" name="age" size="25" value=""></td>

  </tr>

</table>

<p>

<input type="submit" name="submit" value="Submit">

<p>

</form>

 

<%

String tid = request.getParameter("userId");

String name = request.getParameter("name");

String tage = request.getParameter("age");

 

Integer userId = null;

Integer age = null;

 

if(tid!=null && !"".equals(tid))

    userId = Integer.valueOf(tid);

if(tage!=null && !"".equals(tage))

    age = Integer.valueOf(tage);

 

if (userId != null && !"".equals(userId) && name != null && !"".equals(name) && age != null && !"".equals(age)) {

    try {

        InitialContext ic = new InitialContext();

        Object o = ic.lookup("ejb/entity/UserBean");

        UserHome home = (UserHome) o;

        User user = home.create(userId, name, age);

%>

New User [<%=userId%>] created !!:

<%

    } catch(Exception e) {

        e.printStackTrace();

        out.println("Create User Failed : " + e.toString());

    }

}

%>

<hr>

[<a href="index.html">home</a>]

</center>

</body>

</html>

 

searchUser.jsp

<%@ page language="java" %>

<%@ page import="java.util.ArrayList" %>

<%@ page import="java.util.Collection" %>

<%@ page import="javax.ejb.ObjectNotFoundException" %>

<%@ page import="javax.naming.Context" %>

<%@ page import="javax.naming.InitialContext" %>

<%@ page import="javax.naming.NamingException" %>

<%@ page import="com.diegoyun.ejb.entity.User" %>

<%@ page import="com.diegoyun.ejb.entity.UserHome" %>

<%@ page import='java.util.*' %>

 

<html>

 

<head><title>CMP_DEMO_TITLE</title></head>

<body bgcolor="white">

<center>

<h2>CMP_DEMO_TITLE</h2>

 

Search by id:

<p>

    <form method="get" action="searchUser.jsp">

    <input type="text" name="searchText" size="25">

    <p>

    <input type="submit" value="Search"/>

    </form>

 

<%

String text = request.getParameter("searchText");

Integer id=null;

if(text!=null && !"".equals(text))

    id = Integer.valueOf(text);

 

User user = null;

if (id != null && !"".equals(id)) {

    try {

        String url = "t3://localhost:7001";

        Hashtable h = new Hashtable();

        h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");

        h.put(Context.PROVIDER_URL, url);

        Context ic = new InitialContext(h);

        Object o = ic.lookup("ejb/entity/UserBean");

        UserHome home = (UserHome) o;

 

        try {

          user = home.findByPrimaryKey(id);

        } catch (ObjectNotFoundException ex) {

           //throw new Exception(ex);

       }

 

%>

results : <p>

<%

if (user != null) {

%>

User [<%=user.getUserId()%>] :

<%=user.getName()%>, <%=user.getAge()%>

<p>

<%

} else {

%>

User [<%=id%>] not found.

<%

}

    } catch(Exception e) {

        e.printStackTrace();

        out.println(e.toString());

    }

}

%>

 

<hr>

[<a href="index.html">home</a>]

</center>

</body>

</html>

 

searchUserByAge.jsp

<%@ page language="java" %>

<%@ page import="java.util.ArrayList" %>

<%@ page import="java.util.Collection" %>

<%@ page import="javax.ejb.ObjectNotFoundException" %>

<%@ page import="javax.naming.Context" %>

<%@ page import="javax.naming.InitialContext" %>

<%@ page import="javax.naming.NamingException" %>

<%@ page import="com.diegoyun.ejb.entity.User" %>

<%@ page import="com.diegoyun.ejb.entity.UserHome" %>

<%@ page import="javax.rmi.PortableRemoteObject" %>

<%@ page import='java.util.*' %>

 

<html>

 

<head><title>CMP_DEMO_TITLE</title></head>

<body bgcolor="white">

<center>

<h2>CMP_DEMO_TITLE</h2>

 

Search by age:

<p>

    <form method="get" action="searchUserByAge.jsp">

    <input type="text" name="searchText" size="25">

    <p>

    <input type="submit" value="Search"/>

    </form>

 

<%

String text = request.getParameter("searchText");

Integer id=null;

if(text!=null && !"".equals(text))

    id = Integer.valueOf(text);

 

User user = null;

Collection userList = null;

if (id != null && !"".equals(id)) {

    try {

        String url = "t3://localhost:7001";

        Hashtable h = new Hashtable();

        h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");

        h.put(Context.PROVIDER_URL, url);

        Context ic = new InitialContext(h);

        Object o = ic.lookup("ejb/entity/UserBean");

        UserHome home = (UserHome) o;

 

        try {

          userList = home.findByAge(id);

        } catch (ObjectNotFoundException ex) {

           //throw new Exception(ex);

       }

 

%>

results : <p>

<%

if (userList != null && !userList.isEmpty()) {

    for(Iterator it = userList.iterator();it.hasNext();){

        user = (User) PortableRemoteObject.narrow(it.next(), User.class);

%>

        User : id[<%=user.getUserId()%>]<br>

              name : <%=user.getName()%><br>

              age : <%=user.getAge()%><br>

<%    

        if(it.hasNext())

%>      <p>

<%     ;

          

    }

} else {

%>

User not found.

<%

}

    } catch(Exception e) {

        e.printStackTrace();

        out.println(e.toString());

    }

}

%>

 

<hr>

[<a href="index.html">home</a>]

</center>

</body>

</html>

 

在浏览器打开:

http://localhost:7001/web/index.html

好好享受自己的成果 :)

 

diegoyun At 4/20/2005 12:20:45 AM

39、深入理解EJB开发:BMP与CMP实体Bean编程 本文深入讲解了EJB开发中的BMP和CMP实体Bean编程技术。内容涵盖BMP实体Bean的主键类、值对象、部署描述符和数据库表设计,以及CMP实体Bean的接口定义、抽象Bean类实现和复杂的关系配置。通过对比BMP与CMP的优缺点,为实际开发中如何选择合适的持久化方式提供了指导,并结合数据库优化和代码规范给出了应用建议。 阅读详情

相关推荐

39、Java EJB开发:BMP与CMP实体Bean编程指南

本文详细介绍了Java EJB开发中BMP和CMP实体Bean的编程指南,包括主键类、值对象类、部署描述符的创建以及数据库表的设计。通过具体示例和配置说明,帮助开发者理解BMP(Bean-Managed Persistence)与CMP(Container-Managed Persistence)的开发过程及关键区别,为构建分布式、可扩展的企业应用提供指导。

y2z3a4b5c的博客 72

IDEA 这个小技巧太实用了,随时随用。。。

当你在使用IDEA编写项目代码的时候,是否遇到过如下一些情况? 与别人沟通,需要简写某个功能的伪代码 想记录一些json格式的数据,并且能格式化,即JSON文档功能 想记录一些其他语言例如HTML,CSS,SQL,XML等的代码 突然有另外一个项目的思路,想记录下代码,以备切换另外一个项目时能用到 临时记录HTTP Client调用记录 … 当遇到以上情况,正常可能要打开其他软件或编辑器来进行操作,不同软件间切换比较麻烦,而且如果电脑内存有限,可能

weixin_51393513的博客 481

STM32 ADC精准采集12V电池电压:从分压电路到软件校准全解析

本文详细解析了STM32 ADC精准采集12V电池电压的全过程,涵盖分压电路设计、电阻选型、ADC配置优化及软件校准方法。针对电池电压监测中的噪声、温漂等挑战,提供了硬件滤波与软件过采样等实战技巧,确保测量精度达到1%以内,满足嵌入式设备对电源管理的严苛要求。

tech5的博客 1014

9大开源云管理平台(CMP)

一、什么是CMP? 云管理平台(CMP)是具有集成工具的综合软件套件,企业可以使用它来监控和控制云计算资源。市场上有许多CMP,包括开源的和专有的。这里为大家推荐9款市场上顶级的开源云平台。 对于任何基于云的全面部署,用户面临的问题包括维护在线迁移的所有数据的完整性,可用性和安全性等。随着企业IT运营开始将功能和资源扩展到云中,企业现在希望通过以下方式管理云资源,比如对现有IT环境具有相同的政策,程序,指导和愿景。 解决基于云实施产生的所有问题的唯一解决方案是云管理平台(CMP)。它为编排和自动化提供

己亥谷雨 8380

unity打包流程整理-Windows/Mac/Linux平台

1.Platform(平台)功能: 选择目标构建的目标平台选项PC, Mac & Linux Standalone: 适用于 Windows、Mac 和 Linux 平台2.Target Platform(目标平台)功能: 选择具体的操作系统版本选项Windows: 针对 Windows 操作系统Mac: 针对 macOS 操作系统Linux: 针对 Linux 操作系统3.Architecture(架构)功能: 选择应用程序的目标处理器架构选项x86: 针对 32 位系统。

weixin_42333247的博客 5136

通讯软件019——分分钟学会Prosys OPC UA Server配置

本文介绍如何配置Prosys OPC UA Simulation Server,通过本文可以对OPC UA的基本概念有所了解,掌握OPC UA的本质。

zhouwl72的博客 4300

数模转换DAC与CMP模块

DAC模块的定义 当MCU要把处理后的信息反馈到控制设备上时,其实就是把数字量转换成模拟量,完成这种转换的电路称为数模转换器,DA转换器的工作就是将输入的二进制数字量转换成模拟量,以电压或电流的形式输出。 DA转换器实际是一个译码器,一般为线形转换器,输出模拟电压VO和输入数字量Dn之间呈正比关系。 DA转换器在工作时将输入的每一位二进制代码Dn按其权值大小转换成相应的模拟量,然后将代表...

Jeremy.Rin的博客 7292

AI在保险产品定价优化中的创新应用

在当今保险市场中,准确合理的产品定价是保险公司实现可持续发展的关键因素之一。传统的保险产品定价主要基于经验数据和精算模型,但这种方式往往存在数据处理效率低、对复杂风险因素考虑不足等问题。本文的目的在于深入探讨AI技术如何在保险产品定价中进行创新应用,以提高定价的准确性、效率和灵活性,更好地满足市场需求和客户个性化需求。本文的范围涵盖了AI技术在保险产品定价各个环节的应用,包括风险评估、费率计算、产品设计等方面。同时,还会涉及到相关的核心算法、数学模型以及实际应用案例等内容。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 983

CMPP协议之CMPP_SUBMIT

    ///     /// 功能:SP在与ISMG建立应用层连接后向ISMG提交短信。    /// 作者:吕永义    /// 时间:2011年5月19日    ///     public class CMPP_SUBMIT    {        #region CMPP_SUBMIT的变量和属性        private int bodyLength;        p

lvyongyi_2010的专栏 2516

机器人视觉联动精度优化:从±2mm到±0.02mm,产线级手眼标定全实战

2025年我接东莞长安Type-C接口分拣项目的时候,就是栽在了手眼标定上:实验室里标定完精度±0.5mm,一到产线直接掉到±2mm,机器人10次有3次抓不住,2000多件Type-C接口直接报废,还撞坏了2套汇川SCARA机器人的吸盘,本来45天的工期拖了3个月,不仅没赚到钱,还倒贴了几万块。手眼标定从来不是简单的跑个demo、算个矩阵就完事了,它是一个系统工程:从硬件选型、安装固定、相机标定、标定流程、算法优化、环境控制、重复验证,每一个环节都会影响最终的联动精度。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 386

vue项目表格甘特图开发

🧩 甘特图可以管理项目进度,生产进度等信息,管理者可以更直观的查看内容。

qq_35946021的博客 991

java cmp_JAVA中sort函数的 自定义排序 cmp函数的写法 【java】【cmp】

JAVA中sort函数的 自定义排序 cmp函数的写法 【java】【cmp】JAVA中sort函数的 自定义排序 cmp函数的写法 【java】【cmp】查了很多博客,了解挺多有关cmp函数的问题。所以在这里来总结一下写法。。我们通常可以用这个cmp函数来改变Arrays.sort()函数的默认排序方法。这里我们以升序排序为例、基本方法int compare(Object o1, Object ...

weixin_42306503的博客 509

YOLO126优化:损失篇 | AAAI 2025 | 一种基于尺度的动态(SD)损失,根据目标大小动态调整尺度和位置损失的影响,提高了网络检测不同尺度目标的能力

提出了一种基于尺度的动态(SD)损失,它根据目标大小动态调整尺度和位置损失的影响,提高了网络检测不同尺度目标的能力。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 447

使用Eclipse开发CMP

内容摘要:Eclipse作为目前成功的开源IDE之一受众多Java开发人员的喜爱,但是其内部并不直接支持EJB的开发一直为广大开发人员所诟病,并且大大增加了EJB初学者使用Eclipse开发EJB的难度;JBoss作为目前最为成功的EJB容器,由于文档的缺乏,初学者往往抓不住要点,对部署和调试时产生的错误往往束手无策。本文使用JBoss Group提供的Eclipse插件JBoss

风达的专栏 1319

Authentication Assertion Tickets,SAP 系统到系统单点登录里的短命凭证

SAP 系统间的身份传递机制存在 Authentication Assertion Ticket 和 SAP Logon Ticket 两种易混淆的凭证。前者用于系统间短时身份委托(有效期2分钟,通过HTTP头传输),后者用于浏览器SSO(可配置有效期,通过Cookie传输)。Assertion Ticket依赖签发系统的数字签名和严格的时间同步,适用于ABAP/Java系统间的后台作业调用。现代SAP架构已转向OAuth 2.0等标准协议,但老系统中仍需注意两种票据的关键差异:传输方式、有效期、接收方限制

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 602

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

使用Eclipse开发CMP2.0

使用Eclipse开发CMP2.0--集成JBoss-IDE 1.1.0、JUnitEJB、MySQL Eclipse作为目前成功的开源IDE之一受众多Java开发人员的喜爱,但是其内部并不直接支持EJB的开发一直为广大开发人员所诟病,并且大大增加了EJB初学者使用Eclipse开发EJB的难度;JBoss作为目前最为成功的EJB容器,由于文档的缺乏,初学者往往抓不住要点,对部署和

iamcyh的专栏 1082

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

CMP开发过程中的datasourcemapping设置

CMP开发过程中的datasourcemapping设置  在用工具进行开发过程中我们可能对一些基本的问题存在疑惑,这也可能导致一个初学者对一项新技术的疏远,这里对CMP开发过程中的datasourcemapping选项做一点解释如下:关于datasourcemapping选项的设置涉及的文件有:   xdoclet.xml   standardjbosscmp-jdbc.xml   *-

空中花园的专栏 980

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Myeclipse开发CMP2.X生成代码技巧

Myeclipse进行CMP开发技巧为方便进行CMP的开发手动设置生成abstract方法的快捷键以便在进行CMP开发时,快速的生成重复性的代码/** * 获取 ${lowerName} 字段值 * @ejb.interface-method view-type = "${interface}" * @ejb.persiste

风达的专栏 1296

TwitchDropsMiner 完整指南:免费挂机挖 Twitch 掉宝,自动领取、自动换台、几乎零流量

TwitchDropsMiner 是一款免费、开源的 Twitch 掉宝自动挖矿工具:它不播放直播画面,只抓取直播的元数据来推进掉宝进度,进度一满就自动领取掉宝,当前频道下播时自动切换到下一个在线频道。想知道如何领取 Twitch 掉宝又不想守着直播?这篇文章带你走通它的原理、三种安装方式、首次配置、常见用法与进阶调优。 ## 先弄懂原理:不加载视频,也能推进度 传统的掉宝挂机需要你真的观看直

gitblog_00766的博客 852

提高软件开发效率三板斧之二利用CMP模式

提高软件开发效率三板斧之二利用CMP模式上一章给大家总体介绍了一些提高软件开发效率的技术和技巧,在这里将给大家演示一个软件体系结构的应用,我们引用《ASP.NET电子商务高级编程》的一句话来解释“体系结构”这个词,因为演示的这个架构正是这本书中提到的。“我们通常将体系结构看作一系列服务的集合,用来执行其他代码,这些服务应当提供有效的功能和特性来完成一些特定目标。”建立体系结构时必须牢记

蓝月的专栏 1102

专稿:实战EJB之四 开发实体CMP(EJB 1.1规范)

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//<script type="text/java

java专栏 684

求求各位大哥了:关于 eclipse+lomboz+jboss开发 cmp 的问题

     向各位大哥致敬了,我想问一下关于eclipse+lomboz+jboss开发 cmp 的问题,干怎么向ejb的cmp实体bean 中加入如自己定义的findby方法啊。求求各位大哥了,我已经困扰了好长时间了我给各位大哥拜年了!!!

zjgthebest的专栏 631

使用Eclipse开发CMP2.0 (转)

使用Eclipse开发CMP2.0 (转)[@more@]使用Eclipse开发CMP2.0 --集成jboss-ide 1.1.0、JUnitEJB、Mysql Eclipse作为目前成功的开源IDE之一受众多Jav...

csd3176的博客 124

终极指南:如何用nvim-cmp提升区块链开发效率

nvim-cmp是一款用Lua编写的Neovim自动补全引擎插件,它通过外部仓库安装的补全源提供代码补全功能。作为区块链开发者,掌握这款工具能显著提升智能合约编写和DApp开发的效率。 ## 🚀 为什么区块链开发者需要nvim-cmp? 区块链开发涉及Solidity、Vyper等智能合约语言以及JavaScript、Python等DApp开发语言,nvim-cmp提供以下核心优势: -

gitblog_00303的博客 338
上一篇: 开发SessionBean
下一篇: 使用Ant配置Weblogic环境
云哥
博客等级 码龄22年 2粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值