- 浏览: 379574 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
zxjlwt:
学习论。确实很全啊。欢迎交流http://surenpi.co ...
eclipse dialog 对话框 大全 -
zxjlwt:
很好。http://surenpi.com
eclipse 源码泛读 -
string2020:
有卵用???
activiti 第一个例子 helloworld -
ysj_csdn:
能给个正确的例子?
activiti 第一个例子 helloworld -
zxjlwt:
学习了。http://surenpi.com
Eclipse扩展点介绍
http://www.ibm.com/developerworks/cn/opensource/os-ecl-jet/
使用 JET 在 Eclipse 中创建更多更好的代码
如何掌握专家的最佳实践并提高您的模型驱动开发进度
简介: 创建模板来使最佳实践代码化(即生成工件)是一种强大的概念,能节约您无数时间和减少沉闷的编码。本文介绍代码生成框架 JET,这是一个 Eclipse 技术的项目。
代码生成不是一个新概念。它出现有一段时间了,而且作为提高生产力的一种方式,随着模型驱动开发(MDD)的发展而普及开来。Eclipse 项目有一个称为 JET 的技术项目就是一个专门的代码生成器。JET 所能生成的不仅仅是 “代码”,无论如何,在本文中我们称这些非编码的物件为工件(artifiact)。
JET?EMF?JET2?
在本节中,我们将介绍 JET 项目设置基础,讨论 JET 项目的结构,然后运行一个快速转换。
在实际接触 JET 之前,我们需要创建一个项目。使用创建项目的标准 Eclipse 方法来实现。就 JET 来说,使用命令 File > New > Other > EMFT JET Transformations > EMFT JET Transformation Project(请参见图 1)创建一个 EMFT JET Transformation Project。
图 1. JET 项目向导
让我们分析项目结构来搞清楚 JET 是如何工作的。在上面的部分,我们创建了一个 JET 项目(参见图 2)。在该 JET 项目中,我们需要浏览六个文件。
图 2. JET 项目结构
更改启动模板
startTemplate
属性下配置。在该扩展下还有其他配置选项,可随意浏览。一旦有了一个项目,拥有合适的模板、控制文件和一个输入模型,我们就可以运行转换。通过熟悉的 Eclipse 概念 —— 启动配置(参见图 3),JET 提供了一个方便的方式来调用转换。要访问 JET 启动配置,我们转到 Run > JET Transformation,填充合适的选项,然后单击 Run。
图 3. JET 启动配置
JET 是指定模板输出工件的语言。实现一些应用程序的模板集合被称为蓝图(blueprint)(用我们的术语)。JET 范例可以用下列等式表示:
参数 + 蓝图 = 所需的工件
蓝图是由 JET 创建的,而参数是由蓝图用户提供的。蓝图由三个不同的文件集组成:
清单 1. 网络嗅探器蓝图的输入
<app project="NetworkSniffer" > <sniffer name="sampler" sample_probability=".7" > <logFile name="packet_types" /> <packet type="TCP" subType="SYN" > <logToFile name="packet_types" /> <findResponse type="TCP" subType="ACK" timeout="1" /> </packet> <packet type="UDP" > <logToFile name="packet_types" /> </packet> </sniffer> </app> |
蓝图将转换这些输入参数为实现该网络嗅探器的代码。蓝图的参数可视为自定义编程语言,而蓝图扮演 “编译器” 的角色,将输入转换为本机工件。
<ws:file>
,它将执行一个模板并将结果转储至指定的文件。代码生成执行从 main.jet 开始,这与程序的 main 函数类似。更多有关 XPath 的信息
如果 XPath 对于您是个陌生概念,请查看 XPath 参考资料。
既然任何 JET 蓝图的输入都是一个 XML 模型,XPath 语言被用来引用节点和属性。此外,在表达式里 XPath 有自己的参数使用方式,这在 JET 里使用得非常多。要点如下:
-
路径表达式 与文件系统路径相似。路径是由斜杠分开的一系列步(
/
)。 - 从左向右估算步,如果这样做,通常会下行模型树。
- 每步通过其名字定义树节点(尽管存在其他可能性)。
- 在步的结尾,步可以在方括号(
[
和]
)中编写可选的过滤器条件。 - 初始斜杠(
/
)指示表达式开始于模型树的根。 - 路径表达式还可以以变量开始,变量是以美元符号(
$
)开头的名字。
关于 JET 中的 XPath ,应记住以下几个要点:
- 变量是由几个 JET 标记定义的 - 注意
var
属性。它们可能也是由c:setVariable
标签定义的。 - 需要路径表达式的 JET 标签有一个 select 属性。
- 任何标签属性都可能包含一个动态的 XPath 表达式,是由括号(
{
和}
)所包含的 XPath 表达式。
下例将使用下列输入模型。
清单 2. 输入模型
<app middle="Hello" > <person name="Chris" gender="Male" /> <person name="Nick" gender="Male" /> <person name="Lee" gender="Male" /> <person name="Yasmary" gender="Female" /> </app> |
ws:file
<ws:file template="templates/house.java.jet" path="{$org.eclipse.jet.resource.project.name}/house1.java"> |
将在输入模型上运行 house.java.jet 模板并将结果转储在 $(Project Root)/house1.java 中。
{$org.eclipse.jet.resource.project.name}
是一个动态 XPath 表达式,用 org.eclipse.jet.resource.project.name 变量的值替换部分字符串。该变量是由 JET 引擎定义的。c:get
Pre<c:get select="/app/@middle" />Post
将输出 PreHelloPost
。注意select
参数将使用 XPath 表达式。要在期望静态字符串的参数中使用 XPath 表达式,可以通过将表达式封装在括号({
和 }
)中来调用动态 XPath 表达式。c:iterate
该标签将遍历具有特定名称的节点,为每个节点执行 iterate
的主体。例如:
<c:iterate select="/app/person" var="currNode" delimiter="," > Name = <c:get select="$currNode/@name" /> </c:iterate> |
将输出 Name = Chris, Name = Nick, Name = Lee, Name = Yasmary
。
iterate 标签通常也用于控制模板的其实标记。例如,如果要为模型中的每个人创建 Java™ 类,可使用如下代码:
<c:iterate select="/app/person" var="currPerson"> <ws:file template="templates/PersonClass.java.jet" path="{$org.eclipse.jet.resource.project.name}/{$currPerson/@name}.java"/> </c:iterate> |
这将创建四个 Java 类文件:Chris.java、Nick.java、Lee.java 和 Yasmary.java。注意启动标记 path
属性中的{$currPerson/@name}
字符串。既然 path
参数不需要 XPath 表达式(像 select
参数一样),{...}
字符告知 JET 引擎通过计算 XPath 表达式代替这部分字符串。$currPerson/@name
告诉引擎用 currPerson
节点(是定义在 iterate
标签中的变量)的 name
属性来代替其字符串。
此外,在 PersonClass.java.jet 模板中,它可以引用定义在 iterate
标签中的 currPerson
节点变量。例如,假设 PersonClass.java.jet 如下所示:
清单 3. PersonClass.java.jet
class <c:get select="$currPerson/@name" />Person { public String getName() { return "<c:get select="$currPerson/@name" />"; } public void shout() { System.out.println("Hello!!!"); } } |
Yasmary.java 的形式将如下:
清单 4. Yasmary.java
class YasmaryPerson { public String getName() { return "Yasmary"; } public void shout() { System.out.println("Hello!!!"); } } |
Lee.java 的形式如下:
清单 5. Lee.java
class LeePerson { public String getName() { return "Lee"; } public void shout() { System.out.println("Hello!!!"); } } |
c:choose
和 c:when
清单 6. c:choose/c:when 示例
<c:iterate select="/app/person" var="p" > <c:choose select="$p/@gender" > <c:when test="'Male'" > Brother </c:when> <c:when test="'Female'" > Sister </c:when> </c:choose> </c:iterate> |
将输出:
Brother
Brother
Brother
Sister
注意 c:when
标签需要 test
参数,这需要一个 XPath 表达式。既然我们要通过一个常量比较 select
参数,可用单引号 (''
) 包含常量。
c:set
Chris
可能映射到 Chris
、chris
、ChrisClass
、CHRIS_CONSTANT
等。c:set
将其内容设置为指定的属性。下面的例子为每个人存储名为 className
的属性并在名字之后简单添加词 Class
。清单 7. c:set 例子
<c:iterate select="/app/person" var="p" > <c:set select="$p" name="className" > <c:get select="$p/@name" />Class</c:set> </c:iterate> |
setVariable
清单 8. c:setVariable 示例
<c:setVariable select="0" var="i" /> <c:iterate select="/app/person" var="p" > <c:setVariable select="$i+1" var="i" /> </c:iterate> Number of people = <c:get select="$i" />. |
输出 Number of people = 4。
可以使用 get
输出变量,如上例所示。
有超过 45 个标签,这使输出文本具有强大的表现力。表现力大多源于存在条件逻辑、动态更改输入模型和控制执行流的标签。
JET 是可扩展的通过使用 Eclipse 的扩展点机制。以下是 JET 提供的六个扩展点。
<c:load>
标签以怎样的方式使用模型。作为示例,JET 提供模型加载器 loader org.eclipse.jet.resource,将加载 Eclipse IResource(文件,文件夹或项目)并允许通过该资源导航 Eclipse 工作空间。下列实例是一个模板,用于创建拥有任意数量属性的类。每个属性将有 getter 和 setter 与之关联,还有一些初始值。此外,所调用的函数的名称将输出到命令行,通过这种方式,模板即可为各函数添加简单的日志。
清单 9. 属性模板
class <c:get select="/app/@class" /> { <c:iterate select="/app/property" var="p" > private <c:get select="$p/@type" /> <c:get select="$p/@name" />; </c:iterate> public <c:get select="/app/@class" />() { <c:iterate select="/app/property" var="p" > this.<c:get select="$p/@name" /> = <c:choose select="$p/@type" > <c:when test="'String'">"<c:get select="$p/@initial" />"</c:when> <c:otherwise><c:get select="$p/@initial" /></c:otherwise> </c:choose> ; </c:iterate> } <c:iterate select="/app/property" var="p" > public void set<c:get select=\ "camelCase($p/@name)" />(<c:get select="$p/@type" /> <c:get select="$p/@name" />) { System.out.println\ ("In set<c:get select=\ "camelCase($p/@name)" />()"); this.<c:get select="$p/@name" /> = <c:get select="$p/@name" />; } public <c:get select=\ "$p/@type" /> get<c:get select="camelCase($p/@name)" />() { System.out.println("In get<c:get select="camelCase($p/@name)" />()"); return <c:get select="$p/@name" />; } </c:iterate> } |
这里是该模板的输入模型实例:
清单 10. 输入参数
<app class="Car"> <property name="model" type="String" initial="Honda Accord" /> <property name="horsepower" type="int" initial="140" /> <property name="spareTires" type="boolean" initial="true" /> </app> |
这些输入参数生成如下类:
清单 11. 生成的类
class Car { private String model; private int horsepower; private boolean spareTires; public Car() { this.model = "Honda Accord"; this.horsepower = 140; this.spareTires = true; } public void setModel(String model) { System.out.println("In setModel()"); this.model = model; } public String getModel() { System.out.println("In getModel()"); return model; } public void setHorsepower(int horsepower) { System.out.println("In setHorsepower()"); this.horsepower = horsepower; } public int getHorsepower() { System.out.println("In getHorsepower()"); return horsepower; } public void setSparetires(boolean spareTires) { System.out.println("In setSparetires()"); this.spareTires = spareTires; } public boolean getSparetires() { System.out.println("In getSparetires()"); return spareTires; } } |
为强调 JET 不仅仅可用来生成代码,我们给出了下面这个实例,这是一个模板,生成具有不同语气的电子邮件消息。所生成的各电子邮件的目的是是向某人索要求各种东西。下面提供控制文件(main.jet)及其调用的模板(email.jet)。
清单 12. main.jet
<c:iterate select="/app/email" var="currEmail" > <ws:file template="templates/email.jet" path="{$org.eclipse.jet.resource.project.name}/{$currEmail/@to}.txt" /> </c:iterate> |
清单 13. email.jet
<c:setVariable var="numItems" select="0" /> <c:iterate select="$currEmail/request" var="r"> <c:setVariable var="numItems" select="$numItems+1" /> </c:iterate> <c:set select="$currEmail" name="numItems"><c:get select="$numItems" /></c:set> <c:choose select="$currEmail/@mood" > <c:when test="'happy'">My dear</c:when> <c:when test="'neutral'">Dear</c:when> <c:when test="'angry'">My enemy</c:when> </c:choose> <c:get select="$currEmail/@to" />, I am writing you <c:choose select="$currEmail/@mood" > <c:when test="'happy'">in joy </c:when> <c:when test="'neutral'"></c:when> <c:when test="'angry'">in burning anger </c:when> </c:choose>to ask for <c:choose select="$currEmail/@numItems" > <c:when test="1"> a <c:get select="$currEmail/request/@item" />. </c:when> <c:otherwise> the following: <c:setVariable var="i" select="0" /> <c:iterate select="$currEmail/request" var="r"> <c:setVariable var="i" select="$i+1" /> <c:get select="$i" />. <c:get select="$r/@item" /> </c:iterate> </c:otherwise> </c:choose> <c:choose select="$currEmail/@mood"> <c:when test="'happy'">Please</c:when> <c:when test="'neutral'">Please</c:when> <c:when test="'angry'">Either suffer my wrath, or</c:when> </c:choose> send me <c:choose select="$currEmail/@numItems"> <c:when test="1"> this item</c:when> <c:otherwise> these items</c:otherwise> </c:choose> <c:choose select="$currEmail/@mood" > <c:when test="'happy'">at your earliest convenience.</c:when> <c:when test="'neutral'">promptly.</c:when> <c:when test="'angry'">immediately!</c:when> </c:choose> <c:choose select="$currEmail/@mood" > <c:when test="'happy'">Your friend,</c:when> <c:when test="'neutral'">Sincerely,</c:when> <c:when test="'angry'">In rage,</c:when> </c:choose> <c:get select="/app/@from" /> |
该模板的输入模型实例如下:
清单 14. sample.xml
<app from="Nathan" > <email to="Chris" mood="angry" > <request item="well-written article" /> </email> <email to="Nick" mood="happy" > <request item="Piano" /> <request item="Lollipop" /> <request item="Blank DVDs" /> </email> </app> |
将 mood
电子邮件蓝图应用于这些参数,生成下列两个文件。
清单 15. Chris.txt
My enemy Chris, I am writing you in burning anger to ask for a well-written article. Either suffer my wrath, or send me this item immediately! In rage, Nathan |
清单 16. Nick.txt
My dear Nick, I am writing you in joy to ask for the following: 1. Piano 2. Lollipop 3. Blank DVDs Please send me these items at your earliest convenience. Your friend, Nathan |
在结束之前,我们希望感谢 Paul Elder 提供了宝贵的意见。整体上来说,JET 的用途不仅限于简化代码生成。JET 是一个新的 Eclipse 技术项目,我们期待有更多的开发人员在工作中使用它。
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
- 在 Eclipse Modeling Framework Technologies JET project 查看更多有关 JET 的信息。
- 在 Eclipse.org 了解更多有关 Eclipse Modeling Framework Technology(EMFT)项目的信息。
- 从 developerWorks 教程 “Code generation using XSLT” 中了解更多有关使用另一种技术 —— XSLT 生成代码的信息。
- 有关更多信息,请阅读 “JET Tutorial Part 1 (Introduction to JET)”。
- 通过阅读 "JET Tutorial Part 2 (Write Code that Writes Code)",了解更多有关旧版本的 JET 高级主题。
- 通过阅读 “在 Java 中使用 DOM 和 XPath 进行有效的 XML 处理” 学习如何使用 XPath 有效地处理 XML。
- 查看 W3C XPath 1.0 规范 获得更多信息。
- 通过查看 XPath by Example,了解有关 XPath 的信息。
- 通过查看 XPath Introduction,学习更多有关 XPath 的信息。
- 访问 Planet Eclipse 了解关于 Eclipse 的活动。
- 了解更多有关 Eclipse Foundation 及其众多项目的信息。
- 请参阅 “Eclipse 平台入门” 来获得有关 Eclipse 平台非常好的介绍。
- 通过访问 IBM developerWorks 的 Eclipse 项目资源 扩展您的 Eclipse 技能。
- 访问 developerWorks 开放源码专区,获得广泛的 how-to 信息、工具和项目更新,帮助您使用开放源码技术进行开发,并将其与 IBM 产品一起使用。
- 随时关注最新的 developerWorks 技术活动和 webcast。
获得产品和技术
- 在 IBM alphaWorks上查看最近的 Eclipse 技术下载。
- 使用 IBM 试用软件 改进您的下一个开源开发项目,可以通过下载或从 DVD 中获得这些软件。
讨论
- 如果您有关于 JET 的问题,EMFT EMFT 新闻组 是个不错的起点。
- 想要为 JET 作贡献?在 EMFT 邮件列表 上讨论您的贡献。
-
Eclipse newsgroups 拥有面向使用和扩展 Eclipse 的用户的大量参考资料。
- 通过参与 developerWorks blogs 加入 developerWorks 社区。
Chris Aniszczyk 是 IBM (Tivoli Security) 的软件工程师,已完成 IBM 的 Extreme Blue 实习。他是一个开放源码的爱好者,致力于 Gentoo Linux (http://www.gentoo.org) 发行版的工作,同时他还是 Eclipse Modeling Framework Technology (EMFT) 项目的提交者。
标签
搜索所有标签
热门标签
- 1 (3)
- 2 (3)
- activity (3)
- ajax (3)
- android (26)
- apache (19)
- cache (3)
- cakephp (2)
- cas (2)
- cassandra (6)
- cim (2)
- debug (2)
- derby (11)
- dojo (2)
- eclipse (94)
- eclipse插件 (2)
- ejb_(enterpris... (2)
- facebook (2)
- framework (2)
- geronimo (14)
- hadoop (2)
- j2ee_(java_2_... (6)
- java (12)
- java_技术 (30)
- javascript (4)
- lamp (4)
- linux (8)
- lucene (2)
- mysql (2)
- ndk (2)
- network (2)
- nmap (2)
- node.js (3)
- open (2)
- osgi (9)
- perl (5)
- php (29)
- php_(hyperte... (39)
- php框架 (2)
- php设计模式 (2)
- python (13)
- roo (3)
- ruby (6)
- selenium (3)
- spring (11)
- tomcat (3)
- web (8)
- web_2.0 (6)
- web_服务 (5)
- xml (5)
- zend (3)
- zookeeper (5)
- 安全 (5)
- 部分 (3)
- 存储 (4)
- 动画框架详解,第 (3)
- 管理 (6)
- 集成开发环境 (17)
- 开发工具 (44)
- 开发简介 (4)
- 开放源码 (4)
- 全球化 (4)
- 软件开发生命周期 (5)
- 商业智能 (6)
- 设计模式 (3)
- 社交网络 (3)
- 社区 (8)
- 数据访问 (5)
- 数据库和数据管理 (8)
- 体系架构 (3)
- 图形 (16)
- 网络 (3)
- 文档和文本管理 (4)
- 性能 (4)
- 移动和嵌入式系统 (14)
- 应用程序 (3)
- 应用开发 (28)
- 硬件平台 (4)
- 云计算 (12)
- 自动化测试 (9)
热门标签结束
我的标签
我的标签结束
更多更少
- 1 (3)
- 2 (3)
- activity (3)
- ajax (3)
- android (26)
- apache (19)
- cache (3)
- cakephp (2)
- cas (2)
- cassandra (6)
- cim (2)
- debug (2)
- derby (11)
- dojo (2)
- eclipse (94)
- eclipse插件 (2)
- ejb_(enterpris... (2)
- facebook (2)
- framework (2)
- geronimo (14)
- hadoop (2)
- j2ee_(java_2_... (6)
- java (12)
- java_技术 (30)
- javascript (4)
- lamp (4)
- linux (8)
- lucene (2)
- mysql (2)
- ndk (2)
- network (2)
- nmap (2)
- node.js (3)
- open (2)
- osgi (9)
- perl (5)
- php (29)
- php_(hyperte... (39)
- php框架 (2)
- php设计模式 (2)
- python (13)
- roo (3)
- ruby (6)
- selenium (3)
- spring (11)
- tomcat (3)
- web (8)
- web_2.0 (6)
- web_服务 (5)
- xml (5)
- zend (3)
- zookeeper (5)
- 安全 (5)
- 部分 (3)
- 存储 (4)
- 动画框架详解,第 (3)
- 管理 (6)
- 集成开发环境 (17)
- 开发工具 (44)
- 开发简介 (4)
- 开放源码 (4)
- 全球化 (4)
- 软件开发生命周期 (5)
- 商业智能 (6)
- 设计模式 (3)
- 社交网络 (3)
- 社区 (8)
- 数据访问 (5)
- 数据库和数据管理 (8)
- 体系架构 (3)
- 图形 (16)
- 网络 (3)
- 文档和文本管理(4)
- 性能 (4)
- 移动和嵌入式系统 (14)
- 应用程序 (3)
- 应用开发 (28)
- 硬件平台 (4)
- 云计算 (12)
- 自动化测试 (9)
查看方式云 | 列表
发表评论
-
离线使用tycho对eclipse RCP打包导出
2015-09-02 09:22 1239http://www.bubuko.com/infodetai ... -
RAP源码泛读及分析
2014-01-17 13:27 1154SWT、RWT如何保证大部 ... -
rap 的学习1
2013-10-27 22:02 790RAP 2.2 December 2013 (planne ... -
tycho 打包不同平台的RCP
2013-06-18 10:56 1159<configuration> < ... -
rap web开发
2013-04-10 17:12 896rap项目已经2.0(changelog) 这次改动 ... -
subversion升级到1.7
2012-09-07 15:37 1921http://www.cnblogs.com/xiziy ... -
ubuntu eclipse 中使用jadclipse java反编译
2012-09-07 11:04 11951:net.sf.jadclipse_3.3.0.jar 发 ... -
Nebula Project
2012-08-10 02:42 884http://www.eclipse.org/nebula/ -
Eclipse Plug-in dependencies – Required Bundle vrs. Import-Package
2012-07-19 00:32 3034http://www.vogella.com/blog/200 ... -
rcp培训
2012-07-19 00:22 1242<!-- @pa ... -
No schema found for … extension point 问题
2012-03-13 13:09 1589很多时候在编辑plugin.xml 文件的Extensi ... -
Eclipse中的org.eclipse.core.resources.markers扩展点
2011-11-09 11:26 1941扩展点配置如下:<extension ... -
开发一个调试 JSP 的 Eclipse 插件
2011-10-27 22:34 1578AVA调试框架(JPDA)简介JPDA是一个多层的调试框架 ... -
gmf 优点
2011-09-28 15:09 980http://www.ibm.com/developerwor ... -
gef 与gmf的结合
2011-09-28 14:03 1032以前的项目已经就是直接用gef,自己写模型的。 今天研 ... -
rcp自动加载插件
2011-09-28 13:56 1208http://blog.ixpub.net/html/9 ... -
rcp DialogSettings IPreferenceStore IMemento
2011-09-22 14:31 1141三个不的不同点: IMemento 要求rc ... -
rcp IPreferenceStore
2011-09-22 14:21 1270IPreferenceStore store=Acti ... -
rcp DialogSettings
2011-09-22 14:10 1173Activator.getDefault().getDialo ... -
rcp IMemento 状态的保存
2011-09-22 13:50 1133rcp 可以对每个part进行状态的保存。 保存数据 ...
相关推荐
在描述中提到的文章"使用 JET 在 Eclipse 中创建更多更好的代码"是IBM DeveloperWorks上的一篇文章,主要介绍了如何利用JET在Eclipse中进行高效的代码生成。文章可能会涵盖以下内容: 1. **JET模板基础**:介绍JET...
从压缩包的文件名来看,"使用 JET 在 Eclipse 中创建更多更好的代码_files"可能是博客文章的资源文件夹,包含了图片、样式表或脚本等辅助阅读的素材。而"使用 JET 在 Eclipse 中创建更多更好的代码.htm"很可能是博客...
它在Eclipse IDE中被广泛使用,为开发人员提供了一种强大的、灵活的方式来创建和管理Web应用程序的视图层。 Jet的核心功能包括: 1. **模板语言**:Jet采用类似于JSP的模板语法,但更简洁且易于理解。开发者可以在...
Eclipse_EMF_JET_自动代码生成技术入门
本文将详细介绍如何在SpringBoot项目中整合JetCache,并探讨其本地缓存和Redis缓存的使用,以及如何实现多缓存的并行使用。 首先,整合SpringBoot和JetCache,你需要在项目的pom.xml文件中添加JetCache的依赖。Jet...
Jet的脚手架工具是为JavaScript开发者设计的一个高效能辅助工具,它专为简化Jet项目的创建和初始化过程而生。脚手架工具的核心价值...通过合理利用这个工具,无论是新手还是老手,都能在开发过程中享受到更多的便利。
- 在Eclipse中创建一个新的Java项目,并指定一个源代码文件夹(例如,命名为`src`)。 - 为项目添加一个JET性质的设置,这将在项目的根目录下创建一个名为`templates`的文件夹,用于存放JET模板文件。 3. **配置...
1. **创建插件项目**:首先,你需要在Eclipse中创建一个新的Plug-in Project。这可以通过选择“File” -> “New” -> “Plug-in Project”来完成。在创建过程中,需要配置项目名称、插件ID、版本号等基本信息。 2. ...
要使用JRO.JetEngine对象压缩Access数据库,首先需要在代码中引用Jet运行时库。在VBA中,这可以通过以下步骤完成: 1. 打开VBA编辑器(Alt + F11)。 2. 在"工具"菜单中选择"引用"。 3. 在参考对话框中找到...
VB 代码创建数据库是指使用 VB 编程语言来创建 Access 数据库的过程。该过程涉及到 ADOX 对象、ADODB 对象和 VB 代码的结合使用。 首先,需要在 VB 项目中添加对 ADOX 和 ADODB 的引用。在菜单“工程”--> “引用...
而使用Jet,我们可以在接收Intent的Activity的字段上添加`@IntentExtra("key")`注解,Jet会自动将Intent中的对应键值对赋值给该字段,极大地提高了代码的简洁性。 除了这些基础功能,Jet库可能还包含了其他高级特性...
### JET51A 用户指南知识点详述 #### 一、概述 JET51A是一款专门为中颖增强型8051内核系列单片机设计的编程和调试...以上是对JET51A用户指南中提及的关键知识点的详细解释,希望能够帮助用户更好地理解和使用该工具。
总的来说,Python-JET,特别是Numba库,为Python开发者提供了一种强大的工具来优化计算密集型代码,使得Python和NumPy能够更好地应对高性能计算的需求。通过合理利用Numba,开发者可以编写出既简洁又高效的代码,...
在本参考手册中,我们将深入探讨JET SQL的各个方面,以帮助你更好地理解和运用这一强大的工具。 ### 1. 简介 JET SQL是基于标准SQL语法的,但具有针对Access数据库的一些特有功能和扩展。它支持关系数据库模型,...
Dengues Studio是由一群对Eclipse开发技术狂热的在职人员开发而成的JAVA 开源项目, 该项目基于Eclipse plug-ins技术,充分运用SWT/JFace/OSGI/EMF/GMF/GEF/JET等ECLIPSE核心技术进行开发,力图实现数据库的ETL功能,...
Jet引擎是Microsoft Windows操作系统中一个内置的数据库管理系统,主要用于支持Access数据库和其他使用Jet数据存储格式的应用程序。DAO(Data Access Objects)是与Jet引擎配套的数据访问接口,允许程序员通过对象和...
6. **兼容性**:Oracle JET框架兼容多种浏览器,包括最新的Chrome、Firefox、Safari以及Internet Explorer 11,确保应用在多平台上的稳定运行。 7. **集成开发工具**:Oracle提供了Visual Studio Code和其他IDE的...