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 ...
随机推荐
- [编织消息框架][JAVA核心技术]动态代理应用6-设计生成类
上篇介绍到rpc可以使用接口与实现类来约束书写 根据接口用javassist生成两个代理类 1.sendProxy 发送处理,调用方式可以是远程/本地 2.receiveProxy 接收处理,内部调用 ...
- js选中文字兼容性解决
function selectText(){ if(document.selection){ //ie return document.selection.createRange().text; } ...
- python科学计算_numpy_ufunc
ufunc简介 ufunc指universal function,是一种能够对数组中的所有元素进行操作的函数,ufunc是针对数组进行操作的函数,对一个数组进行重复的运算时,使用ufunc比math库 ...
- 自己做一台3D打印机到底有多难?(附教程)
• 微博: 小样儿老师2015 初识 3D打印技术,即快速成形技术,它是一种以数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过逐层打印的方式来构造物体的技术,3D打印机则出现在上世纪9 ...
- Flask-配置与调试
配置管理 复杂的项目需要配置各种环境.如果设置项很少,可以直接硬编码进来,比如下面的方式: app = Flask(__name__) app.config['DEBUG'] = True app.c ...
- 关于 const 的一点小研究
在饱受 var 的折磨之后,ES6 终于推出了新的定义变量的方法:let 和 const 和 var 相比,let 和 const 有了自己的作用域,let 用于定义变量,而 const 用于定义常量 ...
- 每天学一点Docker(5)——了解Docker架构
Docker的核心组件: 1.Docker客户端 - Client 2.Docker服务器 - Docker deamon 3.Docker镜像 - Image 4.仓库 - Registry 5.D ...
- Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)
1.获取指定字符串中大小写和数字的个数: package demo; public class StringTest { public static void main(String[] args) ...
- 数据对象转json与md5加密注意事项
项目中遇到将OC数据对象类型转化字符类型,然后进行MD5加密的技术流程,在转化字符数组到字符加密过程中遇到一些问题. 问题 转化后的字符进行md5加密,出现与服务器加密结果不匹配的情况 分析 在对代码 ...
- commons -lang(2) RandomStringUtils RandomUtils
上一篇是StringUtils 链接http://www.cnblogs.com/tele-share/p/8060129.html 1.RandomStringUtils 1.1模拟实现random ...