`

dorado中的工具类xxxHelper

 
阅读更多
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();
分享到:
评论

相关推荐

    dorado7-eclipse研发工具

    为了在Eclipse中有效地开发Dorado7应用,你需要安装对应的Dorado7插件,这通常在`dorado7资源在eclipse中`目录下可以找到,它会指导你如何配置Eclipse以支持Dorado7的开发,包括项目模板、编码辅助、调试工具等。...

    Dorado7/9开发环境 (解压即用Eclipse+dorado插件)支持dorado7和dorado9

    标题中的"Dorado7/9开发环境 (解压即用Eclipse+dorado插件)支持dorado7和dorado9"表明这是一个专为Dorado7和Dorado9开发设计的集成开发环境(IDE)。这个环境基于Eclipse,一个广泛使用的开源Java IDE,它已经被扩展...

    Dorado标注工具

    在设计过程中,准确地标注尺寸对于确保开发人员理解和实现设计师的意图至关重要,Dorado工具便出色地完成了这一任务。这款工具以其易用性和便捷性赢得了用户的喜爱,尤其在处理图像标注时表现出色。 在UI设计中,...

    Dorado标注

    总的来说,Dorado标注工具是设计和开发流程中不可或缺的一部分,尤其在微小而精致的项目中,如微信小程序的开发,它的存在使得设计与开发之间的协作更为顺畅,提高了项目的成功率。对于设计师和开发者,尤其是独立...

    Dorado_测量像素的工具

    Dorado是一款专为移动应用开发者设计的高效像素测量工具,它极大地简化了在开发过程中的图形元素定位和尺寸调整工作。作为一个专业的IT行业大师,我很高兴向你详细讲解这款工具的功能、使用方法以及它如何帮助优化...

    dorado7离线中文文档.7z

    【标题】"dorado7离线中文文档.7z" 提供的是 Dorado7 开发的重要参考资料,它是一份详尽的 Dorado7.5 官方离线文档,适用于那些在开发过程中需要离线查阅 Dorado 框架相关知识的开发者。Dorado 是一个功能强大的富...

    Dorado API中文

    【Dorado API中文】是针对华为存储产品Dorado的一套完整的中文API文档,它包括了Dorado Client API、Dorado Server API、Marmot Core API和Marmot Framework API等多个部分,为开发者提供了全面且具体的指导,使得在...

    dorado入门指南经典教程

    dorado入门指南经典教程 Dorado是一个基于Java的企业级应用开发平台,旨在...Dorado入门指南经典教程为读者提供了一个系统的Dorado入门指南,涵盖了Dorado的基本概念、应用场景、开发工具和版本更新等方面的知识点。

    前端标注工具dorado

    总之,Dorado作为一款强大的前端标注工具,旨在简化前端开发者与设计师之间的沟通,提升工作效率,是现代前端开发流程中不可或缺的辅助工具。无论是新手还是资深开发者,都可以通过熟练掌握Dorado,提升自己的工作...

    dorado7-ide-0.7.2.zip

    总结来说,“dorado7-ide-0.7.2.zip”压缩包中的Dorado7 IDE是一个专门为Dorado7开发定制的工具,它通过强大的集成特性,优化了前端开发流程,提升了开发体验。无论你是初识Dorado7的新手,还是经验丰富的开发者,这...

    dorado.z05

    dorado.z05

    dorado 5 快速入门

    【 dorado 5 快速入门 】 dorado 5 是一款高性能、高可用性的企业级存储虚拟化系统,主要用于数据中心的数据存储管理。本快速入门将带你了解 dorado 5 的核心特性和基本操作,帮助你快速掌握其使用方法。 1. **...

    Dorado5自定义组件开发指南

    Dorado组件分为前台可视组件(如Datatable、AutoForm)和不可视组件两类(如Command)。 自定义组件主要分两个内容,一个是扩展Dorado现有的组件;另一个是在Dorado中添加一个全新的自定义组件。扩展Dorado现有组件比较...

    dorado 7 前端页面js动态创建控件 demo代码

    在Dorado 7中,前端页面的开发常常涉及到JavaScript动态创建控件的场景。Dorado是一个功能强大的企业级UI框架,它提供了丰富的组件库和强大的数据绑定能力,使得开发者能够构建出交互性强、用户体验良好的Web应用。...

    在dorado中的Excel报表

    Dorado和Excel的结合。

    dorado下载Jar包

    安装完成后,你可以在Eclipse中创建新的Dorado项目,并在项目中添加Dorado4.jar到类路径,这样就可以开始编写基于Dorado的应用代码了。 在开发过程中,"Eclipse开发配置手册.doc"这个文档将是你的重要参考资料。它...

    dorado-hibernate和dorado-core的jar包

    在这个场景中,我们关注的是"Dorado-hibernate"和"Dorado-core"两个关键部分。 首先,让我们来深入了解一下"Dorado-core"。Dorado-core是Dorado框架的基础,包含了框架的核心功能。它提供了以下主要功能: 1. **...

    dorado5 eclipse插件

    Dorado5 Eclipse插件是将Dorado5的功能集成到Eclipse IDE中的工具,方便开发者在Eclipse环境下进行Dorado5应用的开发和调试。 Dorado5的核心特性包括组件丰富、数据绑定、MVC模式支持、强大的表单验证以及图形化...

    dorado 快速入门

    【Dorado快速入门】是针对初学者...总的来说,这份Dorado快速入门教程是一个全面的学习资源,涵盖了从基础安装到实际开发的各个环节,对于想要掌握Dorado并运用到实际项目中的开发者来说,是一份非常有价值的参考资料。

    dorado client-api

    在本文中,我们将深入探讨Dorado客户端API的核心概念、功能、使用场景以及如何有效地利用它来开发高效的数据访问应用。 Dorado是一个高性能、可扩展的企业级数据服务框架,它为分布式环境中的数据访问提供了统一的...

Global site tag (gtag.js) - Google Analytics