对于我们学习的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(); } } } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接
本文向大家介绍SQL数据分页查询的方法,包括了SQL数据分页查询的方法的使用技巧和注意事项,需要的朋友参考一下 最近学习了一下SQL的分页查询,总结了以下几种方法。 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据。(数据太少,就每页5条了) 方法一: 结果: 此方法是先取出前10条的SID(前两页),排除前10条数据的S
本文向大家介绍python使用clear方法清除字典内全部数据实例,包括了python使用clear方法清除字典内全部数据实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python使用clear方法清除字典内全部数据。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。
本文向大家介绍SVM和全部数据有关还是和局部数据有关?相关面试题,主要包含被问及SVM和全部数据有关还是和局部数据有关?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: SVM只和分类界限上的支持向量点有关,换而言之只和局部数据有关。
我正在处理需要以这种方式读取 firebase 节点的项目: 假设我在Firebase实时数据库中有一个节点。在该节点中,我有消息。当用户在消息框中输入时,我需要显示消息。但是一次阅读所有消息太耗时了。 我想要的是,一次读取消息并将其显示给用户。当用户按下按钮时,我会读取另一个消息并将其显示给用户。依此类推……会更快更方便。 但是我找不到任何方法让事情像这样工作。我尝试了,但是它读取了节点中的所有
本文向大家介绍Struts2+Hibernate实现数据分页的方法,包括了Struts2+Hibernate实现数据分页的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Struts2+Hibernate实现数据分页的方法。分享给大家供大家参考,具体如下: 1.用Hibernate实现分页技术: 2.在Action里调用Hibernate实现分页技术的方法,并跳转到显示界面: 3.st
本文向大家介绍Java8中使用流方式查询数据库的方法,包括了Java8中使用流方式查询数据库的方法的使用技巧和注意事项,需要的朋友参考一下 由于关系型数据库操作语言和面向对象语言之间的差异,如今我们仍然需要花费许多时间建立数据库与 Java 应用之间互相沟通的桥梁。通常,我们可以编写自己的映射层(mapping layer),或者使用第三方的 ORM(Object Relational Mappe