技术文章
当前位置:首页 > Java技术文章 > Hibernate中使用HQLQuery查询全部数据和部分数据的方法实例

Hibernate中使用HQLQuery查询数据的方法实例

  • 发布时间:
  • 作者:码农之家原创
  • 点击:147

这篇文章主要知识点是关于Hibernate、HQLQuery、查询数据、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下java相关的电子书

21天学通Java
  • 类型:Java大小:22.9 MB格式:PDF出版:人民邮电出版社作者:罗格斯
立即下载

更多Java相关的学习资源可以参阅 Java电子书程序设计电子书 等栏目。

Hibernate中使用HQLQuery查询全部数据和部分数据的方法实例

对于我们学习的HQL,我大概理解为就是一种查询的语言,它没有增加、删除、修改的作用,而对我们用来查询的操作,感觉用起来就是很简便,代码很少,很好理解一些。

下面是查询操作的简单实例

package com.lc.view;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.lc.domain.Student;
import com.lc.utils.HibernateUtil;
public class selectStudent {
 public static void main(String[] args) {
 selectSomeStudents();
 }
 /**
 * 1.检索所有的学生
 **/
 public static void selectAllStudents(){
 Session session = null;
 Transaction ts = null;
 try {
 session = HibernateUtil.getCurrentSession();
 ts = session.beginTransaction();
 List<Student> list = session.createQuery("from Student").list();
 //取出数据1.for循环增强
 for(Student stu:list){
 System.out.println(stu.getSid()+" "+ stu.getSname()+" "+stu.getSdept());
 }
 //取出数据2.迭代器
 System.out.println("------------------------------");
 Iterator iterator = list.iterator();
 while(iterator.hasNext()){
 Student s = (Student) iterator.next();
 System.out.println(s.getSid()+" "+ s.getSname()+" "+s.getSdept());
 }
 ts.commit();
 } catch (Exception e) {
 if (ts != null) {
 ts.rollback();
 }
 throw new RuntimeException(e.getMessage());
 } finally {
 if (session != null && session.isOpen()) {
 session.close();
 }
 }
 }
 /**
 * 2.检索部分的学生
 **/
 public static void selectSomeStudents(){
 Session session = null;
 Transaction ts = null;
 try {
 session = HibernateUtil.getCurrentSession();
 ts = session.beginTransaction();
 /**
 *不可以这样去除数据了 因为只有Student对象的两个属性值 不是一个对象 
 List<Student> list = session.createQuery("select sname,sdept from Student").list();
 for(Student stu:list){
 System.out.println(stu.getSname()+" "+stu.getSdept());
 }**/
 List list = session.createQuery("select sname,sdept from Student").list();
 for(int i=0;i<list.size();i++){
 Object[] obj = (Object[]) list.get(i);
 System.out.println(obj[0].toString()+" "+obj[1].toString());
 }
 ts.commit();
 } catch (Exception e) {
 if (ts != null) {
 ts.rollback();
 }
 throw new RuntimeException(e.getMessage());
 } finally {
 if (session != null && session.isOpen()) {
 session.close();
 }
 }
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接

以上就是本次给大家分享的关于Java的全部知识点内容总结,大家还可以在下方相关文章里找到WebUploader实现分片断点上传、 Java IO流之字符缓冲流的实、 swing组件JScrollPane滚动条实、 等java文章进一步学习,感谢大家的阅读和支持。

上一篇:Java SDK实现离线签名代码详解

下一篇:Java Lombok开发用法指南

展开 +

收起 -

相关电子书
学习笔记
网友NO.987780

Hibernate中Session增删改查操作代码详解

把三状态转换图放在这,方便分析方法的作用: 1.Session的save()方法 Session是Hibernate所有接口中最重要的接口,提供了对数据保存,更新,查询和删除的方法。 Session的save()方法可以使临时态或游离态转换为持久态。例如,保存一个Customer对象: SessionFactory sessionFactory;Configuration configuration = new Configuration().configure();sessionFactory = configuration.buildSessionFactory();Session session = sessionFactory.openSession();Transaction tr = session.beginTransaction();//1.创建Customer对象 Customer c1 = new Customer();c1.setId(new long(1));c1.setName("test");c1.setEmail("123456789@qq.com");c1.setPassword("123456");c1.setAddress("世外桃源");//2.调用Session的save()方法,将Customer对象持久化 session.save(c1);tr.commit();session.close(); Save()方法主要做了以下三件事: (1)将new创建的临时态的Customer对象放入缓存,使其持久化。 (2)同时根据对象关系……

网友NO.959131

Hibernate的各种保存方式的区别详解

hibernate的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别: 一、预备知识: 在所有之前,说明一下,对于hibernate,它的对象有三种状态, transient 、 persistent 、 detached 下边是常见的翻译办法: transient:瞬态或者自由态 persistent:持久化状态 detached:脱管状态或者游离态 脱管状态的实例可以通过调用save()、persist()或者saveOrUpdate()方法进行持久化。 持久化实例可以通过调用 delete()变成脱管状态。通过get()或load()方法得到的实例都是持久化状态的。 脱管状态的实例可以通过调用 update()、saveOrUpdate()、lock()或者replicate()进行持久化。 游离或者自由状态下的实例可以通过调用merge()方法成为一个新的持久化实例。 save()和persist()将会引发SQL的INSERT,delete()会引发SQL的DELETE, 而update()或merge()会引发SQL的UPDATE。 对持久……

网友NO.844287

快速了解Hibernate中的Session

Hibernate中的Session是一级缓存,可以理解为进程级(是线程吧)的缓存,在进程(是线程吧)运行期间一直存在。 session可以理解为一个可以操作数据库的对象,该对象中有操作数据库的方法。 在Java里面,缓存通常是指Java对象的属性占用的内存空间,通常是一些集合类型的属性。在Session接口的实现类SessionImpl中定义了一系列的Java集合,这些Java集合就构成了Session的缓存。 总的来说(我对Session的理解):Session是Hibernate和DB的中间人(一个对象),Session中有两块东西或者说是功能 (1)操作数据库的方法 (2)Session中有一些属性(集合之类的东西),通过这些属性来存储要发送给DB的sql语言、缓存从DB中已经查出来的数据等 Session缓存 session缓存是由一系列的Java集合构成的。当一个对象被加入到Session缓存中,这个对象的引用就加入到了java的集合中,以后……

网友NO.263336

hibernate一对多关联映射学习小结

一对多关联映射 映射原理 一对多关联映射和多对一关联映射的映射原理是一致的,都是在多的一端加入一个外键,指向一的一端。关联关系都是由多端维护,只是在写映射时发生了变化。 多对一和一对多的区别 多对一和一对多的区别在于维护的关系不同: (1)多对一:多端维护一端的关系,在加载多端时,可以将一端加载上来。 (2)一对多:一端维护多端的关系,在加载一端时,可以将多端加载上来。 分类 一对多单向关联映射 对象模型 从对象模型中,我们可以看出,Group持有User的一个引用。由于是单向关联,所以数据在加载Group时,会把User加载上来,但是User并不知道Group的存在。 我们先看一下Group和User的实体,以及映射文件。 Group package com.bjpowernode.hibernate; import java.util.Set; public class Group { private int id; private String name; private Set users; public in……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

版权投诉 / 书籍推广 / 赞助:520161757@qq.com

上传资源(网友、会员均可提供)

查看最新会员资料及资源信息