dorado中的工具类xxxHelper
PagingHelper
dorado的CustomDataset,DODataset,MarmotDataset等实现分批数据下载功能时,需要按照dataset的需要提供其相应的数据以及要告诉dataset本次查询结果的总页数信息,典型代码(如Hibernate)如下:
int pageSize = dataset.getPageSize();
int pageIndex = dataset.getPageIndex();
List employees = query.list();//获取所有的数据
...根据pageSize,pageIndex计算employees中符合条件的数据
dataset.fromDO(employees.subList(pageSize*(pageIndex-1), pageSize*pageIndex));//这里还要考虑pageIndex,pageSize为零的处理,整数处理
dataset.setPageCount(employees.size()/pageSize);//这里需要考虑为零的处理,整数处理
com.bstek.dorado.data.PagingHelper用于对List类型的数据提供分页计算的工具类。
构造函数如下:
PagingHelper(int pageSize, int pageIndex) //构造器
PagingHelper(int pageSize, int pageIndex, int totalRow) //构造器
根据给定的pageSize,pageIndex可以计算出起始序号与结束序号,以及根据总记录数计算总页数等功能。
常用功能:
int getFromIndex() //返回当前页记录的起始序号。
int getPageCount() //返回总页数。
int getToIndex() //返回当前页记录的结束序号。
采用PagingHelper之后,范例代码如下:
List employees = query.list(); // 通过逻辑层获得完整的结果集
PagingHelper paging = new PagingHelper(dataset.getPageSize(), dataset.getPageIndex(), employees.size());
List employees = employees.subList(paging.getFromIndex(), paging.getToIndex()); // 当页的记录
dataset.fromDO(employees);
dataset.setPageCount(paging.getPageCount());
ConnectionHelper
dorado中在datasource.xml中配置常用的数据连接可以通过工具类
com.bstek.dorado.common.ds.ConnectionHelper访问
Connection conn = ConnectionHelper.getConnection(String datasoruce);
指定datasource.xml文件中配置的datasource获得相应的Connection对象,datasource.xml文件配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<datasource name="doradosample" type="JDBC">
<minEvictableIdleTimeMillis>30000</minEvictableIdleTimeMillis>
<timeBetweenEvictionRunsMillis>30000</timeBetweenEvictionRunsMillis>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://127.0.0.1:3306/doradosample</url>
<dialect>com.bstek.dorado.data.db.dialect.MySQLDialect</dialect>
<user>root</user>
<password>dorado</password>
<minIdle>0</minIdle>
<maxIdle>0</maxIdle>
<maxActive>0</maxActive>
<loginTimeout>0</loginTimeout>
<maxWait>0</maxWait>
</datasource>
</datasources>
ConnectionHelper还提供了getDefaultConnection方法获取Connection:
Connection conn = ConnectionHelper.getDefaultConnection();
该方法自动从setting.xml文件的common.defaultDataSource获取默认的数据源:
<property name="common.defaultDataSource" value="doradosample"/>
DoradoContext
com.bstek.dorado.common.DoradoContext:Dorado上下文对象。
此对象用于屏蔽用户的逻辑代码对Http的依赖, 保证代码的可移植性.
对于基于Http的应用, 我们建议您在逻辑代码中尽可能使用此对象替代对Request对象的访问.可以 使用如下代码获取DoradoContext:
DoradoContext context = DoradoContext.getContext();
注意:DoradoContext内部通过线程来标识不同的Context,以保证每个线程在调用 DoradoContext.getContext()时可以获的正确的Context对象. 该机制在绝大多数的Web应用的服务端代码中都不会有任何问题.
但是如果在一个多线程任务中使用DoradoContext.getContext()将无法获得预期的效果, 因此我们建议在启动多线程任务之前应首先将要访问的资源从Context中取出并传入到线程中.
但是通过DoradoContext也可以存取HTTP中的相关信息,分别提供了对HttpServletRequest, HttpSession, HttpServletContext等对象的属性存取工作。
DoradoConext提供了以几个方法存取HTTP中的信息:
根据指定的作用域从上下文中获取一个属性的值:
public java.lang.Object getAttribute(int scope, java.lang.String key)
为指定的作用域中的某个属性设定一个值:
public abstract void setAttribute(int scope,
java.lang.String key,
java.lang.Object object)
其中scope属性的取值:
取值范围
等值于
DoradoContext.REQUEST
Request范围(HttpServletRequest)
DoradoContext.SESSION
Session范围(HttpSession)
DoradoContext.APPLICATION
Application范围(ServletConext)
DoradoContext.View
View范围
以及方法:
public java.lang.Object getAttribute(java.lang.String key)
从上下文的Request作用域中获取一个属性的值.对于基于Http的应用而言, 可以通过此方法来获取HttpServletRequest中的参数(Attribute)。
方法:
public java.lang.String getParameter(java.lang.String key)
从上下文中获取一个参数的值.对于基于Http的应用而言, 可以通过此方法来获取HttpServletRequest中的参数(Parameter)。
HttpDoradoContext
dorado中用com.bstek.dorado.common.DoradoContext屏蔽用户的逻辑代码对Http的依赖,但我们还是可以通过HttpDoradoContext获得HttpServletRequest对象,使用方法如下:
HttpDoradoContext context = (HttpDoradoContext)DoradoContext.getContext();
HttpServletRequest request = context.getRequest();
Log
dorado的系统日志类,位于com.bstek.dorado.common.log包下。
使用
与log4j的使用基本类似。
Log.error(java.lang.Object o);
Log.debug(java.lang.Object o);
Log.fatal(java.lang.Object o);
Log.info(java.lang.Object o);
...
集成到Log4J中
在log4j.properties中可以通过如下方式设置dorado的log日志等级设定:
Com.bstek.dorado.common.log.Log=DEBUG
MessageHelper
com.bstek.dorado.common.MessageHelper是用于处理Message的工具类.
对于普通的Http请求而言,利用MessageHelper设置的消息可以通过 <d:MessageIterator>和<d:Message>显示到JSP中。使用方法如下:
第一步在action中加入相关信息
MessageHelper.addMessage(DoradoContext.getContext(), "密码错误!");
MessageHelper.addMessage(DoradoContext.getContext(), "用户登陆失败!");
第二步在JSP中添加如下的标签:
<d:MessageIterator>
<li><d:Message /></li>
</d:MessageIterator>
对于Dorado的RPC调用而言(包含Dataset的动态数据加载和数据提交的Server段逻辑代码), 利用MessageHelper设置的消息将自动在RPC调用成功之后在Client端以弹出提示的方式显示给用户. 而其他其它消息会被Client端忽略。使用范例如:
MessageHelper.addMessage(DoradoContext.getContext(), "记录保存成功!");
VariantSet
可支持多种类型的对象集合。其功能类似于一个功能增强了的Map。dorado中的DBStatement,DOUtils等工具类的编程中会用到该对象,另外在dorado的一些参数集合中也会用到,例如View的properties(), Dataset的parameters()以及Field的properties()等都是以com.bstek.dorado.utils.variant.VariantSet为基类处理的。
与Map不同的是:
类型处理
VariantSet提供了类型的处理,如下的Map代码:
String empId = (String)map.get("empId");
使用VariantSet之后就可以用如下的代码访问:
String empId = variantSet.getString("empId");
VariantSet支持的数据类型有:
java.math.BigDecimal
boolean
byte
int
java.util.Date
double
float
long
short
java.lang.String
java.lang.Object
com.bstek.dorado.utils.variant.Variant
以上类型中Variant是dorado提供的一种用于包装以上列表中其他数据类型的特殊类型。也提供了数据类型处理功能:
Variant v = new Variant();
v.setValue("ANLIN");
String empId = v.getString();
v.setValue(3000);
int num = v.getInt();
基本管理函数
另外VariantSet还提供了其他几个函数用与Map的对应表如下:
VariantSet
Map
count();
size();
clear();
clear();
equasl(Object o);
equals(Object o);
exists(String name);
containsKey(Object key);
VariantSet值存取操作
Map获取一个键值的代码:
Map m = new HashMap();
m.put("empId", "ANLIN");
String empId = (String)map.get("empId");
使用VariantSet可以用如下的代码访问:
VariatnSet v = new VariantSet();
v.setString("empId", "ANLIN");
String empId = v.getString("empId");
另外,VariantSet还支持索引访问:
VariatnSet v = new VariantSet();
v.setString("empId", "ANLIN");
v.setInt("num", 3000);
String empId = v.getString(0);
int num = v.getInt(1);
主键差异
Map对主键没有类型要求,VariantSet要求主键必须为String类型。
Setting
com.bstek.dorado.common.Setting 为dorado项目中存取setting.xml文件的工具类。
可以通过如下的代码访问和修改:
int maxCount = Setting.getInt("i18n.cache.maxCount");
修改:
Setting.setInt("i18n.cache.maxCount", "250");
Setting工具类一般来说属于系统使用,项目中不会轻易的接触该工具类,由于Setting.xml文件一般来说都属于整个工程中通用的,并且一般不需要动态的变动修改,因此建议Setting类以getXXX()的使用方式为主,只读不存。
UniqueKey
GUID(全球唯一标识)是微软使用的一个术语,由一个特定的算法,给某一个实体,如Word文档,创建一个唯一的标识,GUID值就是这个唯一的标识码。
com.bstek.dorado.utils.UniqueKey是生成全球唯一的GUID的工具类:
String key = UniqueKey.getKey();
分享到:
相关推荐
为了在Eclipse中有效地开发Dorado7应用,你需要安装对应的Dorado7插件,这通常在`dorado7资源在eclipse中`目录下可以找到,它会指导你如何配置Eclipse以支持Dorado7的开发,包括项目模板、编码辅助、调试工具等。...
在设计过程中,准确地标注尺寸对于确保开发人员理解和实现设计师的意图至关重要,Dorado工具便出色地完成了这一任务。这款工具以其易用性和便捷性赢得了用户的喜爱,尤其在处理图像标注时表现出色。 在UI设计中,...
标题中的"Dorado7/9开发环境 (解压即用Eclipse+dorado插件)支持dorado7和dorado9"表明这是一个专为Dorado7和Dorado9开发设计的集成开发环境(IDE)。这个环境基于Eclipse,一个广泛使用的开源Java IDE,它已经被扩展...
总的来说,Dorado标注工具是设计和开发流程中不可或缺的一部分,尤其在微小而精致的项目中,如微信小程序的开发,它的存在使得设计与开发之间的协作更为顺畅,提高了项目的成功率。对于设计师和开发者,尤其是独立...
【标题】"dorado7离线中文文档.7z" 提供的是 Dorado7 开发的重要参考资料,它是一份详尽的 Dorado7.5 官方离线文档,适用于那些在开发过程中需要离线查阅 Dorado 框架相关知识的开发者。Dorado 是一个功能强大的富...
总结来说,“dorado7-ide-0.7.2.zip”压缩包中的Dorado7 IDE是一个专门为Dorado7开发定制的工具,它通过强大的集成特性,优化了前端开发流程,提升了开发体验。无论你是初识Dorado7的新手,还是经验丰富的开发者,这...
在 Dorado 中,Excel 报表功能是一个重要组成部分,旨在满足用户对数据导出和打印的需求,特别是那些希望通过 Excel 电子表格来处理和分析数据的用户。Dorado 的 Excel 报表功能在设计时考虑了轻量级的特性,使得它...
Dorado是一款专为移动应用开发者设计的高效像素测量工具,它极大地简化了在开发过程中的图形元素定位和尺寸调整工作。作为一个专业的IT行业大师,我很高兴向你详细讲解这款工具的功能、使用方法以及它如何帮助优化...
【Dorado API中文】是针对华为存储产品Dorado的一套完整的中文API文档,它包括了Dorado Client API、Dorado Server API、Marmot Core API和Marmot Framework API等多个部分,为开发者提供了全面且具体的指导,使得在...
Hibernate 则是 ORM(对象关系映射)工具,它简化了数据库操作,使得开发者可以使用 Java 对象来操作数据库。 1. **Spring**:Spring 框架是整个 SSH 架构的基石,提供了强大的依赖注入(DI)和面向切面编程(AOP)...
dorado入门指南经典教程 Dorado是一个基于Java的企业级应用开发平台,旨在...Dorado入门指南经典教程为读者提供了一个系统的Dorado入门指南,涵盖了Dorado的基本概念、应用场景、开发工具和版本更新等方面的知识点。
总之,Dorado作为一款强大的前端标注工具,旨在简化前端开发者与设计师之间的沟通,提升工作效率,是现代前端开发流程中不可或缺的辅助工具。无论是新手还是资深开发者,都可以通过熟练掌握Dorado,提升自己的工作...
3. 强大的报表功能:DORADO5提供了丰富的报表设计工具,支持自定义报表样式,能够生成复杂多样的业务报表。 4. 数据可视化:内置丰富的图表组件,支持数据的直观展示,帮助用户快速理解业务数据。 5. 安全性:具备...
dorado.z05
【 dorado 5 快速入门 】 dorado 5 是一款高性能、高可用性的企业级存储虚拟化系统,主要用于数据中心的数据存储管理。本快速入门将带你了解 dorado 5 的核心特性和基本操作,帮助你快速掌握其使用方法。 1. **...
在这个场景中,我们关注的是"Dorado-hibernate"和"Dorado-core"两个关键部分。 首先,让我们来深入了解一下"Dorado-core"。Dorado-core是Dorado框架的基础,包含了框架的核心功能。它提供了以下主要功能: 1. **...
在Dorado 7中,前端页面的开发常常涉及到JavaScript动态创建控件的场景。Dorado是一个功能强大的企业级UI框架,它提供了丰富的组件库和强大的数据绑定能力,使得开发者能够构建出交互性强、用户体验良好的Web应用。...
### dorado5的Dataset核心知识点解析 ...综上所述,Dorado中的Dataset不仅是一种数据容器,更是一个功能强大的数据管理工具。理解和掌握Dataset的各种特性和分类,对于使用Dorado进行高效的企业级应用开发至关重要。
安装完成后,你可以在Eclipse中创建新的Dorado项目,并在项目中添加Dorado4.jar到类路径,这样就可以开始编写基于Dorado的应用代码了。 在开发过程中,"Eclipse开发配置手册.doc"这个文档将是你的重要参考资料。它...
Dorado5 Eclipse插件是将Dorado5的功能集成到Eclipse IDE中的工具,方便开发者在Eclipse环境下进行Dorado5应用的开发和调试。 Dorado5的核心特性包括组件丰富、数据绑定、MVC模式支持、强大的表单验证以及图形化...