Hibernate中使用Session操作数据以及部分简单HQL(hibernate query language)
2017-03-09 20:08
627 查看
1.Session中的常用更新数据或者获取数据方法:
save:新增数据
get:获取一条数据
load:获取一条数据
update:更新数据
delete:删除数据
注:get方法和load方法区别:get是先从一级缓存中获取数据,再从耳机缓冲中获取数据,而load方法是直接从二级缓存中获取数据。Session是一级缓存。
2.简单的HQL:
HQL:hibernate query language,面向对象的查询语言。
HQL语法:可以依如下格式:
[select 实体类属性列表]
from 类名
[where 条件]
[group by 条件]
[having 条件]
[order by 条件]
使用Query进行HQL查询:
(1)获取Session对象
//创建Configuration对象
Configuration cfg = new Configuration();
//加载注册文件
cfg.configure("/hibernate.cfg.xml");
//创建SessionFactory
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
builder.applySettings(cfg.getProperties());
SessionFactory factory = cfg.buildSessionFactory(builder.build());
//打开session
Session session = factory.openSession();(2)编写HQL语句
(3)使用session的createQuery(HQL语句)方法创建Query对象,如果HQL语句包含参数,那么接着使用Query对象的setXX()方法为参数赋值。
(4)调用Query的list方法返回查询结果。
例如:
Query q = session.createQuery("from Users where id=:myid");
q.setInteger("myid", 1);
List<Users> list = q.list();
for (Users users : list) {
System.out.println(users.getUsername());
}
使用Criteria进行HQL查询(步骤与Query进行HQL查询类似):
例如:
Criteria c = session.createCriteria(Users.class);
c.add(Restrictions.eq("id", 2));
List<Users> list = c.list();
for (Users users : list) {
System.out.println(users.getUsername());
}
save:新增数据
get:获取一条数据
load:获取一条数据
update:更新数据
delete:删除数据
注:get方法和load方法区别:get是先从一级缓存中获取数据,再从耳机缓冲中获取数据,而load方法是直接从二级缓存中获取数据。Session是一级缓存。
2.简单的HQL:
HQL:hibernate query language,面向对象的查询语言。
HQL语法:可以依如下格式:
[select 实体类属性列表]
from 类名
[where 条件]
[group by 条件]
[having 条件]
[order by 条件]
使用Query进行HQL查询:
(1)获取Session对象
//创建Configuration对象
Configuration cfg = new Configuration();
//加载注册文件
cfg.configure("/hibernate.cfg.xml");
//创建SessionFactory
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
builder.applySettings(cfg.getProperties());
SessionFactory factory = cfg.buildSessionFactory(builder.build());
//打开session
Session session = factory.openSession();(2)编写HQL语句
(3)使用session的createQuery(HQL语句)方法创建Query对象,如果HQL语句包含参数,那么接着使用Query对象的setXX()方法为参数赋值。
(4)调用Query的list方法返回查询结果。
例如:
Query q = session.createQuery("from Users where id=:myid");
q.setInteger("myid", 1);
List<Users> list = q.list();
for (Users users : list) {
System.out.println(users.getUsername());
}
使用Criteria进行HQL查询(步骤与Query进行HQL查询类似):
例如:
Criteria c = session.createCriteria(Users.class);
c.add(Restrictions.eq("id", 2));
List<Users> list = c.list();
for (Users users : list) {
System.out.println(users.getUsername());
}
相关文章推荐
- Hibernate查询数据的几种方式以及HQL用法及参数的几种使用方法
- hibernate使用createQuery(hql)语句仅查询部分字段,应如何获得数据
- HQL(Hibernate Query Language)使用详解
- 使用hql使用order by子句出现异常和数据异常的解决办法org.hibernate.hql.internal.ast.QuerySyntaxException
- hibernate3.5使用session.createQuery()查出数据与数据库不一致
- hibernate简单事例,注意事项,保存,更新,删除,session,Query,Criteria查询_Hql与Criteria查询的补充知识
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- 在hibernate中,对数据库的增删改操作以及HQL查询与QBC查询的语句的编写语法
- 使用Hibernate实现简单的增、改、删、查操作
- cookies的简单使用 客户端保存临时数据和上传文件的就Query.uploadify(2.xx版本)的使用
- Hibernate的HQL语句mapped问题,session.createQuery("from com.zhangle.Entity.Book");
- 初识和利用Servlet,获取和显示页面提交的数据以及对MySQL数据库的简单操作 7.04
- Swift - HTTP网络操作库Alamofire使用详解1(配置,以及数据请求)
- SS7.1_Hibernate_CRUD_ByXML~SS7.2_Hibernate_CRUD_ByXML使用Session对数据库进行增删改查以及saveOrUpdate/merge()的区别
- JSP(5)—Session的创建以及简单使用
- 简单的三层框架以及使用dbutils进行数据库操作(入门)
- 使用 hibernate SQLQuery 实现动态表 操作
- Hibernate Query Language (HQL)
- Hibernate Query Language(HQL)
- 常用HQL(Hibernate Query Language)查询