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 ...
随机推荐
- css3 UI元素状态伪类选择器
选择器 说明 例子/备注 E:hover 当鼠标移到元素上元素所使用的样式 :hover{}或input:[type="text"]:hover{} E:active 当元素被激活 ...
- Python列表list对象方法总结
- CKEditor 集成CKFinder集成
lCKEditor原名FckEditor,著名的HTML编辑器,可以在线编辑HTML内容,演示一下.打开.自己人用CKEditor,网友用UBBEditor. l配置参考文档,主要将ckeditor中 ...
- Java基础--二进制运算
1. System.out.println((byte)0x8f); 结果是? 2.System.out.println((byte)(0xc5>>1)); 结果是? 3.System.o ...
- Navicat for MySQL定时备份数据库及数据恢复
在做数据库修改或删除操作中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库.本篇文章主要讲述Navicat for MySQL定时备份数据库和数据恢复等功能,同时可以定时播放电 ...
- cleanMyMac
想看外国网站可以找我,facebook.youtube.XX大片等,只要8元钱,无限制用到服务器关闭.看大片流畅不成问题 需要cleanMyMac的请加微信只要10或直接拍 http://a.p6ff ...
- 如何用css写打印样式
打印样式 打印样式就是针对网页被打印时设置给文档的样式,由于打印时是显示在纸上,跟屏幕还是有区别的,对于有打印需求的网页往往需要设置专门的打印样式来适配页面. @media print 声明自己是打印 ...
- celery出现警告或异常的解决方式
做个笔记,记录下使用celery踩过的坑,不定期更新. warnings.warn(CDeprecationWarning(W_PICKLE_DEPRECATED)) 我用的是Flask,所以在Fl ...
- PHP连接LDAP进行登录验证
基于安全性考虑,准备把PHP做的自动化平台加入ldap登录验证,具体做法如下: 了解背景: LDAP 的全称是"轻量级目录访问协议(Lightweight Directory Access ...
- 跟我一起读postgresql源码(九)——Executor(查询执行模块之——Scan节点(上))
从前面介绍的可优化语句处理相关的背景知识.实现思想和执行流程,不难发现可优化语句执行的核心内容是对于各种计划节点的处理,由于使用了节点表示.递归调用.统一接口等设计,计划节点的功能相对独立.代码总体流 ...