Spring中常用的操作数据库的(Dao)方法
来源:互联网 发布:淘宝商品链接在哪 编辑:程序博客网 时间:2024/05/01 06:49
- Spring中常用的操作数据库的(Dao)方法
- 接口:
- public interface BaseDAO {
- void save(T instance);
- void update(T instance);
- void delete(T instance);
- T get(String id);
- List<T> findAll();
- List<T> findByExample(T instance);
- int bulkUpdate(String hql);
- int bulkUpdate(String hql, Object value);
- int bulkUpdate(String hql, Object[] value);
- List<T> find(String queryString);
- List<T> find(String queryString, Object obj);
- List<T> find(String queryString, Object[] obj);
- List<T> findByNamedParam(String queryString, String paramName, Object value);
- List<T> findByNamedParam(String queryString, String[] paramNames, Object[] values);
- List<T> findByNamedQuery(String queryName);
- List<T> findByNamedQuery(String queryName, Object value);
- List<T> findByNamedQuery(String queryName, Object[] values);
- List<T> findByProperty(String property, Object value);
- List<T> findByPagination(final T t, final int firstResult, final int maxResult);
- int countByPagination(final T t);
- }
- 实现类:
- import java.sql.*;
- import java.util.List;
- import org.hibernate.*;
- import org.hibernate.criterion.*;
- import org.springframework.orm.hibernate3.*;
- import org.springframework.orm.hibernate3.support.*;
- import com.vo.T;
- public abstract class BaseDAOImpl extends HibernateDaoSupport implements BaseDAO{
- protected abstract Class type();
- public void save(T instance) {
- getHibernateTemplate().save(instance);
- }
- public void update(T instance) {
- getHibernateTemplate().update(instance);
- }
- public void delete(T instance) {
- getHibernateTemplate().delete(instance);
- }
- @SuppressWarnings("unchecked")
- public T get(String id) {
- return (T) getHibernateTemplate().get(type(), id);
- }
- @SuppressWarnings("unchecked")
- public List<T> findAll() {
- return getHibernateTemplate().loadAll(type());
- }
- @SuppressWarnings("unchecked")
- public List<T> findByExample(T instance) {
- return getHibernateTemplate().findByExample(instance);
- }
- public int bulkUpdate(String hql) {
- return getHibernateTemplate().bulkUpdate(hql);
- }
- public int bulkUpdate(String hql, Object value) {
- return getHibernateTemplate().bulkUpdate(hql, value);
- }
- public int bulkUpdate(String hql, Object[] value) {
- return getHibernateTemplate().bulkUpdate(hql, value);
- }
- @SuppressWarnings("unchecked")
- public List<T> find(String queryString) {
- return getHibernateTemplate().find(queryString);
- }
- @SuppressWarnings("unchecked")
- public List<T> find(String queryString, Object obj) {
- return getHibernateTemplate().find(queryString, obj);
- }
- @SuppressWarnings("unchecked")
- public List<T> find(String queryString, Object[] obj) {
- return getHibernateTemplate().find(queryString, obj);
- }
-
- @SuppressWarnings("unchecked")
- public List<T> findByNamedParam(String queryString, String paramName, Object value) {
- return this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);
- }
-
- @SuppressWarnings("unchecked")
- public List<T> findByNamedParam(String queryString, String[] paramNames, Object[] values) {
- return this.getHibernateTemplate().findByNamedParam(queryString, paramNames, values);
- }
-
- @SuppressWarnings("unchecked")
- public List<T> findByNamedQuery(String queryName) {
- return getHibernateTemplate().findByNamedQuery(queryName);
- }
-
- @SuppressWarnings("unchecked")
- public List<T> findByNamedQuery(String queryName, Object value) {
- return getHibernateTemplate().findByNamedQuery(queryName, value);
- }
-
- @SuppressWarnings("unchecked")
- public List<T> findByNamedQuery(String queryName, Object[] values) {
- return getHibernateTemplate().findByNamedQuery(queryName, values);
- }
-
- @SuppressWarnings("unchecked")
- public List<T> findByProperty(String property, Object value) {
- return this.getHibernateTemplate().findByCriteria(
- DetachedCriteria.forClass(type()).add(Restrictions.eq(property, value)));
- }
-
- @SuppressWarnings("unchecked")
- public List<T> findByPagination(final T t, final int firstResult, final int maxResult) {
- return getHibernateTemplate().executeFind(new HibernateCallback() {
- public Object doInHibernate(Session session) throws HibernateException, SQLException {
- Criteria criteria = session.createCriteria(type());
- criteria.add(Example.create(t).enableLike(MatchMode.ANYWHERE));
- criteria.setFirstResult(firstResult);
- criteria.setMaxResults(maxResult);
- return criteria.list();
- }
- });
- }
-
- @SuppressWarnings("unchecked")
- public int countByPagination(final T t) {
- return (Integer) getHibernateTemplate().execute(new HibernateCallback() {
- public Object doInHibernate(Session session) throws HibernateException, SQLException {
- Criteria criteria = session.createCriteria(type());
- criteria.setProjection(Projections.rowCount());
- criteria.add(Example.create(t).enableLike(MatchMode.ANYWHERE));
- return criteria.uniqueResult();
- }
- });
- }
- }
- 反射类:
- public class ClassInfoDAO{
- @SuppressWarnings("unchecked")
- protected Class type() {
- return User.class;
- }
- }