UEP-自定义持久化类
HY-UEP提供了两种持久化方式:基于JPA的持久化机制和自定义持久化机制,JPA的持久化机制
比较符合现在的软件开发模式,支持各种主流数据库;自定义持久化时我们平台产品的特有持久化
机制的升级,在综合查询、大数据量处理以及快速开发方面比较有优势,两者各有千秋,业务开
发人员可根据自身项目情况和具体功能选择使用。
自定义持久化包括结果集和DBTool
--添加自定义持久化类
Propertier-UEP-开发平台-Add 生成xml文件
--DataSet下
- Query DataSet Root:一项可配置查询结果集文件的路径
- Proc DataSet Root:一项可配置存储过程结果集文件的路径
- Proc Mapping Root:一项可配置存储过程映射的路径
--配置demo.xml(=framework.xml)



--action中AjaxDataSetAction
package com.haiyisoft.bill.other.action; import java.math.BigDecimal;
import java.util.List; import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result; import com.haiyisoft.ep.framework.ui.struts2.action.AjaxAction;
import com.haiyisoft.ep.framework.ui.struts2.action.AjaxDataSetAction;
import com.haiyisoft.ep.common.model.QueryParamList;
import com.haiyisoft.ep.framework.ui.struts2.model.AjaxDataSetWrap;
import com.haiyisoft.ep.framework.ui.struts2.model.AjaxDataWrap;
import com.haiyisoft.ep.framework.bizservice.AutowireService;
import com.haiyisoft.ep.log.LogUtil;
import com.haiyisoft.entity.UepCustomer;
import com.haiyisoft.bill.component.service.TcService; /**
* UepCustomer维护
*
* @author LENOVO
*
* <p>Modification History:</p>
* <p>Date Author Description</p>
* <p>------------------------------------------------------------------</p>
* <p>2017-12-7 LENOVO 新建</p>
*/
@Namespace("/other")
@ParentPackage("framework-default")
@Action(value = "/uepCustomerDS", results = {@Result(name="input",location="uepCustomerDS.jsp")})
public class UepCustomerDSAction extends AjaxDataSetAction { private static final long serialVersionUID = 1L;
@AutowireService
private TcService tcService;
private AjaxDataSetWrap dataWrap = new AjaxDataSetWrap(); /**
*查询操作
*/
@Override
public void retrieve() {
Object[] params = new Object[1];
params[0] = new BigDecimal(4);
dataWrap.retrieve(params);
//结果集带参数
//dataWrap.retrieve();
//结果集不带参数
responseData.setAjaxDataWrap("dataWrap", dataWrap);
} /**
*初始化
*/
@Override
protected void initTreat() {
super.retrieveAfterInit = true ;
//dataWrap.setDsName("queryCustomer");
dataWrap.setDsName("queryCustomerById");
//添加结果集
this.dataWrap.getPageInfo().setRowOfPage(15);
} @Override
public AjaxDataSetWrap getDataWrap() {
return dataWrap;
} public void setTcService(TcService tcService) {
this.tcService = tcService;
} public TcService getTcService() {
return tcService;
}
}
--jsp中name只能为数据库中的字段名
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/framework/include/pageset.jspa"%>
<script type="text/javascript" src="uepCustomerDS.js"></script>
<html>
<head>
<title>UepCustomer维护</title>
</head>
<body>
<hy:view>
<s:form action="uepCustomerDS">
<hy:layoutTable>
<hy:layoutArea>
<hy:ajaxgrid id="ajaxgrid" name="dataWrap" height="100%" width="100%"
queryfunc="retrieve()">
<hy:gridlineno title="序号" width="30" />
<hy:gridcheckbox name="checked" width="50" title="全选" />
<hy:gridfield name="ID" title="ID" width="100" regexpmessage="只能为数字"
maxlength="12" required="true" regexp="^\d*$" />
<hy:gridfield name="CUSTOMER_NAME" title="客户名称" width="100"
required="true" maxlength="64" />
<hy:gridfield name="REMARKS" title="备注" width="100" maxlength="128" /> </hy:ajaxgrid>
</hy:layoutArea>
</hy:layoutTable>
</s:form>
</hy:view>
</body>
</html>
--DBTool
public void retrieve(){
/*QueryParamList params = getQueryParam("dataWrap");
List<UepContract> list = uepCustomerService.retrieve(params,
dataWrap.getPageInfo(), dateWrap.getSortOptions());
dataWrap.setDataList(list);
responseData.setAjaxDataWrap("dataWrap", dataWrap);*/
String sql = "select * from uep_customer";
List<Object> params = new ArrayList<Object>();
DBTool[] tool = new DBTool();
Reocrd[] records = tool.executeQuery(sql,params,dataWrap.getPageInfo());
//Record序列化成UepCostomer实体
List<UepCustomer> dataList = tool.executeQuery(UepCostomer.class,
sql,params,dataWrap.getPageInfo());
dataWrap.setDataList(dataList);
responseData.setAjaxDataWrap("dataWrap",dataWrap);
}
UEP-自定义持久化类的更多相关文章
- How to: Implement a Custom Base Persistent Class 如何:实现自定义持久化基类
XAF ships with the Business Class Library that contains a number of persistent classes ready for use ...
- 初识Hibernate之理解持久化类
上一篇文章我们简单介绍了Hibernate相关的一些最基本的文件及其作用,并在最后完整的搭建了Hibernate的运行环境,成功的完成了与数据库的映射.但是至于其中的一些更加细节的地方并没有 ...
- Hibernate持久化类规则
注意事项: 提供无参的构造方法,因为在hibernate需要使用反射生成类的实例 提供私有属性,并对这些属性提供公共的setting和getting方法,因为在hibernate底层会将查询到的数据进 ...
- java自定义注解类
一.前言 今天阅读帆哥代码的时候,看到了之前没有见过的新东西, 比如java自定义注解类,如何获取注解,如何反射内部类,this$0是什么意思? 于是乎,学习并整理了一下. 二.代码示例 import ...
- 关于MapReduce中自定义分区类(四)
MapTask类 在MapTask类中找到run函数 if(useNewApi){ runNewMapper(job, splitMetaInfo, umbilical, reporter ...
- 关于MapReduce中自定义分组类(三)
Job类 /** * Define the comparator that controls which keys are grouped together * for a single ...
- kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件
该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...
- idea 根据数据库表自动创建持久化类
一.点击最右边的Database: 二.点击,再点DataSource选择数据库类型,配置数据库信息: 三.打开项目结构,选择,找到你的项目,点击,添加hibernate: 四.如果有现成的cfg.x ...
- [NHibernate]持久化类(Persistent Classes)
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 引言 持久化类是应用程序用来解决商业问题的类(比如,在电子交易程序中的Customer和Orde ...
随机推荐
- 了解数组中的队列方法,DOM中节点的一些操作
队列的概念 栈是一种后进先出的结构,而队列是一种先进先出的结构.如银行排队,排在前面的人先办业务然后离开,后来的人站在最后.可以用队列的push()方法插入元素到队列的末尾,可以用shift()方法删 ...
- Windows 刷新DNS缓存
释放IP配置信息 ipconfig /release 刷新DNS ipconfig /flushdns 更新网卡适配器 ipconfig /renew
- Android与javascript中事件分发机制的简单比较
在前面两篇博客中,我们讨论了Android中的事件分发的相关内容,那么在本篇博客当中,我们就简单探讨一下html或javascript中的事件分发机制,并进行简单的对比. 在前端中,对事件进行绑定有三 ...
- Python day 3 (3)
一:判断语句: 1 if 语句 : 2 或者if 语句 : else : 3 或者if 语句 : elif 语句 : else : 4注意:的使用,缩进一般用4个空格来完成. 二:input 语 ...
- robotframework的学习笔记(十四)------学习Robot Framework必须掌握的库—-BuiltIn库
作为一门表格语言,为了保持简单的结构,RF没有像别的高级语言那样提供类似if else while等内置关键字来实现各种逻辑功能,而是提供给了用户BuiltIn库.如果用户想在测试用例中实现比较复杂的 ...
- 走进Vue时代进阶篇(01):重构电商购物车模块
前言 从这篇文章开始,我准备给大家分享一些关于Vue.js这门框架的技巧性系列文章,正好我们公司项目中也用到了Vue.所以,教是最好的学.进阶篇比较适合于二三线城市,还在小厂打拼的童鞋们.欢迎你们跟着 ...
- IDEA第七章----插件
idea的另一个可爱之处,就是它的强大的插件,下面我以CodeGlance插件为例,这个可以快速定位代码 第一节:安装插件 ● All plugins 显示所有插件. ● Enabled 显示当前所有 ...
- iOS获取各种数据方法整理以及IDFA与IDFV使用环境
iOS获取APP版本号: NSString *AppVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBun ...
- Nginx 反向代理获取真实IP问题
一.前言 前文 Nginx 解决WebApi跨域二次请求以及Vue单页面问题 当中虽然解决了跨域问题带来的二次请求,但也产生了一个新的问题,就是如果需要获取用户IP的时候,获取的IP地址总是本机地址. ...
- 第五章:Python基础の生成器、迭代器、序列化和虚拟环境的应用
本课主题 生成器介紹和操作实战 迭代器介紹和操作实战 序例化和反序例化 Json 和 Pickle 操作实战 字符串格式化的应用 创建虚拟环境实战 本周作业 生成器介紹和操作实战 什么是生成器,生成器 ...