BDF2的ORM模块为了方便大家实现数据持久化与数据的查询,提供了基于Hibernate与JDBC的两种类型的DAO,这两种类型的DAO与Dorado7的View组件紧密融合,可以快速实现有关数据的各种需求的查询和持久化动作。在正式介绍如何使用这两种类型的DAO之前,需要先做些准备工作。步骤如下:
1. 前期准备
1.1. 创建BDF2项目
通过BDF2在线项目创建向导以maven的方式创建一个标准的BDF2项目,修改项目名称为bdf2-orm-demo。注意需要添加bdf2-core模块。将创建好的项目导入到eclipse中。
1.2. 测试新建项目
成功导入到eclipse后,我们就可以运行该项目,如果运行成功,说明该bdf2项目搭建成功。
1.3. 创建所需实体类
创建实体类和对应的包:DemoUser和com.bstek.demo.model,将DemoUser类放到com.bstek.demo.model这个包下。DemoUser实体类包含如下属性:username、male、birthday、mobile、address和email。
@Entity
@Table(name="DEMO_USER")
public class DemoUser {
@Id
@Column(name="USERNAME_",length=60)
private String username;
@Column(name="MALE_",nullable=false)
private boolean male=true;
@Column(name="BIRTHDAY_")
private Date birthday;
@Column(name="MOBILE_",length=20)
private String mobile;
@Column(name="ADDRESS_",length=120)
private String address;
@Column(name="EMAIL_",length=60)
private String email;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
1.4. 将DemoUser类映射到数据库中对应的表
在这个例子里,使用hibernate注解来实现将POJO映射到数据库中的表,将DemoUser实体类配置到hibernate环境中,首先,在dorado-home文件夹下找到datasources.xml文件,打开该文件,找到id为sessionFactary的bean节点,在此节点添加一个name为packagesToScan属性节点property,并给该属性添加一个集合类型的值。代码如下:
<bean id="sessionFactory" parent="bdf2.sessionFactory"> <property name="dataSourceName" value="hsql" /> <property name="entityInterceptor" ref="bdf2.unByteCodeProxyInterceptor" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="packagesToScan"> <list> <value>com/bstek/demo/model</value> </list> </property> </bean>
以上工作完成之后,就可以开始学习DAO的使用了。