customerdaohibernateimpl.java

来自「加拿大达内科技有限公司配需java程序员的上课时的代码」· Java 代码 · 共 72 行

JAVA
72
字号
package dao.hibernate;

import java.sql.SQLException;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import dao.CustomerDAO;
import entity.Customer;

public class CustomerDAOHibernateImpl extends HibernateDaoSupport implements CustomerDAO{

	public void delete(String name) {
		// TODO Auto-generated method stub
		Customer c = findByName(name);
		getHibernateTemplate().delete(c);
	}

	public List<Customer> findAll() {
		// TODO Auto-generated method stub
//		String hql = "from Customer c";
//		return getHibernateTemplate().find(hql);
		HibernateTemplate ht = 
			getHibernateTemplate();
		return ht.executeFind(new HibernateCallback(){

			public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
				// TODO Auto-generated method stub
				String hql = "from Customer c";
				Query query = arg0.createQuery(hql);
				return query.list();
			}
			
		});
	}

	public Customer findByName(final String name) {
		// TODO Auto-generated method stub
//		String hql = "from Customer c where c.name=:name";
//		return (Customer) getHibernateTemplate()
//		.findByNamedParam(hql, "name", name).get(0);
		HibernateTemplate ht = getHibernateTemplate();
		return (Customer) ht.execute(new HibernateCallback(){

			public Object doInHibernate(Session arg0) throws HibernateException, SQLException {
				// TODO Auto-generated method stub
				String hql = "from Customer c where c.name=:name";
				Query query = arg0.createQuery(hql);
				query.setString("name", name);
				return query.uniqueResult();
			}
			
		});
	}

	public void save(Customer c) {
		// TODO Auto-generated method stub
		getHibernateTemplate().saveOrUpdate(c);
	}

	public void update(Customer c) {
		// TODO Auto-generated method stub
		save(c);
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?