DAO层小结2(查询)

原创 2004年09月08日 21:00:00

  /**
   * 查询功能点表
   * @param vo FuncNodeVO
   * @throws SysException
   * @throws AppException
   * @return List
   */
  public List findFuncNode(FuncNodeVO vo) throws
                  SysException, AppException {
          List list = findFuncNodePO(vo);
          ArrayList ret = new ArrayList();
          try {
                  if (list != null) {
                          PropertyCopy.PO2VO(list,ret);
                  }
          } catch (PropertyCopyException ex) {
            ex.printStackTrace();
                  throw new SysException("9000005",
                                  "FuncNodeDAO.findFuncNode():PropertyCopyException", ex);
          }
          return ret;
  }

  /**
   * 根据一定条件查询PartyRel表的数据
   * @param vo FuncNodeVO
   * @throws SysException
   * @throws AppException
   * @return List
   */

  private List findFuncNodePO(FuncNodeVO vo) throws
                  SysException, AppException {
          String hql = constructHql(vo);
          Query query = null;
          try {
                  query = session.createQuery(hql);
          } catch (HibernateException ex) {
                  throw new SysException("9000004",
                                  "FuncNodeDAO.findFuncNodelPO():生成功能点表查询对象出错", ex);
          }
          try {
                  return query.list();
          } catch (HibernateException ex) {
                  throw new SysException("9000004",
                                  "FuncNodeDAO.findFuncNodelPO():查询功能点表记录出错", ex);
          }

  }

  /**
  * 构造Hql
  * @param vo FuncNodeVO 包含查询条件
  * @param flag String 查询新旧记录标志
  * @throws SysException
  * @throws AppException
  * @return String 返回Hql
  */
 private String constructHql(FuncNodeVO vo) throws
                 SysException, AppException {
         String hql = "from FuncNode as a where ";
         if (vo.getFuncNodeId() != null) {
                 hql = hql + "a.funcNodeId='" + vo.getFuncNodeId() + "' and ";
         }
         if (vo.getFuncNodeCode() != 0 ) {
                 hql = hql + "a.funcNodeCode='" + vo.getFuncNodeCode() + "' and ";
         }
         if (vo.getFuncNodeName() !=null ){
           hql = hql + "a.funcNodeName='" + vo.getFuncNodeName() + "' and ";
         }
         if (vo.getSubSystemName() != null) {
                 hql = hql + "a.subSystemName='" + vo.getSubSystemName() + "' and ";
         }
         if ( vo.getFuncNodeType() !=null ) {
                 hql = hql + "a.funcNodeType='" + vo.getFuncNodeType() + "' and ";
         }
         if (vo.getNodeTreeId() != null ){
                 hql = hql + "a.nodeTreeId='" + vo.getNodeTreeId() + "' and ";
         }


         if (hql.endsWith("where ")) {
                 hql = hql.substring(0, hql.length() - 6);
         } else {
                 hql = hql.substring(0, hql.length() - 4);
         }
         return hql;
 }

通用型Dao层简单化查询通用方法

与hibernate的Critical类似,是一种通用的Dao层简单化查询通用方法,是我在13年刚接触hibernate的,因为当时的业务性质,需要频繁的简单查询,但我还不知Critical,所以编写...
  • liuyuqin1991
  • liuyuqin1991
  • 2015年03月19日 11:22
  • 1044

关于DAO 模糊查询的小记

本来是很简单的功能啦。有段时间没有接触了,现在重新丢出来,哪怕很简单,以后有时间看到自己的成长历程也是一种幸事,更能珍惜成长的过程和感悟吧!人生一世,总得给自己一个过得去的交代不是! 废话不多说,上...
  • qq_20380415
  • qq_20380415
  • 2017年04月05日 14:36
  • 765

DAO,如何实现模糊查询

定义一个DAO public class DAO { private QueryRunner queryRunner = new QueryRunner(); private Class ...
  • chuck_kui
  • chuck_kui
  • 2016年03月14日 14:42
  • 2980

反射与泛型--徒手教你写个Android数据库Dao层玩玩

最近一直在忙项目数据库重构,需求是把所有的内容提供者以及对数据库的操作都换成Orm(Object Relational Mapping)关系对象关系映射。期间遇到非常多的问题,于是乎把数据库的orm的...
  • qq_29282475
  • qq_29282475
  • 2015年12月31日 16:11
  • 4024

dao接口层抽取增删改查方法

简介 公共接口: public interface IBaseDao { /* * 保存实体 */ void save (T entity); /* * 删除实体 ...
  • caoyujiao520
  • caoyujiao520
  • 2017年03月25日 13:05
  • 776

java Dao层对数据库操作总结

一、获取数据库连接 Connection con = null; try{     con =this.getSessionFactory.getCurrentSession().connection...
  • u011300808
  • u011300808
  • 2016年06月12日 10:51
  • 2160

数据持久层DAO的建立和使用,实现数据库的连接

//DAO接口 package ex3; import java.sql.Connection; public interface DAO { public Connection getConnec...
  • sanganqi_wusuierzi
  • sanganqi_wusuierzi
  • 2017年02月03日 22:59
  • 1290

常用的增删改查的实现之dao层

public interface IFoodTypeDao { //增 输入:一个对象 输出:无 void add //删 输入:id 输出:无 void delet...
  • stupid_Java_learner
  • stupid_Java_learner
  • 2016年07月07日 21:47
  • 2004

DAO层,Service层,Controller层、…

DAO层 DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此...
  • u010971181
  • u010971181
  • 2016年01月26日 14:59
  • 3738

Action层, Service层 ,modle层 和 Dao层的功能区分

来源:http://www.xuebuyuan.com/2153333.html Action主要的功能就是组织service的,比如你要做权限验证,那么请求会被Action获取,那么如何验证呢...
  • GCF123123
  • GCF123123
  • 2015年07月14日 11:35
  • 3230
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DAO层小结2(查询)
举报原因:
原因补充:

(最多只允许输入30个字)