- 浏览: 518854 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
u011165335:
distinct不影响使用半连接
(转)关于semi-join/anti-join的一点探讨 -
353790060:
redo 记录事务执行后的日志 undo 记录事务回滚的日志 ...
Oracle redo与undo浅析 -
jayxigua:
redo用于在失败时重放事务(即恢复事务),undo则用于取消 ...
Oracle redo与undo浅析 -
aa_qq110:
Openbravo有中文包吗
Openbravo开发手册 -
iocaop:
不错,写的很清晰易懂
JAVA 服务提供者框架介绍
Data Access Layer(DAL)描述的是服务端处理客户请求的逻辑,它将逻辑处理和数据处理分离开来,处理逻辑的时候是我们编写java代码,比如前台需要更新一个字段,我们构造一个对象,将这个字段值设置进去,这样的逻辑是我们通过java代码编写来实现。进行数据处理的时候,比如保存,是我们将要保存的对象传给一个接口,接口帮我们处理,至于接口怎么处理我们就不需要管了。
一. 简单的hello world 举例
新增一条记录
// create the object through the factory final Category bpg = OBProvider.getInstance().get(Category.class); // set some values bpg.setDefault(true); bpg.setDescription("hello world"); bpg.setName("hello world"); bpg.setValue("hello world"); bpg.setActive(true); // store it in the database OBDal.getInstance().save(bpg);
更新一个字段
// create an OBCriteria object and add a filter final OBCriteria<Category> obCriteria = OBDal.getInstance().createCriteria(Category.class); obCriteria.add(Restrictions.eq("name", "hello world")); // perform the actual query returning a typed list final List<Category> categories = obCriteria.list(); final Category cat = categories.get(0); // and set a new name cat.setName("another hello world"); OBDal.getInstance().save(cat);
二. DAL Architecture(DAL 构架)
三. DAL主要的几个类
1. BODal
该类主要用于获取和保存对象到数据库,它提供如下方法:
save:用于保存对象或者更新对象,如果该记录在数据库中存在则更新
get:通过主键获取某一个对象
remove:删除一个对象
create OBCriteria:创建一个OBCriteria对象用于查询
commitAndClose and rollbackAndClose:提交修改记录,或者回滚修改记录,这个通常是openbravo自己完成
2. OBCriteria
该类继承自hibernate的criteria接口。能够设置查询条件,查询记录条数,从哪一行开始查起,排序等等。详情看如下代码:
final OBCriteria obc = OBDal.getInstance().createCriteria(Currency.class); //查询条件 obc.add(Expression.eq("name", "testname")); //排序 obc.addOrderBy("name", false); //从第100行起,查询10行 obc.setFirstResult(100); obc.setMaxResults(10); //查询所有失效的记录(默认查有效记录) obc.setFilterOnActive(false); //统计行数 final int bpGroupCount = obc.count(); //获取查询结果 final List<BPGroup> bpgs = obc.list();
3. OBQuery
OBQuery继承于hibernate的query接口,创建类的时候传入俩参数,参数1:对象名,参数2:查询条件
final OBQuery<Category> obQuery = OBDal.getInstance().createQuery(Category.class, "name='testname' or searchKey='testvalue'"); final List<Category> bpgs = obQuery.list();
4. OBProvider
要保存的对象,不能通过new关键字创建。必须通过OBProvier的一个方法来创建。比如:
final Category bpg = OBProvider.getInstance().get(Category.class); // The ENTITYNAME constant is created by the business object generation logic final BPGroup bpg = (BPGroup)OBProvider.getInstance().get(BPGroup.ENTITYNAME);
四. Openbravo业务对象
业务对象用于传送数据,比如后台java逻辑构造了一个业务对象,传递给数据库处理模块,然后数据库处理模块将这个对象保存到数据库。
1. BaseOBObject
Openbravo中所有的业务对象都继承自BaseOBObject,该类提供一些功能:提供直接访问属性的get/set方法,合法与安全性校验等等
2. 生成业务对象
在开发的时候,DAL将会为每一个数据库中的表创建一个业务对象,这是作为编译的一部。编译成功之后,这些业务对象放在src-gen文件夹下面。这些业务对象都继承自BaseOBObject,他们的set和get方法是利用父类BaseOBObject实现的,代码示例如下:
public String getRecord() { return (String) get("record"); } public void setRecord(String record) { set("record", record); }
3. 对象及其属性命名规则
对象命名
一个对象有好几个名字,
AD_Table表中的tablename:数据库中对应的表名。
AD_Table表中的name:是一个全局的唯一标识,用于在XML文件中标识这个对象,可以用于导入导出。(不包含空格)
AD_Table表中的classname:当生成一个java对象的时候,用这里面定义的名称来创建java对象。
属性命名
一些基本的属性的名称取自AD_Column表的name列,比如用户名称,电话号码等等。
一对多的情况,命名有些不同,比如:
1. 子表c_orderline有一个外键c_order_id指向父表c_order,那么父表对应的对象Order,有一个属性代表它的所有子表信息,那么这个属性命名应该是orderLineList.(子表名称+list)
2. 如果外键名称跟父表的主键名称不同,那么命名规则得变成(子表名称+外键名称+list),c_orderline有一列c_orderheader_id,而父表的主键名称为c_order_id. 那么这个属性应该命名为OrderLine_orderheaderList。
另外还有一些约束:空格不允许,下划线会去掉,只允许字母和数字,首字母小写。
4. 创建业务对象
我们不能通过new关键字来创建对象,必须通过一个类的一个方法,这个类叫做OBProvider,比如:
final Category bpg = OBProvider.getInstance().get(Category.class);
ob会根据这个对象是否有id和newOBObject标识位来判断这个对象是否是新创建的对象,如果没有id则是新建的,如果你要自己设置id,那么必须把newOBObject标识位设置成true,否则会报错。
发表评论
-
Openbravo 论坛
2014-03-12 20:55 67大家好, 新开了一 ... -
Openbravo与淘宝对接文档二
2014-01-01 17:49 4088这篇文章介绍消息服务的使用 1. 登陆沙箱用户 ... -
openbravo与淘宝对接文档一
2013-12-31 21:53 1901首先进入沙箱首页:http://www.tbsandbox ... -
How to automatically populate search keys
2013-05-20 21:13 1002Introduction Search keys are ... -
How to create an Alert
2013-05-12 22:24 1256Objective The objective of t ... -
Openbravo 如何给窗口添加新字段
2012-12-17 21:04 1420以薪资表为例,假设我们现在有生效日期,还没有失效日期,支付时 ... -
Openbravo3.0 客户端代码开发与API
2012-10-04 18:13 2551一. 客户端代码开发工具 ... -
Openbravo3.0 体系结构
2012-08-29 22:14 5449在Openbravo 3.0中,我 ... -
Openbravo3.0 组织机构设置介绍
2012-06-24 17:31 2627一. 简要介绍 ... -
Openbravo3.0 用户操作界面介绍
2012-06-12 22:57 1788一. Openbravo3.0 新颖特征介绍 ... -
Openbravo3.0 怎样新建一个窗口
2012-03-15 21:28 2608一.需求背景 假设我们在开发一个人力资源模 ... -
Openbravo3.0与Eclipse集成简介
2012-01-07 22:30 3561... -
Openbravo 3.0 销售管理组织机构消失问题
2011-06-09 18:43 1075请参考如下文章: http://wiki.openbravo ... -
Openbravo 3.0汉化包
2011-05-26 22:30 8134附件有openbravo3.0的汉化包下载,不过不完 ... -
Openbravo ERP 3.0安装指南
2011-05-22 16:21 20286Openbravo ERP 3.0已经发布有一段时间 ... -
Openbravo 手工导入商品库存与价格
2011-05-19 16:36 1598由于Openbravo自带的导入功能 不能够导入商 ... -
Openbravo 窗口字段自定义
2011-05-19 16:00 1468假如openbravo的添加产品页面有很多字段,我 ... -
Openbravo ERP 定制菜单
2011-05-10 12:15 1714一. 删除菜单节点 1.点击 ... -
Openbravo ERP 通过数据字典定制属性
2011-04-29 11:13 2077有些时候,openbravo并不 ... -
OB汉化包
2010-09-08 12:01 1300上传一个OB2.4汉化包,供日后下载。
相关推荐
Openbravo 3.0 会计文件,适用与openbravo 3.x所有版本
100%汉化过的Openbravo 3.0 mp26 中文语言包
Openbravo3.0二次开发部署步骤
openbravo-3.0PR19Q3
Openbravo-3.0PR18Q3.2汉化包本人亲测,90%的汉化率。
openbravo 2.4 2.5zh_CN-中文语言包 汉化
openbravo 汉化包,目前只汉化了80%左右的文字,不过主要的部分都以及汉化了。
与openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关...
IF4050-OpenBravo-Tasks2-WSO2-Identity-Server-API-Manager Mochammad Dikra Prasetya 13511030 Evan Budianto 13511041 Muhammad Nassirudin 13511044 Renusa Andra Prayogo 13511063
发行版解压为$HOME/openbravo-tomcat (不要使用apache-tomcat-xxx文件夹) 该文件夹将被称为$CATALINA_HOME 。 湾在~/.bashrc设置CATALINA_HOME环境变量,因为它将被 Openbravo Setup Ant 脚本使用C。 在~/.bashrc...
NULL 博文链接:https://liwenshui322.iteye.com/blog/1054473
开源ERP OpenBravo的数据库关系图。
- **开发平台**:Openbravo 提供了一个完整的开发平台,支持两层开发模式。 - **应用程序字典**:用于存储所有窗口、表格、列、进程、报表及其关系的信息。通过简单的定义即可实现新功能的增加。 - **模型/视图/...
Openbravo POS适用于瑞典的要求。 Openbravo POS是专为触摸屏设计的销售点应用程序,支持ESC / POS票证打印机,客户显示器和条形码扫描仪。 它是多用户提供产品输入表格,报告和图表。
### Openbravo ERP 技术简介 #### 一、Openbravo ERP 概述 Openbravo ERP 是一款先进的企业资源计划系统,以其高度可定制性和灵活性著称。该系统支持多种主流技术,并且采用了模型驱动的设计理念。通过模型驱动的...
Openbravo ERP 的系统结构分为多个层次,包括前端展示层、业务逻辑层和数据访问层等。这样的设计使得系统具有良好的可维护性和扩展性。 #### 二、安装 **2.1 概述** 安装 Openbravo ERP 的过程相对简单,但是需要...
Mochammad Dikra Prasetya 13511030 Evan Budianto 13511041 Muhammad Nassirudin 13511044 Renusa Andra Prayogo 13511063 ... 将项目中的文件夹 Module 合并到 OpenBravo 项目中的文件夹 Module。
Openbravo POS Arabic Language crx 插件是专为OpenBravo Point of Sale(POS)系统设计的一个语言扩展,旨在为使用阿拉伯语的用户提供本地化支持。OpenBravo POS是一款开源的企业资源规划(ERP)软件的一部分,特别...
语言:English用于显示Openbravo警报的简单扩展。右键单击以编辑选项,然后单击扩展名以打开Openbravo ERP用于显示Openbravo警报的简单扩展。右键单击以编辑选项,然后单击扩展名以打开Openbravo ERP。Openbravo用户...
同时,用户可能还需要访问Openbravo的论坛或社区获取技术支持,解决安装和使用过程中遇到的问题。 总的来说,Openbravo 3 30.3 中文汉化包是提升中国用户使用Openbravo ERP体验的关键工具,它体现了开源社区的力量...