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-自定义持久化类的更多相关文章

  1. 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 ...

  2. 初识Hibernate之理解持久化类

         上一篇文章我们简单介绍了Hibernate相关的一些最基本的文件及其作用,并在最后完整的搭建了Hibernate的运行环境,成功的完成了与数据库的映射.但是至于其中的一些更加细节的地方并没有 ...

  3. Hibernate持久化类规则

    注意事项: 提供无参的构造方法,因为在hibernate需要使用反射生成类的实例 提供私有属性,并对这些属性提供公共的setting和getting方法,因为在hibernate底层会将查询到的数据进 ...

  4. java自定义注解类

    一.前言 今天阅读帆哥代码的时候,看到了之前没有见过的新东西, 比如java自定义注解类,如何获取注解,如何反射内部类,this$0是什么意思? 于是乎,学习并整理了一下. 二.代码示例 import ...

  5. 关于MapReduce中自定义分区类(四)

    MapTask类 在MapTask类中找到run函数 if(useNewApi){       runNewMapper(job, splitMetaInfo, umbilical, reporter ...

  6. 关于MapReduce中自定义分组类(三)

    Job类  /**    * Define the comparator that controls which keys are grouped together    * for a single ...

  7. kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件

    该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...

  8. idea 根据数据库表自动创建持久化类

    一.点击最右边的Database: 二.点击,再点DataSource选择数据库类型,配置数据库信息: 三.打开项目结构,选择,找到你的项目,点击,添加hibernate: 四.如果有现成的cfg.x ...

  9. [NHibernate]持久化类(Persistent Classes)

    系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 引言 持久化类是应用程序用来解决商业问题的类(比如,在电子交易程序中的Customer和Orde ...

随机推荐

  1. xamarin android制作圆角边框

    xamarin android制作圆角边框 效果图如下: 关键代码: drawable文件夹新建shape_corner_down.xml <?xml version="1.0&quo ...

  2. Python列表list对象方法总结

  3. PHP call_user_func

    <?php function my_call_back_function(){ echo "hello world!"; } class MyClass{ static fu ...

  4. java inputstream to string stack overflow

    https://stackoverflow.com/questions/309424/read-convert-an-inputstream-to-a-string 过千赞的答案

  5. 使用 mysql PDO 防止sql注入

    技巧: 1. php升级到5.3.6+,生产环境强烈建议升级到php 5.3.9+ php 5.4+,php 5.3.8存在致命的hash碰撞漏洞. 2. 若使用php 5.3.6+, 请在在PDO的 ...

  6. C# winForm资源文件实现多语言切换

    这是我目前看到过最简单的多语言切换了 操作步驟 介面上的多語 Step1.將表單的Localizable屬性設為True Step2.切換表單的Language屬性為欲使用的語系 設完後會在分頁標籤上 ...

  7. lambda 与内置函数,以及一些补充

    插播几条小知识: 1. lambda 表达式 对于简单的函数,我们可以用 lamdba 表达式来执行,一句话就够用

  8. Node.js 蚕食计划(五)—— Koa 基础项目搭建

    Koa 是由 Express 原班人马打造的超轻量服务端框架 与 Express 相比,除了自由度更高,可以自行引入中间件之外,更重要的是使用了 ES6 + async,从而避免了回调地狱 不过也是因 ...

  9. .NET Core+MySql+Nginx 容器化部署

    .NET Core容器化@Docker .NET Core容器化之多容器应用部署@Docker-Compose .NET Core+MySql+Nginx 容器化部署 GitHub-Demo:Dock ...

  10. TPYBoard开发板ADC数模转换一: 初识ADC使用

    转载请以链接形式注明文章来源,公众号:MicroPython玩家汇 1.前言 ADC,Analog-to-DigitalConverter的缩写,指模/数转换器或者模数转换器[1].是指将连续变化的模 ...