DNA框架入门开发培训速记

简介:

从培训笔记整理而成,虽然估计以后用不到了,还是记一下,不要浪费了。

 

1、DNA官网 http://jqdna(内网),有各种API手册哦

2、工程一般命名规则 com.jiuqi.dna(网址倒写).工程名.ui(工程类型)

3、培训用的DA包:DNA_BP.da BP指“基础应用平台”,还有其它的DA包。加载DA包:选configurate DNA Servers.

4、配置数据源 Configurate Data Sources

5、Debug设置: 每个应用端口应该不同,默认9797;Bundle设置(基于osgi的):可全选,通过Validate Budles检查是否有少选,同事建议先全不选,再全选。

Arguments(空格分隔):

-Dcom.jiuqi.dna.debug=true(打印出错信息,下面两台在这条的基础上工作)
-Dcom.jiuqi.dna.sql.ddl=true(DDL信息,create table之类)
--Dcom.jiuqi.dna.sq.dml=true(DML信息,insert之类)

6、启动后可以打开基础应用平台:http://loalhost:9797/bap

7、MANIFEST.MF:(1)Dependencies 依赖页签 (2)runtime: exported package 共享,提供供其它工程的依赖 (3)Build 附加的文件,供打包进去

界面:

8、UI工程,UI模板,Namespace暂时没有实际作用,培训时填dna008

9、入口类继承接口UIEntry, 据同意说这种方式只供测试或实际简单功能,实际开发用ViewPart(功能点入口),培训中未教。在DNA.xml中注册入口类。

10、访问入口类 http://localhost:9797/app(这项可以通过Servlet过滤器过滤掉)/name(注册入口类name)

11、JWT参考SWT,使用高性能Ajax

12、从controls.xxx 取得控件

13、Button通过JWT.风格来实现Toggle(开关按钮)、Push、Check、Radio、Link控件,某些风格通过|来叠加。

14、“单击”指左键,一般用onAction事件,能响应到各种事件

15、技巧:双击控件,可以连续绘制N个控件

16、消息机制:广播:getContext().broadcastMessage(),自己及向下; 冒泡getContext().bubbleMessage()自己及向上

17、监听器 getContext().regMessageListener,监听OK按钮,通过判定message.buttonType==JWT.OK

18、打开窗口 TemplateLauncher.openTemplateWindow,通过map传递数据, 模态JWT.MODAL,按钮JWT.OK JWT.CANCEL, 关闭JWT.CLOSE

19、Grid控件: getGridDataAccessor()(表格的).getGridCellDataAccessor()(单元格的); setData来传递对象;

20、Table控件, TableItem行,setText(列号,Text);

逻辑处理

21、使用上下文的优点:关心数据,不用关心位置(PS:Spring,Android等等等开发里都用到的思想哦);Context是调用者和服务者之间的接口。

22、服务,service,单独的工程,继承com.jiuqi.dna.core.serivce.Service,在dna.xml中注册.记得要先在MANIFEST中添加依赖Core包。

23、任务,Task,SimpleTask/Task. Task用来处理多个任务,用枚举值区分。Serivce类中编写Task的处理类(内部类),加Annotation才能发布哦:@publish

protected 构造函数(){

     super(枚举值)

}

24、外观,facede(纠正了我N年的错误读音啊!!),以接口形式存在(JavaBean的只读接口?)。

25、结果提供器,一样的Service内部样,一样要发布才能用,继承ResultProvider/ResultListProvider/OnekeyResultProvider.得到实例getContext().get(DemoFacede.class)

数据存储

26、storage工程,字段习惯大写,RECID:行标识,主键,递增(高64位是时序,低64位是随机值),context.newRECID()来创建这个值哦。

27、DNA SQL(史上最蛋疼的类SQL有木有!!!),脚本记得要注册,逻辑表区分大小写。

define query TestQuery()
begin
    select count(*) as "count"(一定要as)
    from "talbename" as "t"
end
在Service创建script,可以避免依赖其它工程。

DBCommand db = context.preparestatement(...)
db.executeUpdate(...); db.setArgumentValue(...);

StatementDeclare st = context.parseStatement(...);
RecordSet rs = context.openQuery(强制QueryStatementDeclare)

暂不支持select *      (泪奔中....)
 

28、ORM,从逻辑表到实体类,依然要注册。

29、ORM的执行,context.newORMAccess().insert/delete....

30、ORM日期(Date)映射到Java的long(搞了半天都是错,最后才发现是long。。。)




本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/642651,如需转载请自行联系原作者

相关文章
|
2月前
|
机器学习/深度学习 人工智能 编解码
如何使用 Sora? Sora4000 字全面入门教程,附变现思路分析
本文章从非技术角度讲清楚Sora是什么,并且分析Sora的几个变现思路分析,并且基于官方技术报告给出Sora的技术实现分析
1236 5
如何使用 Sora? Sora4000 字全面入门教程,附变现思路分析
|
2月前
|
机器学习/深度学习 数据采集 存储
4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒
4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒
|
28天前
|
存储 移动开发 安全
【C/C++ 口语】C++ 编程常见接口发音一览(不断更新)
【C/C++ 口语】C++ 编程常见接口发音一览(不断更新)
22 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
科普神文,一次性讲透AI大模型的核心概念
令牌,向量,嵌入,注意力,这些AI大模型名词是否一直让你感觉熟悉又陌生,如果答案肯定的话,那么朋友,今天这篇科普神文不容错过。我将结合大量示例及可视化的图形手段,为你由浅入深一次性讲透AI大模型的核心概念。本文转载至:https://baijiahao.baidu.com/s?id=1779925030313909037&wfr=spider&for=pc。确实是一篇很不错的文,很好的解释了大模型底层的一些基本概念,对于我这种AI新手非常友好哈哈哈
科普神文,一次性讲透AI大模型的核心概念
|
3月前
|
存储 人工智能 安全
面向企业的 ChatGPT 究极手册:第七章到第八章
面向企业的 ChatGPT 究极手册:第七章到第八章
93 0
面向企业的 ChatGPT 究极手册:第七章到第八章
|
11月前
|
人工智能 自然语言处理 程序员
清华CodeGeeX项目原作解读:大规模多语言代码生成模型
清华CodeGeeX项目原作解读:大规模多语言代码生成模型
444 0
|
机器学习/深度学习 Web App开发 人工智能
特征工程系列学习(一)简单数字的奇淫技巧
特征工程系列学习(一)简单数字的奇淫技巧
特征工程系列学习(一)简单数字的奇淫技巧
|
机器学习/深度学习 数据可视化 算法
特征工程系列学习(一)简单数字的奇淫技巧(下)
特征工程系列学习(一)简单数字的奇淫技巧(下)
特征工程系列学习(一)简单数字的奇淫技巧(下)
|
机器学习/深度学习 传感器 数据可视化
计算机视觉专业术语/名词总结(一)构建知识体系
在计算机视觉中存在很多的专业术语,如先验知识,语义信息,embedding,head,neck等。这些术语的解释无法直接在网上搜到,也没有在哪一篇论文中定义它们的概念和意义,因此,对于第一次听到这些术语的读者来说会非常的困惑。
计算机视觉专业术语/名词总结(一)构建知识体系
|
机器学习/深度学习
重磅!深度学习圣经“花书”核心笔记、代码发布
重磅!深度学习圣经“花书”核心笔记、代码发布
630 0
重磅!深度学习圣经“花书”核心笔记、代码发布

热门文章

最新文章