key words : hibernate spring dao
come from : http://lpacec.javaeye.com/blog/46220
???1.??package?infoweb.dao;??????
???2.??????
???3.?import?java.util.List;??????
???4.?import?java.util.Iterator;??????
???5.??????
???6.?import?infoweb.pojo.Info;??????
???7.??????
???8.?import?net.sf.hibernate.HibernateException;??????
???9.?import?net.sf.hibernate.Query;??????
??10.?import?net.sf.hibernate.Session;??????
??11.??????
??12.?import?org.springframework.orm.hibernate.HibernateCallback;??????
??13.?import?org.springframework.orm.hibernate.support.HibernateDaoSupport;??????
??14.??????

??15.?/**?*//**?????
??16.??*?

??????Title:?
??????????
??17.??*?

??????Description:?
??????????
??18.??*?

??????Copyright:?Copyright?(c)?2004
??????????
??19.??*?

??????Company:?
??????????
??20.??*?@author?段洪杰?????
??21.??*?@version?1.0?????
??22.??*/??????
??23.??????

??24.?public?class?InfoDAOImpl?extends?HibernateDaoSupport?implements?IInfoDAO?
{??????

??25.???/**?*//**?????
??26.????*?構造函數?????
??27.????*/??????

??28.???public?InfoDAOImpl()?
{??????
??29.?????super();??????
??30.???}??????
??31.??????

??32.???/**?*//**?????
??33.????*?增加記錄?????
??34.????*?@param?info?Info?????
??35.????*/??????

??36.???public?void?setInfo(Info?info)?throws?Exception?
{??????
??37.?????getHibernateTemplate().save(info);??????
??38.???}??????
??39.??????

??40.???/**?*//**?????
??41.????*?通過ID取得記錄?????
??42.????*?@param?id?String?????
??43.????*?@return?Info?????
??44.????*/??????

??45.???public?Info?getInfoById(String?id)?throws?Exception?
{??????
??46.?????Info?info?=?(Info)?getHibernateTemplate().load(Info.class,?id);??????
??47.?????return?info;??????
??48.???}??????
??49.??????

??50.???/**?*//**?????
??51.????*?修改記錄?????
??52.????*?@param?Info?info?????
??53.????*/??????

??54.???public?void?modifyInfo(Info?info)?throws?Exception?
{??????
??55.?????getHibernateTemplate().update(info);??????
??56.???}??????
??57.??????

??58.???/**?*//**?????
??59.????*?刪除記錄?????
??60.????*?@param?Info?info?????
??61.????*/??????

??62.???public?void?removeInfo(Info?info)?throws?Exception?
{??????
??63.?????getHibernateTemplate().delete(info);??????
??64.???}??????
??65.??????
??66.???////////////////////////////////////////////////////////??????
??67.???/////????????????????????????????????????????????????///??????
??68.???/////以下部份不帶審核功能??????????????????????????????///??????
??69.???/////????????????????????????????????????????????????///??????
??70.???////////////////////////////////////////////////////////??????
??71.??????

??72.???/**?*//**?????
??73.????*?取記錄總數?????
??74.????*?@return?int?????
??75.????*/??????

??76.???public?int?getInfosCount()?throws?Exception?
{??????
??77.?????int?count?=?0;??????
??78.?????String?queryString?=?"select?count(*)?from?Info";??????
??79.?????count?=?((Integer)?getHibernateTemplate().iterate(queryString).next()).??????
??80.?????????????intValue();??????
??81.?????return?count;??????
??82.???}??????
??83.??????

??84.???/**?*//**?????
??85.????*?取所有記錄集合?????
??86.????*?@return?Iterator?????
??87.????*/??????

??88.???public?Iterator?getAllInfos()?throws?Exception?
{??????
??89.?????Iterator?iterator?=?null;??????
??90.?????String?queryString?=?"?select?info?from?Info?as?info?order?by?info.id?desc";??????
??91.?????List?list?=?getHibernateTemplate().find(queryString);??????
??92.?????iterator?=?list.iterator();??????
??93.?????return?iterator;??????
??94.???}??????
??95.??????

??96.???/**?*//**?????
??97.????*?取記錄集合?????
??98.????*?@return?Iterator?????
??99.????*?@param?int?position,?int?length?????
?100.????*/??????

?101.???public?Iterator?getInfos(int?position,?int?length)?throws?Exception?
{??????
?102.?????Iterator?iterator?=?null;??????
?103.?????String?queryString?=?"?select?info?from?Info?as?info?order?by?info.id?desc";??????
?104.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?105.?????//設置游標的起始點??????
?106.?????query.setFirstResult(position);??????
?107.?????//設置游標的長度??????
?108.?????query.setMaxResults(length);??????
?109.?????//記錄生成??????
?110.?????List?list?=?query.list();??????
?111.?????//把查詢到的結果放入迭代器??????
?112.?????iterator?=?list.iterator();??????
?113.?????return?iterator;??????
?114.???}??????
?115.??????

?116.???/**?*//**?????
?117.????*?取第一條記錄?????
?118.????*?@throws?Exception?????
?119.????*?@return?Station?????
?120.????*/??????

?121.???public?Info?getFirstInfo()?throws?Exception?
{??????
?122.?????Iterator?iterator?=?null;??????
?123.?????Info?info?=?null;??????
?124.?????String?queryString?=?"select?info?from?Info?as?info?order?by?info.id?desc";??????
?125.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?126.?????//記錄生成??????
?127.?????List?list?=?query.list();??????
?128.?????//把查詢到的結果放入迭代器??????
?129.?????iterator?=?list.iterator();??????

?130.?????if?(iterator.hasNext())?
{??????
?131.???????info?=?(Info)?iterator.next();??????
?132.?????}??????
?133.?????return?info;??????
?134.???}??????
?135.??????

?136.???/**?*//**?????
?137.????*?取最后一條記錄?????
?138.????*?@throws?Exception?????
?139.????*?@return?Station?????
?140.????*/??????

?141.???public?Info?getLastInfo()?throws?Exception?
{??????
?142.?????Iterator?iterator?=?null;??????
?143.?????Info?info?=?null;??????
?144.?????String?queryString?=?"select?info?from?Info?as?info?order?by?info.id?asc";??????
?145.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?146.?????//記錄生成??????
?147.?????List?list?=?query.list();??????
?148.?????//把查詢到的結果放入迭代器??????
?149.?????iterator?=?list.iterator();??????

?150.?????if?(iterator.hasNext())?
{??????
?151.???????info?=?(Info)?iterator.next();??????
?152.?????}??????
?153.?????return?info;??????
?154.??????
?155.???}??????
?156.??????
?157.???////////////////////////////////////////////////////////??????
?158.???/////????????????????????????????????????????????????///??????
?159.???/////?以下部份表中要有特定字段才能正確運行???個人和企業?????///??????
?160.???/////????????????????????????????????????????????????///??????
?161.???////////////////////////////////////////////////////////??????
?162.??????

?163.???/**?*//**?????
?164.????*?取符合條件記錄總數,?[表中要有?isperson?字段]?????
?165.????*?@return?int?????
?166.????*?@param?int?isPerson?????
?167.????*/??????
?168.??????

?169.???public?int?getInfosCountByIsperson(int?isPerson)?throws?Exception?
{??????
?170.?????int?count?=?0;??????
?171.?????String?queryString?=??????
?172.?????????"select?count(*)?from?Info?as?info?where?info.isperson?="?+?isPerson;??????
?173.?????count?=?((Integer)?getHibernateTemplate().iterate(queryString).next()).??????
?174.?????????????intValue();??????
?175.?????return?count;??????
?176.???}??????
?177.??????

?178.???/**?*//**?????
?179.????*?取所有符合條件記錄集合,?模糊查詢條件.[表中要有?isperson?字段]?????
?180.????*?@return?Iterator?????
?181.????*?@param?int?isPerson?????
?182.????*/??????
?183.??????

?184.???public?Iterator?getAllInfosByIsperson(int?isPerson)?throws?Exception?
{??????
?185.?????Iterator?iterator?=?null;??????
?186.?????String?queryString?=?"?select?info?from?Info?as?info?where?info.isperson?="?+??????
?187.??????????????????????????isPerson?+?"?order?by?info.id?desc";??????
?188.?????List?list?=?getHibernateTemplate().find(queryString);??????
?189.?????//把查詢到的結果放入迭代器??????
?190.?????iterator?=?list.iterator();??????
?191.?????return?iterator;??????
?192.???}??????
?193.??????

?194.???/**?*//**?????
?195.????*?取符合條件記錄集合,?模糊查詢條件.[表中要有?isperson?字段]?????
?196.????*?@return?Iterator?????
?197.????*?@param?int?isPerson,int?position,?int?length?????
?198.????*/??????
?199.??????
?200.???public?Iterator?getInfosByIsperson(int?isPerson,?int?position,?int?length)?throws??????

?201.???????Exception?
{??????
?202.?????Iterator?iterator?=?null;??????
?203.?????String?queryString?=?"?select?info?from?Info?as?info?where?info.isperson?="?+??????
?204.??????????????????????????isPerson?+?"?order?by?info.id?desc";??????
?205.?????//創建查詢??????
?206.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?207.?????//設置游標的起始點??????
?208.?????query.setFirstResult(position);??????
?209.?????//設置游標的長度??????
?210.?????query.setMaxResults(length);??????
?211.?????//記錄生成??????
?212.?????List?list?=?query.list();??????
?213.?????//把查詢到的結果放入迭代器??????
?214.?????iterator?=?list.iterator();??????
?215.?????return?iterator;??????
?216.???}??????
?217.??????
?218.???////////////////////////////////////////////////////////??????
?219.???/////????????????????????????????????????????????????///??????
?220.???/////?以下部份表中要有特定字段才能正確運行???查詢部份??????///??????
?221.???/////????????????????????????????????????????????????///??????
?222.???///////////////////////////////////////////////////////??????

?223.???/**?*//**?????
?224.????*?取符合條件記錄總數,?模糊查詢條件.[表中要有?title?字段]?????
?225.????*?@return?int?????
?226.????*?@param?String?text?????
?227.????*/??????

?228.???public?int?getInfosCount(String?text)?throws?Exception?
{??????
?229.?????int?count?=?0;??????
?230.?????count?=?((Integer)?getHibernateTemplate().iterate(??????
?231.?????????"select?count(*)?from?Info?as?info?where?info.title?like?'%"?+?text?+??????
?232.?????????"%'").next()).intValue();??????
?233.?????return?count;??????
?234.???}??????
?235.??????

?236.???/**?*//**?????
?237.????*?取所有符合條件記錄集合,?模糊查詢條件.[表中要有?title?字段]?????
?238.????*?@return?Iterator?????
?239.????*?@param?String?text?????
?240.????*/??????
?241.??????

?242.???public?Iterator?getAllInfos(String?text)?throws?Exception?
{??????
?243.?????Iterator?iterator?=?null;??????
?244.?????String?queryString?=??????
?245.?????????"?select?info?from?Info?as?info?where?info.title?like?'%"?+?text?+??????
?246.?????????"%'?order?by?info.id?desc";??????
?247.?????//創建查詢??????
?248.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?249.?????//記錄生成??????
?250.?????List?list?=?query.list();??????
?251.?????//把查詢到的結果放入迭代器??????
?252.?????iterator?=?list.iterator();??????
?253.?????return?iterator;??????
?254.???}??????
?255.??????

?256.???/**?*//**?????
?257.????*?取符合條件記錄集合,?模糊查詢條件.[表中要有?title?字段]?????
?258.????*?@return?Iterator?????
?259.????*?@param?String?text,int?position,?int?length?????
?260.????*/??????
?261.???public?Iterator?getInfos(String?text,?int?position,?int?length)?throws??????

?262.???????Exception?
{??????
?263.?????Iterator?iterator?=?null;??????
?264.?????String?queryString?=??????
?265.?????????"?select?info?from?Info?as?info?where?info.title?like?'%"?+?text?+??????
?266.?????????"%'?order?by?info.id?desc";??????
?267.??????
?268.?????//創建查詢??????
?269.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?270.?????//設置游標的起始點??????
?271.?????query.setFirstResult(position);??????
?272.?????//設置游標的長度??????
?273.?????query.setMaxResults(length);??????
?274.?????//記錄生成??????
?275.?????List?list?=?query.list();??????
?276.?????//把查詢到的結果放入迭代器??????
?277.?????iterator?=?list.iterator();??????
?278.?????return?iterator;??????
?279.???}??????
?280.??????
?281.???////////////////////////////////////////////////////////??????
?282.???/////????????????????????????????????????????????????///??????
?283.???/////?以下部份表中要有特定字段才能正確運行???注冊相關??????///??????
?284.???/////????????????????????????????????????????????????///??????
?285.???////////////////////////////////////////////////////////??????
?286.??????

?287.???/**?*//**?????
?288.????*?取符合條件記錄總數.[?表中要有?registername?字段]?????
?289.????*?@return?int?????
?290.????*?@param?String?text?????
?291.????*/??????

?292.???public?int?getInfosCountByRegisterName(String?registerName)?throws?Exception?
{??????
?293.?????int?count?=?0;??????
?294.?????count?=?((Integer)?getHibernateTemplate().iterate(??????
?295.?????????"select?count(*)?from?Info?as?info?where?info.registername?=?'"?+??????
?296.?????????registerName?+?"'").next()).intValue();??????
?297.?????return?count;??????
?298.???}??????
?299.??????

?300.???/**?*//**?????
?301.????*?通過注冊名取得一條記錄,如有多條,只取第一條.[表中要有?registername字段]?????
?302.????*?@param?registername?String?????
?303.????*?@return?Info?????
?304.????*/??????

?305.???public?Info?getInfoByRegisterName(String?registerName)?throws?Exception?
{??????
?306.?????Iterator?iterator?=?null;??????
?307.?????Info?info?=?null;??????
?308.?????String?queryString?=??????
?309.?????????"?select?info?from?Info?as?info?where?info.registername='"?+??????
?310.?????????registerName?+?"'?order?by?info.id?desc";??????
?311.?????//創建查詢??????
?312.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?313.?????//記錄生成??????
?314.?????List?list?=?query.list();??????
?315.?????//把查詢到的結果放入迭代器??????
?316.?????iterator?=?list.iterator();??????

?317.?????if?(iterator.hasNext())?
{??????
?318.???????info?=?(Info)?iterator.next();??????
?319.?????}??????
?320.?????return?info;??????
?321.???}??????
?322.??????

?323.???/**?*//**?????
?324.????*?通過注冊名取得所有記錄集合.[表中要有?registername字段]?????
?325.????*?@param?registername?String?????
?326.????*?@return?Iterator?????
?327.????*/??????
?328.???public?Iterator?getAllInfosByRegisterName(String?registerName)?throws??????

?329.???????Exception?
{??????
?330.?????Iterator?iterator?=?null;??????
?331.?????String?queryString?=??????
?332.?????????"?select?info?from?Info?as?info?where?info.registername='"?+??????
?333.?????????registerName?+?"'?order?by?info.id?desc";??????
?334.?????//創建查詢??????
?335.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?336.?????//記錄生成??????
?337.?????List?list?=?query.list();??????
?338.?????//把查詢到的結果放入迭代器??????
?339.?????iterator?=?list.iterator();??????
?340.?????return?iterator;??????
?341.???}??????
?342.??????

?343.???/**?*//**?????
?344.????*?通過注冊名取得記錄列表.[表中要有?registername字段]?????
?345.????*?@param?registername?String?????
?346.????*?@return?Iterator?????
?347.????*/??????
?348.???public?Iterator?getInfosByRegisterName(String?registerName,?int?position,??????

?349.??????????????????????????????????????????int?length)?throws?Exception?
{??????
?350.?????Iterator?iterator?=?null;??????
?351.?????String?queryString?=??????
?352.?????????"?select?info?from?Info?as?info?where?info.registername='"?+??????
?353.?????????registerName?+?"'?order?by?info.id?desc";??????
?354.?????//創建查詢??????
?355.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?356.?????//設置游標的起始點??????
?357.?????query.setFirstResult(position);??????
?358.?????//設置游標的長度??????
?359.?????query.setMaxResults(length);??????
?360.?????//記錄生成??????
?361.?????List?list?=?query.list();??????
?362.?????//把查詢到的結果放入迭代器??????
?363.?????iterator?=?list.iterator();??????
?364.?????return?iterator;??????
?365.???}??????
?366.??????
?367.???////////////////////////////////////////////////////////??????
?368.???/////????????????????????????????????????????????????///??????
?369.???/////?以下部份表中要有特定字段才能正確運行?????樹型版塊?????///??????
?370.???/////????????????????????????????????????????????????///??????
?371.???////////////////////////////////////////////////////////??????
?372.??????

?373.???/**?*//**?????
?374.????*?取記錄總數.[?表中要有?board_id?字段]?????
?375.????*?@return?int?????
?376.????*?@param?String?boardId?????
?377.????*/??????

?378.???public?int?getInfosCountByBoard(String?boardId)?throws?Exception?
{??????
?379.?????int?count?=?0;??????
?380.??????
?381.?????count?=?((Integer)?getHibernateTemplate().iterate(??????
?382.?????????"select?count(*)?from?Info?as?info?where?info.boardId?=?'"?+?boardId?+??????
?383.?????????"'").next()).intValue();??????
?384.??????
?385.?????return?count;??????
?386.???}??????
?387.??????

?388.???/**?*//**?????
?389.????*?通過版塊名取得所有記錄集合.[表中要有?board_id字段]?????
?390.????*?@param?BoardId?String?????
?391.????*?@return?Iterator?????
?392.????*/??????

?393.???public?Iterator?getAllInfosByBoard(String?boardId)?throws?Exception?
{??????
?394.?????Iterator?iterator?=?null;??????
?395.?????String?queryString?=?"?select?info?from?Info?as?info?where?info.boardId='"?+??????
?396.??????????????????????????boardId?+?"'?order?by?info.id?desc";??????
?397.?????//創建查詢??????
?398.?????Query?query?=?getHibernateTemplate().createQuery(getSession(),?queryString);??????
?399.?????//記錄生成??????
?400.?????List?list?=?query.list();??????
?401.?????//把查詢到的結果放入迭代器??????
?402.?????iterator?=?list.iterator();??????
?403.?????return?iterator;
come from : http://lpacec.javaeye.com/blog/46220









































































































































































































































































































































































































































































































