BSTEK Development Framework2(BDF2) : 2.3.使用DAO

       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。

DemoUser类源码
@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,并给该属性添加一个集合类型的值。代码如下:

datasources.xml部分配置源码
<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的使用了。