转自:https://blog.csdn.net/lxf512666/article/details/52820368

hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性

sql是面向数据库表查询,格式:from + 表名 + where + 表中字段

在hibernate中使用原生sql查询

例如:

public User login(User user) throws Exception {
String sql = "select id,name,password,phone,address,email,regDate"
+ " from user as u where u.name = ? and u.password = ?";
Session session = sessionFactory.openSession();
SQLQuery sqlQuery = session.createSQLQuery(sql);
sqlQuery.setString(0, user.getName());
sqlQuery.setString(1, user.getPassword());
sqlQuery.addEntity(User.class);
Object obj = sqlQuery.uniqueResult();
session.close();
if (obj == null)
return null;
return (User) obj;
}

在hibernate中使用hql查询

例如:

public void modifyUserById(User user) {
Session session =
HibernateSessionFactory.getSession();
Transaction transaction =
session.beginTransaction();
String hql = "update User as u set u.userName = ?
,u.passWord = ? ,u.sex = ? where u.id = ? "; Query query = session.createQuery(hql);
query.setCacheable(false); query.setString(0, user.getUserName());
query.setString(1, user.getPassWord());
query.setString(2, user.getSex());
query.setString(3, user.getId()); System.out.println("执行了啊" + user.getUserName() +
user.getId()); query.executeUpdate();
transaction.commit();
session.flush();
session.close();
}

注意:在hibernate中占位符“?”填充参数下表从 0开始。

JDBC填充时占位符从1开始。

hibernate中给参数起别名方法填充 
List users = session.createQuery(“select u.id, u.name 
from User u where u.name 
like :myname and u.id=:myid”).setParameter(“myname”, “%张%”).setParameter(“myid”, 1) .list();

定义命名参数固定格式: :+参数名称(即:myid ),赋值时,直接写参数名即可: setParameter(“myid”, 1)

sql和hql的区别的更多相关文章

  1. NHibernate初学二之简单执行SQL及HQL、Linq

    上篇文章简单介绍NHibernate之简单增删改查,本文将会简单介绍有关执行NHibernate的SQL.HQL及存储过程: 一:执行SQL语句实例,运用CreateSQLQuery方法 public ...

  2. paip.取当天记录的方法sql跟hql hibernate

    paip.取当天记录的方法sql跟hql hibernate #------两个方法...函数法和日期计算法.. 函数法: DATEDIFF(d,createTime,GETDATE())=0   / ...

  3. sql datalength与len区别用法

    原文:sql datalength与len区别用法 len ( string_expression )参数:要计算的字符串 len() 函数len 函数返回文本字段中值的长度. sql len() 语 ...

  4. 数据库 --> SQL 和 NoSQL 的区别

    SQL 和 NoSQL 的区别   一.概念 SQL (Structured Query Language) 数据库,指关系型数据库.主要代表:SQL Server,Oracle,MySQL(开源), ...

  5. SQL、HQL、JPQL、CQL的对比

    SQL:全称结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统:同时也是数据 ...

  6. SQL和HQL 区别浅析!!!

    hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性 sql是面向数据库表查询,格式:from + 表名 + where + 表中字段 1.查询 一般在hiber ...

  7. Hibernate HQL和原生SQL查询的一点区别

    1.createSQLQuery 1.1默认查询的结果为BigDecimal 1.2通过addScalar("CGD_ID", StandardBasicTypes.LONG)可以 ...

  8. Oracle、Mysql、Sql Server语句的区别

    1.空值的处理——判断是否为空,为空时取一个值,不为空时取另一个值 1).Sql Server 中 ISNULL(check_expression,replacement_value) 解释:如果ch ...

  9. 统计数据方面SQL与HQL

    因为HQL是面向对象的,所以对于统计数据方面使用HQL时不合适的,其实HQL最终还是会转化成SQL语句,项目里使用HQL语句应该是为了标准规范化. 统计的数据:同一个表,同一个字段,不同属性,统计不同 ...

随机推荐

  1. 深入理解Javascript window对象

    首先看我们的源代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...

  2. js改变iframe 的src地址

    <script> function dizhi(){ document.getElementById("aaa").src='http://www.sohu.com' ...

  3. python3 map,filter和列表推导式

    num_list = [11,2,-33,10,7,3,5,43] 1.filter  函数 获取num_list大于5的元素,并返回列表 用lambda表达式实现: # 在python2 中 fil ...

  4. Android -- Interpolator

    Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等. ...

  5. 【大数据】MongoDB安装(转)

    https://note.youdao.com/share/?id=40be7f77434910e8860c5fd1ef5d24fe&type=note#/ MongoDB安装 环境 Cent ...

  6. c#:判断一个数组元素中否有重复元素

    给定一个数组,判定该数组中是否有重复元素. 判定该数组中是否有重复元素总结出以下实现方案: using System; using System.Collections.Generic; using ...

  7. 个人知识点总结——Java并发

    Java并发实在是一个非常深的问题,这里仅仅简单记录一下Java并发的知识点.水太深.假设不花大量的时间感觉全然hold不住,可是眼下的精力全然不够,兴趣也不在这 什么是线程安全性 某个类的行为和其规 ...

  8. 从头来之【MAC下代码管理工具】

    本人使用的是一款免费的GIT管理工具SOURCETREE.在appstore下载完后安装. 先选中改变的文件拉倒上面,[COMMIT]---->[push] 如有疑问请留言

  9. 教育单元测试mock框架优化之路(下)

    转载:https://sq.163yun.com/blog/article/169563599967031296 四.循环依赖的解决 果然! 当我将@SpyBean应用到存在有循环依赖的Bean上时, ...

  10. vsphere性能

    vNUMA介绍 http://virtualbarker.com/ vSphere VMware Performance With every release of vSphere the overh ...