标签分类
技术文章
当前位置:主页 > 计算机编程 > java > Hibernate中使用HQLQuery查询全部数据和部分数据的方法实例

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

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

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

这篇文章主要知识点是关于Hibernate,HQLQuery,查询数据,Hibernate中使用HQLQuery查询全部数据和部分数据的方法实例,的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

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

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

对于我们学习的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();
 }
 }
 }
}

总结

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

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到儿童python编程入门书籍推、 详解vue axios封装请求状态、 解决axios.interceptors.respon、 等java文章进一步学习,感谢大家的阅读和支持。

上一篇:《Java编程的逻辑》读书笔记、评价

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

展开 +

收起 -

学习笔记
网友NO.990826

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)同时根据对象关系映射文件中设置的OID生成器,即主键生成方式给该对象生成一个唯一的OID。 !--设置主键--idname="id"column="ID"type="long"!--主键生成方式--generatorclass="increment"//id 在这个地方有一个疑问,创建对象时setId()方法是否是为该对象持久化生成主键,其实不是,setId并没有按照我们设定的那样生成主键,而是靠对象关系映射文件配置的主键生成方式生成主键,可以多运行几次,主键自增长,从……

网友NO.825372

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。 对持久化(persistent)实例的修改在刷新提交的时候会被检测到,它也会引起SQLUPDATE。saveOrUpdate()或者replicate()会引发SQLINSERT或者UPDATE 二、save 和update区别 把这一对放在第一位的原因是因为这一对是最常用的。 save的作用是把一个新的对象保存 update是把一个脱管状态的对象保存 三,update 和saveOrUpdate区别 这个是比较好理解的,顾名思义,saveOrUpdate基本上就是合成了save和update 引用hibernate……

网友NO.438873

快速了解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的集合中,以后即使应用程序中的引用变量不再引用该对象,只要Session缓存不被清空,这个对象一直处于生命周期中。 Session缓存的作用: 1)减少访问数据库的频率。 2)保证缓存中的对象与数据库中的相关记录保持同步。 Session清理缓存的时机: 1)当调用Transaction的commit()方法时,commit()方法先清理缓存(前提是FlushMode.COMMIT/AUTO),然后再向数据库提交事务。 2)当应用程序调用Session的fin……

网友NO.413687

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 int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set getUsers() { return users; } public void setUsers(Set users) { this.users = users; } } User package com.bjpowernode.hibernate; public class User { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(S……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明