hql Hibernate.gethibernatetemplate()

1. find(String hql);  //普通查询

   示例:this.gethibernateTemplate().find("from User");

 

2. find(String hql,Object value);//一个查询条件

   示例:this.gethibernateTemplate().find("from User u where u.name=?","test");

 

3. find(String hql,Object[] values);// 多个查询条件

   示例:this.gethibernateTemplate().find("from User u where u.name=? and u.pwd=?",new String[]{"test","123"});

4. findByExample(Object exampleEntity,int firstResult, int maxResults)//分页使用

   示例:

   User user= new User(); u.setActive("Active");

   List list=this.getHibernateTemplate().findByExample(user,firstResult,maxResults);  

   查询结果:状态为Active的用户(对象从0到20 计数)  

 

5. findByNamedParam(String hql,String paramName,Object value); //一个查询条件

   示例:

   hql="from User u where u.name=:parName ";

   paramName= "parName";

   value="bb"

   List list = this.getHibernateTemplate.findByNamedParam(hql,paramName,value);

   查询结果:姓名为bb的用户

 

6. findByNamedParam(String queryString , String[] paramName , Object[] value) //多个查询条件

   示例:

   hql="from User u where u.name=:myname and u.pwd =:mypwd ";

   String[] paramName= new String[]{"myname","mypwd"};

   Sring[] value=new Strign[]{"bb","123"};

   List list = this.getHibernateTemplate.findByNamedParam(hql,paramName,value);

   查询结果:姓名为bb密码为123的用户

 

7.分页HQL示例

   public List excuteHqlPage(final String hqlStr, final int startRow,final int rowCount) throws DaoException {

   List<Object[]> list;

   try {

       list = getHibernateTemplate().executeFind(new HibernateCallback() {

       public Object doInHibernate(Session session)

       throws HibernateException, SQLException {

       org.hibernate.Query query = (org.hibernate.Query) session.createQuery(hqlStr);

       query.setFirstResult(startRow);// 定义从第几条开始查询

       query.setMaxResults(rowCount);// 定义返回的记录数

       List list = query.list();

       return list;

     }

    });

   } catch (Exception e) {

   throw new DaoException(DaoException.ERRORCODE_EXCUTEHQL);

   }

return list;

}

 

8. 根据HQL/SQL 查询

   public List queryByHql(final String hql, final Object[] prams,final String sql) {

     return (List)  getHibernateTemplate().execute(new HibernateCallback(){

       public Object doInHibernate(Session session)

         throws HibernateException, SQLException {

            if(hql!=null && hql.length()>0){

           Query query=session.createQuery(hql);

           if(prams!=null && prams.length>0){

           for(int i=0;i<prams.length;i++){

           query.setParameter(i,prams[i]);

         }

      }

     return query.list();

   }else{

   SQLQuery sqlquery=session.createSQLQuery(sql);

   return sqlquery.list();

 }

}

});

}

 

9. 保存/更新

   public String saveOrUpdateObject(ISuperVO vo) throws DaoException {

     try {

         String id = null;

         if (StringUtil.isEmpty(vo.getPid())) {

            getHibernateTemplate().save(vo);

        } else {

           getHibernateTemplate().merge(vo);

       }

        id = vo.getPid();

        return id;

     } catch (Exception e) {

          e.printStackTrace();

}

}

 

10. getHibernateTemplate().delete(vo);  //删除

 

11. 根据条件删除

   public Integer deleteObjectsByWherePart(final Class voClass,final String wherePart, final Object[] parmaters)throws DaoException {

   try {

      Integer count = (Integer) getHibernateTemplate().execute( new HibernateCallback() {

     public Object doInHibernate(Session session)throws HibernateException, SQLException {

     Integer coun = null;

     String hql = "delete from " + voClass.getName()+ " where 1=1 ";

     if (wherePart != null && wherePart.trim().length() > 0) {

         hql = hql + " and " + wherePart;

     }

     Query query = session.createQuery(hql);

     Object obj = null;

     if (parmaters != null && parmaters.length > 0) {

         for (int i = 0; i < parmaters.length; i++) {

            obj = parmaters[i];

           query.setParameter(i, obj);

        }

      }

     coun = query.executeUpdate();

     return coun;

    }

   });

   return count;

  } catch (Exception e) {

  e.printStackTrace();

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件项目组织管理(五)项目范围管理

范围管理的重要性 软件企业与IT项目应用企业信息化成功的基本保证是对项目范围的确切圈定&#xff0c;维持必须强调&#xff1a; 三类人的获取 需求专家咨询专家概要设计专家 三要素的把握 企业需求管理理论竞争压力 什么是范围 指开展项目产品所包括的所有工作及产生这些…

kmp算法讲解

转自——http://blog.csdn.net/v_july_v/article/details/7041827 看到kmp是不是立即想到(*ο*) 哇&#xff5e;&#xff0c;那个东西啊&#xff0c;就是拿来放电影的那个啊&#xff01; 哦&#xff0c;但是这里我们说的并不是那个东西&#xff0c;身为一名C选手&#xff0c;我…

TLS/SSL协议工作原理

1、TLS/SSL的功能实现原理简单介绍 HTTPS协议的主要功能基本都依赖于TLS/SSL协议,TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的…

实现DDD领域驱动设计: Part 4

原文链接: https://dev.to/salah856/implementing-domain-driven-design-part-iv-29m2对象到对象映射当两个对象具有相同或相似的属性时&#xff0c;自动对象到对象映射是一种将值从一个对象复制到另一个对象的有用方法。DTO和实体类通常具有相同/相似的属性&#xff0c;你通常…

输入输出及注意事项

输入输出命令&#xff1a; 输入函数scanf&#xff1a;在控制台接收指定格式的键盘输入&#xff0c;并将输入内容置于指定变量内存地址中&#xff1b;【格式&#xff1a;scanf(“格式化说明符”, 指定变量内存地址)&#xff1b;】 格式&#xff1a; scanf(“%d”,&x);注意&…

软件项目组织管理(六)项目时间管理

文章目录项目计划和进度计划什么是活动活动清单活动属性里程碑时间管理的过程1. 活动定义2. 活动排序三种依赖关系箭线图法&#xff08;ADM&#xff09;/双代号网络&#xff08;AOA&#xff09;前导图法&#xff08;PDM&#xff09;/单代号网络&#xff08;AON&#xff09;3. 活…

win7开机按F8后,为什么没有修复计算机的选项

有时win7开机按F8后&#xff0c;没有修复计算机的选项本文将向大家介绍如何通过 Windows 7自带的“配置 Windows 恢复环境(RE)”命令 – ReagentC.exe&#xff0c;启用“高级启动选项”下的“修复计算机”选项。单击 Windows 开始图标&#xff0c;在“搜索程序和文件”输入框中…

TLS/SSL握手过程

参考了:https://www.wosign.com/faq/faq2016-0309-04.htm 1、握手与密钥协商过程 基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。 (1).client_hello 客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩…

《我的视频我做主:Premiere Pro CS5实战精粹》——第一部分 基础篇 第1章 非线性剪辑基础 1.1 认识非线性剪辑...

本节书摘来自异步社区《我的视频我做主&#xff1a;Premiere Pro CS5实战精粹》一书中的第1章&#xff0c;第1.1节&#xff0c;作者 拍客三人行&#xff0c;姜岩&#xff0c;赵小虎&#xff0c;周权虎&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 第一部…

FluentValidation在C#中是怎么进行数据验证的

介绍FluentValidation 是一个基于 .NET 开发的验证框架&#xff0c;用于构建强类型验证规则的 .NET 库。开源免费支持 .Net所有平台 包括.NetFramework和.NetCore.FluentValidation 组件内提供十几种常用验证器&#xff0c;可扩展性好&#xff0c;支持自定义验证器&#xff0c;…

基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用...

Bootstrap文件上传插件File Input是一个不错的文件上传控件&#xff0c;但是搜索使用到的案例不多&#xff0c;使用的时候&#xff0c;也是一步一个脚印一样摸着石头过河&#xff0c;这个控件在界面呈现上&#xff0c;叫我之前使用过的Uploadify 好看一些&#xff0c;功能也强大…

查看某个端口是否链接超时

def curl_tyt(port):bufcStringIO.StringIO()ccpycurl.Curl()cc.setopt(cc.URL,http://10.67.21.11)cc.setopt(cc.WRITEFUNCTION,buf.write)cc.setopt(cc.CONNECTTIMEOUT,5)cc.setopt(cc.TIMEOUT,8)cc.setopt(cc.PROXY,http://10.67.21.11:%s%port)cc.perform()转载于:https://…

软件项目组织管理(七)项目成本管理

文章目录什么是成本什么是项目成本学习曲线理论储备金什么是项目成本管理目的过程成本估算成本估算的工具和技术成本预算主要工作成本估算和成本预算的关系和区别成本管理的工具方法净现值投资回报率挣值分析法什么是成本 为达到一个特定目标而花费的资源。 什么是项目成本 …

linux之lsof查看端口占用情况

1、lsof解释 lsof&#xff0c;它对应于“list open files”&#xff08;列出打开的文件&#xff09; 2、losf查看端口占用情况 lsof -i:port

大话领域驱动设计——简介

如果说当下最热门的技术概念或架构思想&#xff0c;那么领域驱动设计&#xff08;DDD&#xff09;一定占有一席之地。上个系列&#xff0c;我讲了ABP vNext框架在微服务架构下的落地思路&#xff0c;而ABP vNext是基于DDD思想的完整框架之一&#xff0c;同时DDD也是微服务架构服…

DOCKER存储驱动之DEVICE MAPPER简介

Device Mapper是一个基于kernel的框架&#xff0c;它增强了很多Linux上的高级卷管理技术。Docker的devicemapper驱动在镜像和容器管理上&#xff0c;利用了该框架的超配和快照功能。为了区别&#xff0c;本文使用Device Mapper指驱动中的框架&#xff0c;而devicemapper指Docke…

easyui datagrid plunges 扩展 插件

项目使用 springmvc4.x spring4.x hibernate4.x easyui 为了便于开发&#xff0c;扩展了easyui 的 datagrid 功能&#xff0c;下面直接贴上扩展代码&#xff1a; /*** context 指定为 项目上下文* index 如果定义多组dataGrid&#xff0c;index指定为对应的参数&#xff1a;一…

软件项目组织管理(八)项目质量管理

文章目录软件质量的重要性对质量的认识传统的认识新的认识质量与等级什么是质量什么是质量管理什么是软件质量软件项目管理的目标质量管理的过程质量管理发展的四个阶段戴明改进循环&#xff08;PDCA循环&#xff09;项目质量计划编制方法——质量标杆法影响项目质量的因素(5M1…

Ctrl与Caps Lock键的交换

转自&#xff1a;http://www.xiaozhou.net/exchange_ctrl_and_capslock_key-2012-07-20.html 感谢博主。 要换就把所有电脑的键位都换过来&#xff0c;不然反而容易出错。 转载记录一下&#xff0c;防止以后重装系统转载于:https://www.cnblogs.com/bugtags/p/4775886.html

最近的状态

现在都25岁了&#xff0c;马上要26岁了&#xff0c;最近人特别浮躁&#xff0c;什么都不想学&#xff0c;什么都不想做&#xff0c;感觉整个人都不在状态&#xff0c;这样下去肯定会被淘汰&#xff0c;调整好心态&#xff0c;调整好状态&#xff0c;冷静下来&#xff0c;保持危…