sql和hql的区别
转自: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的区别的更多相关文章
- NHibernate初学二之简单执行SQL及HQL、Linq
上篇文章简单介绍NHibernate之简单增删改查,本文将会简单介绍有关执行NHibernate的SQL.HQL及存储过程: 一:执行SQL语句实例,运用CreateSQLQuery方法 public ...
- paip.取当天记录的方法sql跟hql hibernate
paip.取当天记录的方法sql跟hql hibernate #------两个方法...函数法和日期计算法.. 函数法: DATEDIFF(d,createTime,GETDATE())=0 / ...
- sql datalength与len区别用法
原文:sql datalength与len区别用法 len ( string_expression )参数:要计算的字符串 len() 函数len 函数返回文本字段中值的长度. sql len() 语 ...
- 数据库 --> SQL 和 NoSQL 的区别
SQL 和 NoSQL 的区别 一.概念 SQL (Structured Query Language) 数据库,指关系型数据库.主要代表:SQL Server,Oracle,MySQL(开源), ...
- SQL、HQL、JPQL、CQL的对比
SQL:全称结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统:同时也是数据 ...
- SQL和HQL 区别浅析!!!
hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性 sql是面向数据库表查询,格式:from + 表名 + where + 表中字段 1.查询 一般在hiber ...
- Hibernate HQL和原生SQL查询的一点区别
1.createSQLQuery 1.1默认查询的结果为BigDecimal 1.2通过addScalar("CGD_ID", StandardBasicTypes.LONG)可以 ...
- Oracle、Mysql、Sql Server语句的区别
1.空值的处理——判断是否为空,为空时取一个值,不为空时取另一个值 1).Sql Server 中 ISNULL(check_expression,replacement_value) 解释:如果ch ...
- 统计数据方面SQL与HQL
因为HQL是面向对象的,所以对于统计数据方面使用HQL时不合适的,其实HQL最终还是会转化成SQL语句,项目里使用HQL语句应该是为了标准规范化. 统计的数据:同一个表,同一个字段,不同属性,统计不同 ...
随机推荐
- leetcode关于数组的问题
关于数组的几道面试题 [Leetcode] 628. 三个数的最大乘积 解题思路: 这个一开始我是没想到思路的(除了遍历),因为有正负号的问题,后来看了一下别人的思路然后自己写的,思路是这样的: 三个 ...
- Entity Framework 与 LINQ to SQL
Entity Framework和LINQ to SQL到底有什么区别?这是一个很常见的问题.下面的表中简要罗列了两种技术的主要区别. LINQ to SQL Entity Framework 复杂度 ...
- Gray Code leetcode java
题目: The gray code is a binary numeral system where two successive values differ in only one bit. Giv ...
- CentOS中zip压缩和unzip解压缩命令详解
以下命令均在/home目录下操作cd /home #进入/home目录1.把/home目录下面的mydata目录压缩为mydata.zipzip -r mydata.zip mydata #压缩myd ...
- java去除字符串的html标签
//方法一 public String stripHtml(String content) { // <p>段落替换为换行 content = content.replaceAll(&qu ...
- Python3 比较两个图片是否类似或相同
Python代码 #coding:utf8 import os from PIL import Image,ImageDraw,ImageFile import numpy import pytess ...
- 根据日期切换图片KFX
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 谢宝友:会说话的Linux内核
我们本次开源专访的对象是一位认真钻研技术的工程师,谢宝友,他目前任职中兴通讯操作系统团队,他个人在业余时间前后共花费了6年时间完成了对Linux内核Linux 2.6.12内核源代码注释工作. 我们本 ...
- Linux 查看服务器配置
//CPU cat /proc/cpuinfo |grep processor; //内存 free -g; //硬盘 df -h;
- JS将"\/Date(1530104033000)\/" 格式化
JS将/Date(1446704778000)/转换成str: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) ...