[应用架构] HQL 查询方式(传统方式和占位方式)

原创 2012年03月22日 08:57:49
在编写HQL语句的时候,有两种方式来写查询语句,下面我介绍两种查询方式。
1.传统方式进行查询
  1. String hql = " from User user  where user.department='"+department+"' and user.userName like '%"+userName+"%'"; // where user.department  = '"+department+"' order by user.department desc";
  2.          List<User> vList = this.getHibernateTemp().find(hql);
复制代码


2.占位方式,占位方式没有像传统方式那样把所有代码写在一条hql语句中,它将语句,参数,参数值三部分开来写,这样可读性比较好。这种方式建议采用。如下所示:
  1. //使用占位符的方式
  2.                      String hql = " from User user where user.department = :department  and user.userName like  :userName  ";
  3.                      String[] params = {"department","userName"};
  4.                        
  5.                 Object[] args = { department,"%"+userName+"%" };
  6.                         List<User> vList = getHibernateTemp().findByNamedParam(hql,  params, args);
复制代码

like语句用法比较典型。可以通过上面的例子得到其具体用法.

3.下面再采用一种方式来进行,不过这种方式在条件查询参数比较多的情况下不采用,如下面所示:
  1.   List<User> userList = super.findAll(User.class);


  2.   // 按姓名查询,模糊查询
  3.   if (!userName.isEmpty()) {

  4.    for (int i = 0; i < userList.size(); i++) {
  5.     
  6.     String tempUserName = userList.get(i).getUserName();

  7.     int index=tempUserName.indexOf(userName);

  8.     //System.out.println("%%%%%%%%%%:\t"+index);
  9. //                                if (index != 0 ) {

  10.      userList.remove(i);
  11.      i--;
  12.     }
  13.    }
  14.   }

  15.   // 按部门查询
  16.   if (!department.isEmpty()) {
  17.    for (int i = 0; i < userList.size(); i++) {
复制代码
注意:这种方式在参数查询比较多的情况不采用,而且第一次查询出所有的记录,包括不符合条件的也查询出来,然后再通过if语句过滤,这样占用太多时间。而上面的1,2方法正是对其所进行的改进。

(完,待续...........)

ZYNQ系列 传统方式移植linux

移植linux之传统方式在ZYNQ开发时,有些情况下,为了降低开发的复杂性,或是提升系统运行的性能,在ARM上跑一个linux系统往往是一个不错的选择,而且linux系统一般集成了一些常用的成熟驱动,...

java基础——多线程(两种传统方式)

一、创建线程的两种传统方式 1、在Thread子类覆盖的run方法中编写运行代码 new Thread(){ public void run(){ while(true){ try...
  • bao9107
  • bao9107
  • 2013年10月14日 17:28
  • 747

JSP+Servlet+JavaBean传统方式实现简易留言板制作(注册、登录、留言)

学JavaEE也有一段时间了,跟着老师和教材做了不少东西,但是一直以来没时间写博客,今天就把以前写的一个简易留言板简单发一下吧。 开发工具 主要用的开发工具为 MyEclipse(2014、201...

Struts2上面用传统方式来传递JSON

最近工作遇到JSON传值的问题,Struts2里面已经有对JSON配置的插件,暂时还没有去做实验,想用最传统的方式去传递JSON. JSON(JavaScript Object Notation...
  • ao_xun
  • ao_xun
  • 2013年09月04日 14:38
  • 426

18、关于drools Web版本kie-wb传统方式安装

第一步:安装jdk   这个不多说了。网上很多的方式。 第二步:下载tomcat 7 从官方下载就可以大小差不多是8M  并放到虚拟机上进行解压操作。最好修名为tomcat7 后面有用 第三步:引入相...

使用Spring(17)Spring中的定时调度(Scheduling)--传统方式创建Quartz任务

1.下载Quartz jar包

傻瓜式操作系统安装教程之二----XP传统方式的安装(现在基本不用了)

一、准备工作:1.准备好Windows XP Professional 简体中文版安装光盘4.如果你想在安装过程中格式化C盘或D盘(建议安装过程中格式化C盘),请备份C盘或D盘有用的数据到其他分区。5...

SSH之传统方式接入分布式会话(Spring Session)篇

背景由于项目业务发展越来越快,开发人员越来越多;导致传统一个项目模块开发方式效率低下并且系统性能瓶颈凸显慢慢需要考虑采用分布式/微服务体系进行解耦解决各种性能与效率的问题;但在分布式环境中会碰到各种各...

vim的插件配置文件夹的组织形式(传统方式)

vim传统的插件组织形式是将插件分拆为几个部分分别放到不同的目录,如下: (1)~/.vim/colors/ Vim将会查找~/.vim/colors/mycolors.vim并执行它。 这个文件应该...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[应用架构] HQL 查询方式(传统方式和占位方式)
举报原因:
原因补充:

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