分享
 
 
 

追求“简约不简单”的ORM映射框架

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

“简约不简单”,男人味十足的陈道明的出色的演绎给我们作了非常好的诠释。“简约”也就是要化繁为简、直接明了, 也就是将生活上和设计上多余的东西撇掉,点到即止。“不简单”就是只指“简约”的背后是一些复杂的设计及功能实现。“简约不简单”,是一种兼容并蓄的思想,广泛来说就是记贴近生活、合乎人性,才是设计的最终目的。

说起持久层框架或方案,最先想到的肯定是Entity Bean,受过Entity Bean折磨的朋友都知道,其非常的不简单的同时,也非常的不简约。不管是CMP还是BMP的Entity Bean,曾经让J2EE用来作显耀资本的Entity Bean今天回过头去看就像一个怪胎,甚至会有一种让人哭笑不得的感觉。EBJ3.0中推出的JPA,终结了“轻量与重量持久之争”的同时,也宣判了Entity Bean的死刑,基于Entity Bean造价昂贵的系统也成了遗留系统。

轻量级持久化解决方案设想的萌芽、成形、广泛应用到最终到打败Entity Bean的这一过程,给我们揭示了很多现代科学技术发展的客观规律,我认为其中一个规律可以概括为:“简约而不简单”。通过最简约的表达手段达到最好的表达效果一直是各个不同领域的创造者的目的,软件也不例外同,因此“简约主义(英文:minimalism)”应该是我们软件设计的基本思想之一

相对于Entity Bean,轻量级持久化方案显得就“简约”了许多。不依靠于任何框架的纯POJO,即方便领域建模,也方便单元测试,更方便移植、维护及扩展。然而,在JDK1.5以前,面对轻量级ORM中的那一堆繁杂的配置文件,如何有效治理却是让人非常头痛;尽管一些ORM系统通过引入Jakarta Commons Attributes或类似的思想来实现源码级标签声明持久层对象映射,零乱的标签定义仍然无法从根本上改善映射属性配置信息治理维护的复杂性。

JDK1.5以后,注解(Annotation)的引入为我们提供了一种非常好的源码级配置处理方式。因此,在各种项目中得到了非常好的引用,使得持久层的方案更加简约。非凡是JPA,可算是“简约”持久层的一个里程碑。因此,现在再来像Spring的Rod Johnson大叔前两年那样再来谈怎么灭掉EJB,难免会有点滑稽可笑。

Hibernate3.2已经实现了JPA,还有很多的持久层ORM框架也将会实现JPA,因此您假如使用这些框架仍然可以在升级版本中享受其一定的简约。然而“简约”是无尽头的,永远无法轻易达到一种完美的境界,JPA也是如此。

这里使用EasyDBO框架,举一个简单的例子,来演示“简约”追求的过程。

可以不需要使用配置文件,直接使用Java注解标签,通过下面的方式定义持久层对象:

@Table(tableName = " OrderInfo " )

public class Order implements Serializable {

@TableField(name = " id " )

private Number id; // 主键id

@TableField(name = " sn " )

private String sn; // 定单编号

@TableField(name = " vdate " )

private Date vdate; // 定单日期

@TableField(name = " requireDate " )

private Date requireDate; // 交付日期

@TableField(name = " payType " )

private String payType; // 支付方式

@TableField(name = " linkMan " )

private String linkMan; // 联系人

@TableField(name = " tel " )

private String tel; // 电话

@TableField(name = " address " )

private String address; // 地址

@TableField(name = " requirement " )

private String requirement; // 需求描述

@TableField(name = " remark " )

private String remark; // 备注

@TableField(name = " amount " )

private BigDecimal amount; // 订单总金额

@TableField(name = " handPerson " )

private String handPerson; // 经手人

@TableField(name = " inputUser " )

private String inputUser; // 录入人

@TableField(name = " inputTime " )

private Date inputTime; // 录入时间

@TableField(name = " opUser " )

private String opUser; // 操作人

@TableField(name = " opIntro " )

private String opIntro; // 操作简介

@TableField(name = " opTime " )

private Date opTime; // 操作时间

@TableField(name = " status " )

private Integer status; // 订单状态

@TableField(name = " payment " )

private Integer payment; // 支付状态

@OneToOne(column = " customer_id " , type = Customer. class )

private Customer customer; // 一对一关联,定单对应的客户

@ManyToOne(column = " order_id " , type = OrderDetail. class )

private Set < OrderDetail > children = new HashSet < OrderDetail > (); // 一对多关联,定单下面的具体信息

public Number getId() {

return id;

}

public void setId(Number id) {

this .id = id;

}

public String getAddress() {

return address;

}

…省略后面普通的getter及setter

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有