首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

EWeb4j-1.b.6.5 新的特征介绍—orm pojo篇

2012-07-15 
EWeb4j-1.b.6.5 新的特性介绍—orm pojo篇EWeb4j目前最新版本是1.b.6.4下载地址:http://code.google.com/p/

EWeb4j-1.b.6.5 新的特性介绍—orm pojo篇
EWeb4j目前最新版本是1.b.6.4
下载地址:http://code.google.com/p/eweb4j/downloads/list

下一个微版本1.b.6.5将会重点放在如何让各个模块的代码更加简洁。

约定优于配置,将是整洁之道的最佳实践。因此,EWeb4j框架也会采取这种方法。

来看看以下这个pojo类:

package test.po;import java.util.ArrayList;import java.util.Date;import java.util.List;import com.cfuture08.eweb4j.orm.config.annotation.ManyMany;import com.cfuture08.eweb4j.orm.config.annotation.One;/** * just a po * 约定: * 1类名以PO、POJO、Entity、Model结尾,取其前面的单词作为数据库表名。 * 例如类名PetPO,那么映射到的数据表名为Pet * 2属性名默认映射到数据表字段名。 * 但是要注意,被@ManyMany、@Many、@One其中一个注解并且没有@Column注解的属性, * 是不会映射到数据库表字段中去的。 * 3.ID属性,类属性名为id(忽略大小写)自动认为它是数据表的自增长字段并且是主键。 *  * 上一个版本中的pojo中, * 类名上面会有@Table注解, * 属性名上面会有@Column注解 * id属性上会有@Id注解。 * 代码看起来会很不简洁。 * 很明显,这个版本看起来十分简洁。 *  * @author weiwei *  */public class PetPO {private Integer id = 0;private String name;private String type;private Date birthday;private int age;private Date createTime;@One(column = "masterId")private Master master;@ManyMany(target = Master.class, relTable = "t_masterpetrel", from = "petId", to = "masterId")private List<Master> masters = new ArrayList<Master>();//getter&setterpublic String toString() {return "[Pet id:" + this.id + ", name:" + this.name + ", age:"+ this.age + ", type:" + this.type + ", birthday:"+ this.birthday + ", createTime:" + this.createTime + "]";}}


对比下上一个版本的写法:
package test.po;import java.util.ArrayList;import java.util.Date;import java.util.List;import com.cfuture08.eweb4j.orm.config.annotation.Column;import com.cfuture08.eweb4j.orm.config.annotation.Id;import com.cfuture08.eweb4j.orm.config.annotation.ManyMany;import com.cfuture08.eweb4j.orm.config.annotation.One;import com.cfuture08.eweb4j.orm.config.annotation.Table;/** * just a po *  * @author weiwei *  */@Table("t_Pet")public class Pet {@Id@Columnprivate Integer id = 0;@Columnprivate String name;@Columnprivate String type;private Date birthday;@Columnprivate int age;@One(column="masterId")private Master master;@ManyMany(target = Master.class, relTable = "t_masterpetrel", from = "petId", to = "masterId")private List<Master> masters = new ArrayList<Master>();//getter&setterpublic String toString() {return "[Pet id:" + this.id + ", name:" + this.name + ", age:"+ this.age + ", type:" + this.type + ", birthday:"+ this.birthday + ", createTime:" + this.createTime + "]";}


对比之后,代码确实是简洁了不少,这就是约定优于配置的巨大好处了!

重新总结下,EWeb4j-1.b.6.5中,对于ORM的POJO来说,有以下约定:
1.类名,以PO|POJO|Entity|Model结尾,前段部分映射到表明,例如PetPO—>Pet
2.属性名,默认直接映射表字段名,被@Many|@ManyMany|@One注解,且没有@Column注解的属性不会映射到表字段
3.ID属性,名字为”id“(忽略大小写)的话,表示该属性映射到的字段是自增长的且是表主键。

待续...

热点排行