- 浏览: 511286 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 4024这篇文章介绍消息服务的使用 1. 登陆沙箱用户 ... -
openbravo与淘宝对接文档一
2013-12-31 21:53 1860首先进入沙箱首页:http://www.tbsandbox ... -
How to automatically populate search keys
2013-05-20 21:13 968Introduction Search keys are ... -
How to create an Alert
2013-05-12 22:24 1220Objective The objective of t ... -
Openbravo 如何给窗口添加新字段
2012-12-17 21:04 1386以薪资表为例,假设我们现在有生效日期,还没有失效日期,支付时 ... -
Openbravo3.0 客户端代码开发与API
2012-10-04 18:13 2487一. 客户端代码开发工具 ... -
Openbravo3.0 体系结构
2012-08-29 22:14 5382在Openbravo 3.0中,我 ... -
Openbravo3.0 组织机构设置介绍
2012-06-24 17:31 2594一. 简要介绍 ... -
Openbravo3.0 用户操作界面介绍
2012-06-12 22:57 1747一. Openbravo3.0 新颖特征介绍 ... -
Openbravo3.0 怎样新建一个窗口
2012-03-15 21:28 2532一.需求背景 假设我们在开发一个人力资源模 ... -
Openbravo3.0与Eclipse集成简介
2012-01-07 22:30 3512... -
Openbravo 3.0 销售管理组织机构消失问题
2011-06-09 18:43 1046请参考如下文章: http://wiki.openbravo ... -
Openbravo 3.0汉化包
2011-05-26 22:30 8084附件有openbravo3.0的汉化包下载,不过不完 ... -
Openbravo ERP 3.0安装指南
2011-05-22 16:21 20196Openbravo ERP 3.0已经发布有一段时间 ... -
Openbravo 手工导入商品库存与价格
2011-05-19 16:36 1568由于Openbravo自带的导入功能 不能够导入商 ... -
Openbravo 窗口字段自定义
2011-05-19 16:00 1434假如openbravo的添加产品页面有很多字段,我 ... -
Openbravo ERP 定制菜单
2011-05-10 12:15 1675一. 删除菜单节点 1.点击 ... -
Openbravo ERP 通过数据字典定制属性
2011-04-29 11:13 2041有些时候,openbravo并不 ... -
OB汉化包
2010-09-08 12:01 1274上传一个OB2.4汉化包,供日后下载。
相关推荐
Openbravo 3.0 会计文件,适用与openbravo 3.x所有版本
100%汉化过的Openbravo 3.0 mp26 中文语言包
Openbravo3.0二次开发部署步骤
openbravo-3.0PR19Q3
openbravo 2.4 2.5zh_CN-中文语言包 汉化
openbravo 汉化包,目前只汉化了80%左右的文字,不过主要的部分都以及汉化了。
Openbravo-3.0PR18Q3.2汉化包本人亲测,90%的汉化率。
与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
NULL 博文链接:https://liwenshui322.iteye.com/blog/1054473
发行版解压为$HOME/openbravo-tomcat (不要使用apache-tomcat-xxx文件夹) 该文件夹将被称为$CATALINA_HOME 。 湾在~/.bashrc设置CATALINA_HOME环境变量,因为它将被 Openbravo Setup Ant 脚本使用C。 在~/.bashrc...
开源ERP OpenBravo的数据库关系图。
Openbravo POS适用于瑞典的要求。 Openbravo POS是专为触摸屏设计的销售点应用程序,支持ESC / POS票证打印机,客户显示器和条形码扫描仪。 它是多用户提供产品输入表格,报告和图表。
Mochammad Dikra Prasetya 13511030 Evan Budianto 13511041 Muhammad Nassirudin 13511044 Renusa Andra Prayogo 13511063 ... 将项目中的文件夹 Module 合并到 OpenBravo 项目中的文件夹 Module。
语言:English用于显示Openbravo警报的简单扩展。右键单击以编辑选项,然后单击扩展名以打开Openbravo ERP用于显示Openbravo警报的简单扩展。右键单击以编辑选项,然后单击扩展名以打开Openbravo ERP。Openbravo用户...
语言:العربية 此扩展为来自OpenBravo 的POS系统的阿拉伯语令人上瘾
Openbravo ERP 技术简介(中文)
Openbravo 技术 评测 .
Openbravo是一款面向中小企业的纯WEB方式的可扩展的ERP软件。她包括了基本的CRM(客户关系管理)、BI(商业智能)和一系列如采购、库存、项目、生产销售和财务管理等功能。适用于物流、服务和生产制造等多个行业。
Openbravo数据库关系表