`

java 树形结构设计(四) Struts + Hibernate

    博客分类:
  • JAVA
阅读更多

step 8: 数据访问类DAO

java 代码
  1. /**  
  2.  * 地理信息           
  3.  */  
  4. package com.fzfx88.base.service;   
  5.   
  6. import java.util.List;   
  7.   
  8. import org.apache.commons.logging.Log;   
  9. import org.hibernate.Criteria;   
  10. import org.hibernate.Hibernate;   
  11. import org.hibernate.HibernateException;   
  12. import org.hibernate.Query;   
  13. import org.hibernate.Session;   
  14. import org.hibernate.Transaction;   
  15. import org.hibernate.criterion.Order;   
  16. import org.hibernate.criterion.Restrictions;   
  17.   
  18. import com.fzfx88.common.UserInfo;   
  19. import com.fzfx88.common.util.DateUtility;   
  20. import com.fzfx88.common.util.LogUtil;   
  21. import com.fzfx88.po.base.DimGeography;   
  22. import com.fzfx88.util.HibernateUtil;   
  23.   
  24. /**  
  25.  * @author huguoqing  
  26.  *   
  27.  */  
  28. public class GeographyService {   
  29.     Log log = LogUtil.getLoger(OrgService.class);   
  30.   
  31.     /**  
  32.      * 取得当前所有的地理信息  
  33.      *   
  34.      * @return  
  35.      */  
  36.     public List queryGeography() {   
  37.         List graphyList = null;   
  38.         Session session = HibernateUtil.currentSession();   
  39.         try {   
  40.             Query query = session   
  41.                     .createQuery("from DimGeography o where o.usageFlag='1' order by o.id");   
  42.             graphyList = query.list();   
  43.         } catch (HibernateException e) {   
  44.             log.error(e.getMessage());   
  45.         } finally {   
  46.   
  47.             HibernateUtil.closeSession();   
  48.         }   
  49.         return graphyList;   
  50.     }   
  51.     public List queryGeoByLevelId(Integer levelId,Integer parentGeo) {   
  52.         List graphyList = null;   
  53.         Session session = HibernateUtil.currentSession();   
  54.         try {   
  55.   
  56.             Criteria crit = session.createCriteria(DimGeography.class);   
  57.             crit.add(Restrictions.eq("geographyLevel",levelId));   
  58.             crit.add(Restrictions.eq("parentGeo",parentGeo));   
  59.             crit.add(Restrictions.eq("usageFlag","1"));   
  60.             graphyList = crit.list();   
  61.         } catch (HibernateException e) {   
  62.             e.printStackTrace();   
  63.             log.error(e.getMessage());   
  64.         } finally {   
  65.   
  66.             HibernateUtil.closeSession();   
  67.         }   
  68.         return graphyList;   
  69.     }   
  70.      public List queryGeoByLevelId(Integer levelId) {   
  71.             List graphyList = null;   
  72.             Session session = HibernateUtil.currentSession();   
  73.             try {   
  74.   
  75.                 Criteria crit = session.createCriteria(DimGeography.class);   
  76.                 crit.add(Restrictions.eq("geographyLevel",levelId));   
  77.                 crit.add(Restrictions.eq("usageFlag","1"));   
  78.                 graphyList = crit.list();   
  79.             } catch (HibernateException e) {   
  80.                 e.printStackTrace();   
  81.                 log.error(e.getMessage());   
  82.             } finally {   
  83.   
  84.                 HibernateUtil.closeSession();   
  85.             }   
  86.             return graphyList;   
  87.         }   
  88.     /**  
  89.      * 根据地理信息的英文名称模糊查询  
  90.      * @param geoName  
  91.      * @return  
  92.      */  
  93. public List queryGeoListByGeoNameEn(String geoName,String geoLevel){   
  94.     List graphyList = null;   
  95.     Session session = HibernateUtil.currentSession();   
  96.     try {   
  97.   
  98.         Criteria crit = session.createCriteria(DimGeography.class);   
  99.         crit.add(Restrictions.eq("usageFlag","1"));   
  100.         crit.add(Restrictions.eq("geographyLevel",Integer.valueOf(geoLevel)));   
  101.         crit.add(Restrictions.like("geographyNameEn","%"+geoName+"%"));   
  102.         graphyList = crit.list();   
  103.     } catch (HibernateException e) {   
  104.         e.printStackTrace();   
  105.         log.error(e.getMessage());   
  106.     } finally {   
  107.   
  108.         HibernateUtil.closeSession();   
  109.     }   
  110.     return graphyList;   
  111. }   
  112.     /**  
  113.      * 根据获得的父id,查村当前id下所有的字节点地理信息  
  114.      *   
  115.      * @param parentGeographyId  
  116.      * @param usageFlag  
  117.      * @return  
  118.      */  
  119.     public List queryGeographyByParentId(int parentGeographyId, String usageFlag) {   
  120.         List graphyList = null;   
  121.         Session session = HibernateUtil.currentSession();   
  122.         try {   
  123.   
  124.             Criteria crit = session.createCriteria(DimGeography.class);   
  125.             crit.add(Restrictions.eq("parentGeo",   
  126.                     new Integer(parentGeographyId)));   
  127.             crit.add(Restrictions.eq("usageFlag", usageFlag));   
  128.             crit.addOrder(Order.desc("geoTreeCode"));   
  129.             graphyList = crit.list();   
  130.         } catch (HibernateException e) {   
  131.             e.printStackTrace();   
  132.             log.error(e.getMessage());   
  133.         } finally {   
  134.   
  135.             HibernateUtil.closeSession();   
  136.         }   
  137.         return graphyList;   
  138.     }   
  139.   
  140.     /**  
  141.      * 根据当前获得的地理信息id,取得地理信息相关信息  
  142.      *   
  143.      * @param graphyId  
  144.      * @return  
  145.      */  
  146.     public DimGeography queryGeography(Integer graphyId) {   
  147.         DimGeography graphy = new DimGeography();   
  148.         Session session = HibernateUtil.currentSession();   
  149.         try {   
  150.             graphy = (DimGeography) session.load(DimGeography.class, graphyId);   
  151.   
  152.         } catch (HibernateException e) {   
  153.             e.printStackTrace();   
  154.             log.error(e.getMessage());   
  155.         } finally {   
  156.             HibernateUtil.closeSession();   
  157.         }   
  158.         return graphy;   
  159.     }   
  160.        
  161.     /**  
  162.      * 新建 地理信息  
  163.      * @param po  
  164.      */  
  165.     public void createGeography(DimGeography po,UserInfo user) {   
  166.         Session session = HibernateUtil.currentSession();   
  167.         Transaction tx = null;   
  168.         po.setCreateBy(user.getEmployeeName());   
  169.         po.setCreateDate(DateUtility.getCurrentDate());   
  170.         po.setLastupdateBy(user.getEmployeeName());   
  171.         po.setLastupdateDate(DateUtility.getCurrentDate());   
  172.         po.setUsageFlag("1");   
  173.         try {   
  174.             tx = session.beginTransaction();   
  175.             session.save(po);   
  176.             tx.commit();   
  177.             session.flush();   
  178.         } catch (HibernateException e) {   
  179.             log.error(e.getMessage());   
  180.         } finally {   
  181.             HibernateUtil.closeSession();   
  182.         }   
  183.     }   
  184.     /**  
  185.      * 更新地理信息  
  186.      * @param vo  
  187.      */  
  188.     public void updateGeography(DimGeography vo,UserInfo user) {   
  189.         Session session = HibernateUtil.currentSession();   
  190.         Transaction tran = null;   
  191.         try {   
  192.             tran = session.beginTransaction();   
  193.   
  194.             vo.setLastupdateBy(user.getEmployeeName());   
  195.             vo.setLastupdateDate(DateUtility.getCurrentDateTime());   
  196.   
  197.             session.update(vo);   
  198.   
  199.             tran.commit();   
  200.             session.flush();   
  201.         } catch (HibernateException e) {   
  202.             if (tran != null) {   
  203.                 tran.rollback();   
  204.             }   
  205.             log.error(e.getMessage());   
  206.         } finally {   
  207.             HibernateUtil.closeSession();   
  208.         }   
  209.     }   
  210.     public DimGeography retrieveOrgByTreeCode(String geoTreeCode){   
  211.         Session session = HibernateUtil.currentSession();   
  212.         Transaction tx = null;   
  213.         DimGeography geographyPo = null;   
  214.         try {   
  215.             tx = session.beginTransaction();   
  216.             Query query = session.createQuery("from DimGeography c where c.geoTreeCode=:geoTreeCode and c.usageFlag='1'");   
  217.             query.setParameter("geoTreeCode",geoTreeCode);   
  218.             geographyPo=(DimGeography)query.uniqueResult();   
  219.             if (Hibernate.isInitialized(geographyPo)) {   
  220.                 Hibernate.initialize(geographyPo);   
  221.             }   
  222.         } catch (HibernateException e) {   
  223.             if (tx != null) {   
  224.                 tx.rollback();   
  225.             }   
  226.             log.error(e.getMessage());   
  227.         } finally {   
  228.             HibernateUtil.closeSession();   
  229.         }   
  230.         return geographyPo;        
  231.  }   
  232.        
  233.     public DimGeography retrieveOrgByTreeCode(String treeCode,int treeCodeNum){   
  234.         DimGeography geo = null;   
  235.         geo = this.retrieveOrgByTreeCode(treeCode.substring(0,treeCodeNum*3));   
  236.         return geo;        
  237.     }   
  238. }   

 

分享到:
评论

相关推荐

    struts+hibernate树形菜单

    3. **获取树形数据**:在服务层(Service层),使用Hibernate的HQL(Hibernate查询语言)或SQL查询语句,检索所有菜单,并按照父ID进行排序,构建出树形结构。可以使用递归方法或者预加载子菜单的方式来实现。 4. *...

    java+Struts+Hibernate实现的无限级树菜单

    前端通常使用JavaScript库(如jQuery、Bootstrap Treeview、AngularJS等)来呈现树形结构。这些库提供了方便的API来动态加载和操作树节点。在本项目中,可能会利用JSP页面结合JavaScript来渲染树形菜单。 6. **...

    Struts+Hibernate+Javascript 实现人无限级分类树形菜单

    Struts+Hibernate+Javascript 实现人无限级分类树...主要是用到了Struts+Hibernate+JSTL1.1和自定义标签,树形菜单节点用 JavaScript控制显示,菜单结构由数据库中的字段区分,测试数据是通过TestMain.java插入数据库的

    extjs+spring+struts+hibernate

    **ExtJS** 是一个用于构建桌面和移动Web应用程序的JavaScript库,提供了丰富的组件库,如表格、图表、表单、树形结构等,以及强大的数据管理和布局系统。它的使用可以让开发者创建出具有现代UI设计的复杂Web应用。 ...

    struts2+spring+hibernate+easyui管理框架

    Struts2+Spring+Hibernate+EasyUI 是一个经典的Java Web开发框架组合,广泛应用于企业级应用的构建。这个管理系统利用这些技术的特性,提供了一种高效、稳定且易于维护的解决方案。 **Struts2** 是一个强大的MVC...

    spring+struts2+hibernate+json+dtree+mysql实现的无限级联树(全)

    5. **dTree插件**:dTree是一款基于JavaScript的可折叠树形菜单组件,用于在网页上显示层次结构的数据。在本项目中,前端可能利用dTree来展示从服务器获取的JSON数据,实现动态的、可交互的无限级联树视图。 6. **...

    图书管理系统(struts+hibernate+spring+ext)130221.zip

    在图书管理系统中,Ext用于构建用户界面,包括表格、树形结构、表单等,通过Ajax技术与后台进行异步通信,提供流畅的用户体验。Ext的组件化开发方式使得前端代码结构清晰,易于维护和扩展。 这四个框架的结合使用,...

    extjs+struts+hibernate+spring(物流管理系统)-part3

    【标题】"extjs+struts+hibernate+spring(物流管理系统)-part3" 提供的是一个基于Java技术栈的物流管理系统实现,主要利用了ExtJS作为前端框架,Struts作为MVC框架,Hibernate作为ORM工具,以及Spring作为整体应用的...

    struts+hibernate+spring+ext

    ExtJS 是一个用于构建富客户端(Rich Internet Applications,RIA)的JavaScript库,它提供了一系列组件,如表格、树形结构、窗口、菜单等,用于创建复杂的、交互性强的Web界面。ExtJS 使用 MVC 架构,并且有强大的...

    Struts+Spring+Hibernate+ExtJs毕业系统

    它的组件包括表格、表单、树形结构、面板、图表等,能实现复杂的布局和数据展示。 在"Struts+Spring+Hibernate+ExtJs毕业系统"中,Struts 负责接收和处理用户请求,Spring 管理业务对象和事务,Hibernate 处理...

    权限管理struts2+spring+hibernate easyui

    它提供了大量的预定义样式和组件,如表格、树形结构、对话框等,帮助开发者快速创建美观且响应式的界面。在权限管理系统的视图层,EasyUI可以帮助展示用户权限、角色分配等信息,提供友好的用户交互体验。 这个系统...

    图书管理系统(struts+hibernate+spring+ext)130221.rar

    本资源"图书管理系统(struts+hibernate+spring+ext)130221.rar"提供了一个完整的基于Java Web的图书管理系统实现,采用经典的SSH(Struts、Hibernate、Spring)框架和EXT前端技术,旨在帮助计算机专业的学生进行毕业...

    Spring+Struts+hibernate+Extjs的客户关系管理系统源代码

    在CRM系统中,它提供了丰富的UI组件,如表格、表单、树形结构等,使得界面更加直观和交互性强。通过Ajax技术,ExtJS实现了页面数据的异步加载,提升了用户体验。 该CRM系统可能包含以下主要功能模块: 1. 客户管理...

    dtree树 struts1+hibernate+dtree

    至于"treeTest"这个文件,可能是项目中的测试用例或者包含了一个简单的树形结构的示例,用于验证dtree的正确显示和操作功能。在实际开发中,测试是非常重要的环节,确保各个部分的功能正常运行并能适应各种情况。 ...

    Struts+Spring+Hibernate+ExtJs学生学籍系统毕业设计

    Struts+Spring+Hibernate+ExtJs学生学籍系统毕业设计是一个综合性的项目,它整合了四个关键的技术框架,用于构建高效、稳定且易于维护的Web应用程序。这些技术分别是: 1. **Struts**:这是一个基于MVC(Model-View...

    图书管理系统(struts+hibernate+spring+ext)101毕业设计—(包含完整源码可运行).rar

    Ext JS是一个用于构建富客户端Web应用的JavaScript库,提供了丰富的UI组件,如表格、树形结构、表单等。在本系统中,Ext被用来构建用户友好的界面,提供直观的交互体验,例如图书列表展示、搜索功能、借阅操作等。 ...

    JSP源码 图书管理系统(struts+hibernate+spring+ext).zip

    《JSP源码 图书管理系统(struts+hibernate+spring+ext)》是一个基于Java技术的开源图书管理系统,它整合了四大主流框架——Struts、Hibernate、Spring以及Ext,构建了一个高效、灵活且功能丰富的后台管理平台。...

    Struts2+Spring3+Hibernate4+Maven+EasyUI

    Struts2+Spring3+Hibernate4+Maven+EasyUI 是一个常见的Java Web开发组合,它们各自扮演着关键的角色,构建了一个高效、模块化的应用程序架构。这个组合在企业级应用中广泛使用,尤其是在数据管理、业务逻辑处理和...

Global site tag (gtag.js) - Google Analytics