什么是hql和hql与sql的区别
程序员文章站
2022-04-13 17:42:44
...
什么是hql
hql 是hibernate查询语言 hibernate query language 是一种接近sql的查询语言。
hql与sql的区别?
HQL
- HQL的类名和属性区分大小写,关键字不区分大小写。
- ?占位符从下标0开始计算位置
- 支持:命名参数
- hql是面向对象的查询语言
SQL
- SQL的表名和列名不区分大小写。
- ?占位符从顺序1开始计算位置
- 不支持:命名参数
- SQL是面向结构查询语言
示列代码
- 命名参数
// 命名参数
@Test
public void listfour() {
String hql = "select u.userName,u.realName from User u where u.userName=:uname";
Session session = SessionFactoryUtil.getSession();
Transaction transaction = session.beginTransaction();
// 创建批量对象(单个对象)
Query query = session.createQuery(hql);
query.setString("uname", "华哥");
// 运行批量对象
List<Object[]> list = query.list();
for (Object[] u : list) {
System.out.println(Arrays.toString(u));
}
transaction.commit();
SessionFactoryUtil.closeSession();
}
- 连接查询
// 连接查询
@Test
public void listsix() {
String hql = "select o.orderNo,oi.quantity from Order o,OrderItem oi "
+ " where o=oi.order and o.orderId=:orderid";
Session session = SessionFactoryUtil.getSession();
Transaction transaction = session.beginTransaction();
// 创建批量对象
Query query = session.createQuery(hql);
query.setInteger("orderid", 4);
// 运行这个批量对象
List<Object[]> list = query.list();
for (Object[] u : list) {
System.out.println(Arrays.toString(u));
}
transaction.commit();
SessionFactoryUtil.closeSession();
}
上一篇: Hibernate之二级缓存
下一篇: 下载RPM常用网址
推荐阅读
-
网站运营是做什么的?和产品经理有什么区别?
-
什么是超文本传输协议(java与javascript的区别)
-
什么是超文本传输协议(java与javascript的区别)
-
百度理财产品之百赚与百赚利滚利有什么区别?百赚和百赚利滚利版的区别对比
-
sql中varchar和nvarchar的区别与使用方法
-
i7-7740X和i7-7700K的区别是什么 i7-7740X与i7-7700K性能对比测试图解
-
太原王氏与琅琊王氏有什么区别?“王”姓的起源和来历?
-
生核桃与熟核桃的区别是什么?生核桃的功效和食用禁忌有哪些
-
火鸡面是哪的?和方便面的区别是什么
-
Localhost 与127.0.0.1和IP的区别是什么