您的位置:首页 > 编程语言 > Go语言

HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good

2014-07-25 11:20 471 查看
Spring+Hibernate两种方法实现增删改查

首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件。再定义好一个Dao接口。准备好一个jdbc.properties文件。

第一种方法:

在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下:

Java代码


/***

* hibernateTemplate的转配模式

*/

public class CustomerDaoImpl implements CustomerDao {

// 设置hibernateTemplate属性

private HibernateTemplate hibernateTemplate;

// 必须设置set方法

public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {

this.hibernateTemplate = hibernateTemplate;

}

// 插入方法

@Override

public void insert(Customer entity) {

hibernateTemplate.save(entity);

}

// 删除方法(按照试题删除)

@Override

public void delete(Customer entity) {

hibernateTemplate.delete(entity);

}

// 删除方法,按id删除,该方法不成功

@Override

public void deleteById(int id) {

// hibernateTemplate.

}

// 查询所有记录

@Override

public List<Customer> selectAll() {

// TODO Auto-generated method stub

List<Customer> entities = hibernateTemplate.find("from Customer");

return entities;

}

// 按照id查找记录

@Override

public Customer selectById(int id) {

// TODO Auto-generated method stub

List<Customer> entitise = hibernateTemplate

.find("from Customer where id=" + id);

if (entitise.size() > 0) {

Customer entity = entitise.get(0);

return entity;

}

return null;

}

// 更新方法

@Override

public void update(Customer entity) {

// TODO Auto-generated method stub

hibernateTemplate.update(entity);

}

}

xml中的部分代码如下:

Java代码


<!-- 分散配置 -->

<context:property-placeholder location="jdbc.properties" />

<!-- c3p0数据源 -->

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

<!-- 驱动程序 -->

<property name="driverClass">

<value>${jdbc.driverClass}</value>

</property>

<!-- 连接的url地址 -->

<property name="jdbcUrl">

<value>${jdbc.url}</value>

</property>

<!-- 连接的用户名 -->

<property name="user">

<value>${jdbc.user}</value>

</property>

<!-- 连接的密码 -->

<property name="password">

<value>${jdbc.password}</value>

</property>

<!-- 最大池数 -->

<property name="maxPoolSize">

<value>${c3p0.pool.max}</value>

</property>

<!-- 最小池数 -->

<property name="minPoolSize">

<value>${c3p0.pool.min}</value>

</property>

<!-- 默认初始化的池数 -->

<property name="initialPoolSize">

<value>${c3p0.pool.init}</value>

</property>

</bean>

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<!-- 设置数据源 -->

<property name="dataSource" ref="dataSource" />

<!-- 属性设置 -->

<property name="hibernateProperties">

<props>

<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>

<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>

</props>

</property>

<!-- 映射文件配置 -->

<property name="mappingResources">

<list>

<value>cn/csdn/domain/Customer.hbm.xml</value>

</list>

</property>

</bean>

<span style="background-color: #ff0000;"><!-- hibernate模板 -->

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">

<property name="sessionFactory" ref="sessionFactory" />

</bean></span>

<!-- dao的操作的bean -->

<bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl">

<!-- 注入依赖模板 -->

<property name="hibernateTemplate" ref="hibernateTemplate" />

</bean>

第二种方法:

Dao实现类继承HibernateDaoSupport类,该类是抽象类,该类中有一个HibernateTemplate的属性,通过this.getHibernateTemplate()可获得一个HibernateTemplate类的对象。

Dao实现类中的代码如下:

Java代码


/**

* 继承HibernateDaoSupport类,HibernateDaoSupport类中封装了一个hibernateTemplate变量

*/

public class CustomerDaoImpl1 extends HibernateDaoSupport implements

CustomerDao {

// 添加记录

@Override

public void insert(Customer entity) {

this.getHibernateTemplate().save(entity);

}

// 删除记录(按照实体删除)

@Override

public void delete(Customer entity) {

// TODO Auto-generated method stub

this.getHibernateTemplate().delete(entity);

}

// 删除记录(按id删除),不成功

//

@Override

public void deleteById(int id) {

// TODO Auto-generated method stub

// this.getHibernateTemplate().delete(entity);

}

// 查询所有的记录

@Override

public List<Customer> selectAll() {

// TODO Auto-generated method stub

List<Customer> entities = this.getHibernateTemplate().find(

"from Customer");

return entities;

}

// 按照id查找记录

@Override

public Customer selectById(int id) {

// TODO Auto-generated method stub

List<Customer> entities=this.getHibernateTemplate().find("from Customer where id="+id);

if(entities.size()>0){

Customer entity=entities.get(0);

return entity;

}

return null;

}

// 更新的方法

@Override

public void update(Customer entity) {

// TODO Auto-generated method stub

this.getHibernateTemplate().update(entity);

}

}

xml中的部分代码:

Java代码


<!-- 分散配置 -->

<context:property-placeholder location="jdbc.properties" />

<!-- c3p0数据源 -->

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

<!-- 驱动程序 -->

<property name="driverClass">

<value>${jdbc.driverClass}</value>

</property>

<!-- 连接的url地址 -->

<property name="jdbcUrl">

<value>${jdbc.url}</value>

</property>

<!-- 连接的用户名 -->

<property name="user">

<value>${jdbc.user}</value>

</property>

<!-- 连接的密码 -->

<property name="password">

<value>${jdbc.password}</value>

</property>

<!-- 最大池数 -->

<property name="maxPoolSize">

<value>${c3p0.pool.max}</value>

</property>

<!-- 最小池数 -->

<property name="minPoolSize">

<value>${c3p0.pool.min}</value>

</property>

<!-- 默认初始化的池数 -->

<property name="initialPoolSize">

<value>${c3p0.pool.init}</value>

</property>

</bean>

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<!-- 设置数据源 -->

<property name="dataSource" ref="dataSource" />

<!-- 属性设置 -->

<property name="hibernateProperties">

<props>

<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>

<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>

</props>

</property>

<!-- 映射文件配置 -->

<property name="mappingResources">

<list>

<value>cn/csdn/domain/Customer.hbm.xml</value>

</list>

</property>

</bean>

<!-- 设置HibernateDaoSupport抽象类-->

<bean id="hibernateDaoSupport"

class="org.springframework.orm.hibernate3.support.HibernateDaoSupport"

abstract="true">

<property name="sessionFactory" ref="sessionFactory" />

</bean>



<!-- dao的操作的bean -->

<bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl1"

parent="hibernateDaoSupport" />

<bean id="adminDAO" class="com.haier.uhome.hr91.manager.dao.AdminDAO">

parent="hibernateDaoSupport"/>

或者如下:

<bean id="customerDaoImpl" class="cn.csdn.dao.CustomerDaoImpl1">

<property name="sessionFactory">

<ref local="sessionFactory" />

</property>

</bean>


<bean id="adminDAO" class="com.haier.uhome.hr91.manager.dao.AdminDAO">

<property name="sessionFactory">

<ref local="sessionFactory" />

</property>

</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐