Spring+Hibernate两种方法实现增删改查

Spring+Hibernate两种方法实现增删改查

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

 

第一种方法:

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

 
/***
 * 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 selectAll() {
		// TODO Auto-generated method stub
		List entities = hibernateTemplate.find("from Customer");
		return entities;
	}

	// 按照id查找记录
	@Override
	public Customer selectById(int id) {
		// TODO Auto-generated method stub
		List 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中的部分代码如下:


	

	
	
		
		
			${jdbc.driverClass}
		

		
		
			${jdbc.url}
		

		
		
			${jdbc.user}
		

		
		
			${jdbc.password}
		

		
		
			${c3p0.pool.max}
		

		
		
			${c3p0.pool.min}
		
		
		
			${c3p0.pool.init}
		
	


	
		
		
		
		
			
				${hibernate.show_sql}
				${hibernate.hbm2ddl.auto}
			
		
		
		
			
				cn/csdn/domain/Customer.hbm.xml
			
		

	


	
	
		
	

	
	
		
		
		
 

第二种方法:

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

Dao实现类中的代码如下:

/**
 * 继承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 selectAll() {
		// TODO Auto-generated method stub
		List entities = this.getHibernateTemplate().find(
				"from Customer");
		return entities;
	}

//	按照id查找记录
	@Override
	public Customer selectById(int id) {
		// TODO Auto-generated method stub
		List 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中的部分代码:


	

	
	
		
		
			${jdbc.driverClass}
		

		
		
			${jdbc.url}
		

		
		
			${jdbc.user}
		

		
		
			${jdbc.password}
		

		
		
			${c3p0.pool.max}
		

		
		
			${c3p0.pool.min}
		
		
		
			${c3p0.pool.init}
		
	


	
		
		
		
		
			
				${hibernate.show_sql}
				${hibernate.hbm2ddl.auto}
			
		
		
		
			
				cn/csdn/domain/Customer.hbm.xml
			
		

	


	
	
		
	

	
	
 

 

你可能感兴趣的:(spring)