日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ssh开发中的DAO和DaoSupport备份

發(fā)布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssh开发中的DAO和DaoSupport备份 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

ssh開發(fā)base包中的Dao代碼:

package com.base;import java.io.Serializable; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List;import org.hibernate.criterion.DetachedCriteria;public interface DAO {/*** 加載一個實體* @param <T>* @param entityClass* @param entityid 主鍵* @return*/public <T> T load(Class<T> entityClass, Serializable entityid) ;/*** 增加或修改實體* @param <T>* @param entity 實體* @return*/public <T> T saveOrUpdate(T entity);/*** 保存指定實體* @param entity 實體*/public <T> T save(T entity);/*** 批量保存指定的實體集合* @param <T>* @param entities 實體集和* @return*/public <T> Collection<T> save(Collection<T> entities);/*** 刪除指定實體* @param <T>* @param entity 實體*/public <T> T delete(T entity);/*** 批量刪除指定的實體集合* @param <T>* @param entities 實體集合*/public <T> Collection<T> delete(Collection<T> entities);/*** 更新指定操作* @param entity 實體*/public <T> T update(T entity);/*** 獲取指定id的實體* @param <T>* @param entityClass* @param entityid 實體的主鍵* @return*/public <T> T get(Class<T> entityClass, Serializable entityid);/*** 獲取列表,相當(dāng)于打開某個對象對應(yīng)的數(shù)據(jù)表* @param <T>* @param entityClass* @return 對象列表*/public <T> List<T> find(Class<T> entityClass);/*** 根據(jù)SQL語句執(zhí)行查詢語句. * 示例:* xxx.find("from bean.User") * 返回所有User對象* @param <T>* @param queryString 完整的查詢語句* @return*/public <T> List<T> find(String queryString);/*** 根據(jù)SQL語句執(zhí)行查詢語句 * 示例:* xxx.find("from bean.User o where o.name=?","test");* 或模糊查詢:* xxx.find("from bean.User o where o.name like ?", "%test%");* 返回name屬性值為test的對象(模糊查詢, 返回name屬性值包含test的對象)* @param <T>* @param queryString 完整的查詢語句* @param value 參數(shù)* @return*/public <T> List<T> find(String queryString, Object value);/*** 根據(jù)SQL語句執(zhí)行查詢語句* 示例:* String hql= "from bean.User u where u.name=? and u.password=?" * xxx.find(hql, new String[]{"test", "123"});* 返回用戶名為test并且密碼為123的所有User對象* @param <T>* @param queryString 完整的查詢語句* @param values 參數(shù)集合* @return*/public <T> List<T> find(String queryString, Object[] values);public <T> List<T> find(Class<T> entityClass, String wherehql);/*** 查詢操作* 示例:* XXXService.find(Entity.class, "where o.property1=?", newObject[]{1});* @param <T>* @param entityClass 實體類* @param wherehql 部分條件語句* @param queryParam 查詢參數(shù)* @return*/public <T> List<T> find(Class<T> entityClass, String wherehql, Object queryParam);/*** 查詢操作* 示例:* XXXService.find(Entity.class,"where o.property1=? and o.property2=?", new Object[]{1, 2});* @param <T>* @param entityClass 實體類* @param wherehql 條件語句* @param queryParams 查詢參數(shù)集合* @return*/public <T> List<T> find(Class<T> entityClass, String wherehql, Object[] queryParams);/*** 查詢操作* 示例: * User u=new User(); * u.setPassword("123");//必須 符合的條件但是這兩個條件時并列的(象當(dāng)于sql中的and) * u.setName("bb"); * list=this.getHibernateTemplate().findByExample(u,start,max); * 返回:用戶名為bb密碼為123的對象 * @param <T>* @param exampleEntity* @return*/public <T> List<T> findByExample(T exampleEntity);/*** 查詢操作* 示例:* HibernateTemplate ht=this.getHibernateTemplate();* DetachedCriteria criteria=DetachedCriteria.forClass(Paper.class);* ht.findByCriteria(criteria);* criteria可以使用add()方法添加我們需要的查詢條件,就好比SQL語句中的where條件語句* 而add()方法可以使用Restrictions類的靜態(tài)方法返回值作為參數(shù).* 示例:* criteria.add(Restrictions.in("TExams", examsList)).add(Restrictions.eq("patype", 0));* @param <T>* @param entityClass* @param criteria* @return*/public <T> List<T> findByCriteria(Class<T> entityClass, DetachedCriteria criteria);/*** 查詢操作* 使用以下語句查詢: * String queryString = "select count(*) from bean.User u where u.name=:myName"; * String paramName= "myName"; * String value= "xiyue"; * this.getHibernateTemplate().findByNamedParam(queryString, paramName, value); * System.out.println(list.get(0)); * 返回name為xiyue的User對象的條數(shù) * @param <T>* @param queryString 查詢語句* @param paramName 參數(shù)名* @param value 參數(shù)* @return*/public <T> List<T> findByNamedParam(String queryString, String paramName, Object value);/*** 查詢操作* 示例: * String queryString = "select count(*) from bean.User u where u.name=:myName and u.password=:myPassword"; * String[] paramName= new String[]{"myName", "myPassword"}; * String[] value= new String[]{"xiyue", "123"}; * this.getHibernateTemplate().findByNamedParam(queryString, paramName, value); * 返回用戶名為xiyue密碼為123的User對象 * @param <T>* @param queryString 查詢語句* @param paramNames 參數(shù)名集合* @param values 參數(shù)值集合* @return*/public <T> List<T> findByNamedParam(String queryString, String[] paramNames, Object[] values);/*** 查詢操作* 示例: * 1、首先需要在User.hbm.xml中定義命名查詢 * <hibernate-mapping> * <class>......</class> * <query name="queryAllUser"><!--此查詢被調(diào)用的名字--> * <![CDATA[ * from bean.User * ]]> * </query> * </hibernate-mapping> * 2、如下使用查詢: * this.getHibernateTemplate().findByNamedQuery("queryAllUser"); * @param <T>* @param queryName* @return*/public <T> List<T> findByNamedQuery(String queryName);/*** 查詢操作* 示例: * 1、首先需要在User.hbm.xml中定義命名查詢 * <hibernate-mapping> * <class>......</class> * <query name="queryByName"><!--此查詢被調(diào)用的名字--> * <![CDATA[ * from bean.User u where u.name = ? * ]]> * </query> * </hibernate-mapping> * 2、如下使用查詢: * this.getHibernateTemplate().findByNamedQuery("queryByName", "test"); * @param <T>* @param queryName* @param value* @return*/public <T> List<T> findByNamedQuery(String queryName, Object value);/*** 查詢操作* 示例: * 1、首先需要在User.hbm.xml中定義命名查詢 * <hibernate-mapping> * <class>......</class> * <query name="queryByNameAndPassword"><!--此查詢被調(diào)用的名字--> * <![CDATA[ * from bean.User u where u.name =? and u.password =?* ]]> * </query> * </hibernate-mapping> * 2、如下使用查詢: * String[] values= new String[]{"test", "123"}; * this.getHibernateTemplate().findByNamedQuery("queryByNameAndPassword" , values); * @param <T>* @param queryName* @param value* @return*/public <T> List<T> findByNamedQuery(String queryName, Object[] values);/*** 查詢操作* 示例: * 1、首先需要在User.hbm.xml中定義命名查詢 * <hibernate-mapping> * <class>......</class> * <query name="queryByName"><!--此查詢被調(diào)用的名字--> * <![CDATA[ * from bean.User u where u.name =:myName * ]]> * </query> * </hibernate-mapping> * 2、如下使用查詢: * this.getHibernateTemplate().findByNamedQuery("queryByName" , "myName", "test"); * @param <T>* @param queryName* @param value* @return*/public <T> List<T> findByNamedQueryAndNamedParam(String queryName, String paramName, Object value);/*** 查詢操作* 示例: * 1、首先需要在User.hbm.xml中定義命名查詢 * <hibernate-mapping> * <class>......</class> * <query name="queryByNameAndPassword"><!--此查詢被調(diào)用的名字--> * <![CDATA[ * from bean.User u where u.name =:myName and u.password=:myPassword * ]]> * </query> * </hibernate-mapping> * 2、如下使用查詢: * String[] names= new String[]{"myName", "myPassword"}; * String[] values= new String[]{"test", "123"}; * this.getHibernateTemplate().findByNamedQuery("queryByNameAndPassword" , names, values); * @param <T>* @param queryName* @param value* @return*/public <T> List<T> findByNamedQueryAndNamedParam(String queryName, String[] paramNames, Object[] values);/*** 查詢操作* 示例: * 1、定義一個ValueBean, 屬性名必須和HSQL語句中的:后面的變量名同名, * 此處必須至少有兩個屬性, 分別為myName和myPassword, 使用setter方法設(shè)置屬性值后 * ValueBean valueBean= new ValueBean(); * valueBean.setMyName("test"); * valueBean.setMyPasswrod("123"); * 2、 * String queryString= "from bean.User u where u.name=:myName and u.password=:myPassword"; * this.getHibernateTemplate().findByValueBean(queryString , valueBean);* @param <T>* @param queryString* @param value* @return*/public <T> List<T> findByValueBean(String queryString , Object valueBean); /*** 查詢操作* 示例: * 1、首先需要在User.hbm.xml中定義命名查詢 * <hibernate-mapping> * <class>......</class> * <query name="queryByNameAndPassword"><!--此查詢被調(diào)用的名字--> * <![CDATA[ * from bean.User u where u.name =:myName and u.password=:myPassword * ]]> * </query> * </hibernate-mapping> * 2、定義一個ValueBean, 屬性名必須和User.hbm.xml命名查詢語句中的:* 后面的變量名同名, 此處必須至少有兩個屬性, 分別為myName和myPassword, 使用setter方法設(shè)置屬性值后 * ValueBean valueBean= new ValueBean(); * valueBean.setMyName("test"); * valueBean.setMyPasswrod("123"); * 3、 * String queryString= "from bean.User u where u.name=:myName and u.password=:myPassword"; * this.getHibernateTemplate().findByNamedQueryAndValueBean("queryByNameAndPassword", valueBean);* @param <T>* @param queryName* @param value* @return*/public <T> List<T> findByNamedQueryAndValueBean(String queryName, Object valueBean);//分頁查詢////*** 獲取查詢總記錄數(shù)* @param <T>* @param entityClass* @param wheresql* @return*/public <T> long getQueryCount(Class<T> entityClass, String wheresql, Object[] queryParams);/*** 獲取查詢總記錄數(shù)* @param <T>* @param entityClass* @param criteria* @return*/public <T> long getQueryCount(Class<T> entityClass, DetachedCriteria criteria);/*** 分頁查詢* @param <T>* @param criteria* @param firstResult* @param maxResults* @return*/public <T> QueryResult<T> getScrollData(DetachedCriteria criteria, int firstResult, int maxResults);/*** 分頁查詢, 無法排序* 示例: * User u=new User(); * u.setPassword("123");//必須 符合的條件但是這兩個條件時并列的(象當(dāng)于sql中的and) * u.setName("bb"); * list=this.getHibernateTemplate().findByExample(u,start,max); * 返回:滿足用戶名為bb密碼為123,自start起共max個User對象。(對象從0開始計數(shù))* @param <T>* @param exampleEntity* @param firstResult* @param maxResults* @return*/public <T> QueryResult<T> getScrollData(T exampleEntity, int firstResult, int maxResults);/*** 分頁查詢.* * @param <T>* @param entityClass* 實體類* @param firstIndex* 第一條記錄位置* @param maxResult* 查詢記錄數(shù)* @param orderby* 排序 key=實體屬性, value=desc/asc* @param wherehql* where語句* @param queryParams* 查詢參數(shù)* @return*/public <T> QueryResult<T> getScrollData(Class<T> entityClass, int firstResult, int maxResult, String wherehql, Object[] queryParams,LinkedHashMap<String, String> orderby);/*** 獲取分頁數(shù)據(jù)* * @param <T>* @param entityClass* 實體類* @param firstIndex* 第一條記錄位置* @param maxResult* 查詢記錄數(shù)* @param wherehql* where語句* @param queryParams* 查詢參數(shù)* @return*/public <T> QueryResult<T> getScrollData(Class<T> entityClass, int firstIndex, int maxResult, String wherehql, Object[] queryParams);/*** 獲取分頁數(shù)據(jù)* * @param <T>* @param entityClass* 實體類* @param firstIndex* 第一條記錄位置* @param maxResult* 查詢記錄數(shù)* @param orderby* 排序 key=實體屬性, value=desc/asc* @return*/public <T> QueryResult<T> getScrollData(Class<T> entityClass, int firstIndex, int maxResult, LinkedHashMap<String, String> orderby);/*** 獲取分頁數(shù)據(jù)* * @param <T>* @param entityClass* 實體類* @param firstIndex* 第一條記錄位置* @param maxResult* 查詢記錄數(shù)* @return*/public <T> QueryResult<T> getScrollData(Class<T> entityClass, int firstIndex, int maxResult);/*** 獲取全部* * @param <T>* @param entityClass* 實體類* @return*/public <T> QueryResult<T> getScrollData(Class<T> entityClass);/*** 執(zhí)行HQL語句* @param hql*/public void executeHQL(String hql) ;/*** 執(zhí)行HQL語句* @param hql* @param params*/public void executeHQL(String hql, Object[] params) ;public void backUpDB(); }
ssh中的繼承HibernateDaoSupport并實現(xiàn)Dao的接口代碼:


package com.base;import java.io.Serializable; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List;import javax.persistence.Entity;import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Projections; import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public abstract class DaoSupport extends HibernateDaoSupport implements DAO {public <T> T load(Class<T> entityClass, Serializable entityid) {return (T) this.getHibernateTemplate().load(entityClass, entityid);}public <T> T saveOrUpdate(T entity) {this.getHibernateTemplate().saveOrUpdate(entity);return entity;}public <T> Collection<T> delete(Collection<T> entities) {this.getHibernateTemplate().deleteAll(entities);return entities;}public <T> T delete(T entity) {this.getHibernateTemplate().delete(entity);return entity;}@SuppressWarnings("unchecked")public <T> List<T> find(Class<T> entityClass, String wherehql) {StringBuffer hql = new StringBuffer("from "+ this.getEntityName(entityClass) + " o ");hql.append(wherehql);List<T> list = this.getHibernateTemplate().find(hql.toString());return list;}@SuppressWarnings("unchecked")public <T> List<T> find(Class<T> entityClass, String wherehql,Object queryParam) {StringBuffer hql = new StringBuffer("from "+ this.getEntityName(entityClass) + " o ");hql.append(wherehql);List<T> list = this.getHibernateTemplate().find(hql.toString(),queryParam);return list;}@SuppressWarnings("unchecked")public <T> List<T> find(Class<T> entityClass, String wherehql,Object[] queryParams) {StringBuffer hql = new StringBuffer("from "+ this.getEntityName(entityClass) + " o ");hql.append(wherehql);List<T> list = this.getHibernateTemplate().find(hql.toString(),queryParams);return list;}@SuppressWarnings("unchecked")public <T> List<T> find(String queryString, Object value) {List<T> list = this.getHibernateTemplate().find(queryString, value);return list;}@SuppressWarnings("unchecked")public <T> List<T> find(String queryString, Object[] values) {List<T> list = this.getHibernateTemplate().find(queryString, values);return list;}@SuppressWarnings("unchecked")public <T> List<T> find(String queryString) {List<T> list = this.getHibernateTemplate().find(queryString);return list;}@SuppressWarnings("unchecked")public <T> List<T> find(Class<T> entityClass) {StringBuffer hql = new StringBuffer("from "+ this.getEntityName(entityClass));List<T> list = this.getHibernateTemplate().find(hql.toString());return list;}@SuppressWarnings("unchecked")public <T> List<T> findByCriteria(Class<T> entityClass,DetachedCriteria criteria) {List<T> list = this.getHibernateTemplate().findByCriteria(criteria);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByExample(T exampleEntity) {List<T> list = this.getHibernateTemplate().findByExample(exampleEntity);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByNamedParam(String queryString, String paramName,Object value) {List<T> list = this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByNamedParam(String queryString,String[] paramNames, Object[] values) {List<T> list = this.getHibernateTemplate().findByNamedParam(queryString, paramNames, values);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByNamedQuery(String queryName, Object value) {List<T> list = this.getHibernateTemplate().findByNamedQuery(queryName,value);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByNamedQuery(String queryName, Object[] values) {List<T> list = this.getHibernateTemplate().findByNamedQuery(queryName,values);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByNamedQuery(String queryName) {List<T> list = this.getHibernateTemplate().findByNamedQuery(queryName);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByNamedQueryAndNamedParam(String queryName,String paramName, Object value) {List<T> list = this.getHibernateTemplate().findByNamedQueryAndNamedParam(queryName, paramName, value);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByNamedQueryAndNamedParam(String queryName,String[] paramNames, Object[] values) {List<T> list = this.getHibernateTemplate().findByNamedQueryAndNamedParam(queryName, paramNames, values);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByNamedQueryAndValueBean(String queryName,Object valueBean) {List<T> list = this.getHibernateTemplate().findByNamedQueryAndValueBean(queryName, valueBean);return list;}@SuppressWarnings("unchecked")public <T> List<T> findByValueBean(String queryString, Object valueBean) {List<T> list = this.getHibernateTemplate().findByValueBean(queryString,valueBean);return list;}public <T> T get(Class<T> entityClass, Serializable entityid) {return (T) this.getHibernateTemplate().get(entityClass, entityid);}public <T> long getQueryCount(Class<T> entityClass, String wheresql,Object[] queryParams) {Session session = this.getSession();Query query = session.createQuery("select count(*) from "+ this.getEntityName(entityClass) + " o "+ (wheresql == null ? "" : wheresql));this.setQueryParams(query, queryParams);Long result = (Long) query.uniqueResult();return result;}public <T> long getQueryCount(Class<T> entityClass,DetachedCriteria detachedCriteria) {Criteria criteria = detachedCriteria.getExecutableCriteria(this.getSession());int totalCount = ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();return new Long(totalCount);}public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstIndex, int maxResult, LinkedHashMap<String, String> orderby) {return this.getScrollData(entityClass, firstIndex, maxResult, null,null, orderby);}@SuppressWarnings("unchecked")public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstResult, int maxResult, String wherehql,Object[] queryParams, LinkedHashMap<String, String> orderby) {Session session = this.getSession();QueryResult<T> qr = new QueryResult<T>();String entityName = this.getEntityName(entityClass);Query query = session.createQuery("select o from " + entityName + " o "+ (wherehql == null ? "" : wherehql)+ this.buildOrderby(orderby));// 分頁查詢if (-1 != firstResult && -1 != maxResult)query.setFirstResult(firstResult).setMaxResults(maxResult);// else, 否則查詢?nèi)縯his.setQueryParams(query, queryParams);List<T> list = query.list();qr.setResultList(list);return qr;}public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstIndex, int maxResult, String wherehql, Object[] queryParams) {return this.getScrollData(entityClass, firstIndex, maxResult, wherehql,queryParams, null);}public <T> QueryResult<T> getScrollData(Class<T> entityClass,int firstIndex, int maxResult) {return this.getScrollData(entityClass, firstIndex, maxResult, null);}public <T> QueryResult<T> getScrollData(Class<T> entityClass) {return this.getScrollData(entityClass, -1, -1);}@SuppressWarnings("unchecked")public <T> QueryResult<T> getScrollData(DetachedCriteria criteria,int firstResult, int maxResults) {QueryResult<T> result = new QueryResult<T>();List<T> list = this.getHibernateTemplate().findByCriteria(criteria,firstResult, maxResults);result.setResultList(list);return result;}@SuppressWarnings("unchecked")public <T> QueryResult<T> getScrollData(T exampleEntity, int firstResult,int maxResults) {QueryResult<T> result = new QueryResult<T>();List<T> list = this.getHibernateTemplate().findByExample(exampleEntity,firstResult, maxResults);result.setResultList(list);return result;}public <T> Collection<T> save(Collection<T> entities) {this.getHibernateTemplate().saveOrUpdateAll(entities);return entities;}public <T> T save(T entity) {this.getHibernateTemplate().save(entity);return entity;}public <T> T update(T entity) {this.getHibernateTemplate().update(entity);return entity;}public void executeHQL(String hql) {this.executeHQL(hql, null);}public void executeHQL(String hql, Object[] params) {Session session = this.getSession();Query query = session.createQuery(hql);if (null != params)this.setQueryParams(query, params);query.executeUpdate();}/*** 獲取實體名稱* * @param <T>* @param entityClass* 實體�?* @return*/protected <T> String getEntityName(Class<T> entityClass) {String entityName = entityClass.getSimpleName();Entity entity = entityClass.getAnnotation(Entity.class);if (entity != null && entity.name() != null && entity.name().isEmpty()) {entityName = entity.name();}return entityName;}/*** 組裝order by語句* * @param orderby* @return*/protected String buildOrderby(LinkedHashMap<String, String> orderby) {StringBuffer orderbysql = new StringBuffer();if (null != orderby && orderby.size() > 0) {orderbysql.append(" order by ");for (String key : orderby.keySet()) {orderbysql.append("o.").append(key).append(" ").append(orderby.get(key)).append(",");}orderbysql.deleteCharAt(orderbysql.length() - 1);}return orderbysql.toString();}/*** 設(shè)置查詢參數(shù)* * @param query* @param queryParams*/protected void setQueryParams(Query query, Object[] queryParams) {if (null != queryParams && queryParams.length > 0) {for (int i = 0; i < queryParams.length; i++) {query.setParameter(i, queryParams[i]);}}}public void backUpDB() {String sql = "BACKUP DATABASE wspj TO DISK ='C:/wspj.bak' with init";this.getSession().createSQLQuery(sql).executeUpdate();} }


轉(zhuǎn)載于:https://my.oschina.net/zjcx/blog/679552

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的ssh开发中的DAO和DaoSupport备份的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。