Hibernate之HQL的基本用法
2017-08-23 21:26
375 查看
也许有些人不知道HQL是什么,那么我就在这里简单的讲一下HQL的语言意思:HQL的全写是Hibernate Query Language;
至于理论的话,自己可以去百度去搜搜,肯定会比我说的更加全面,所以我就在这里和大家说一下HQL的一些简单的用法,具体我就不说很多话了,因为代码中的注释我觉得挺详细的,废话不多说,我们直接来看代码吧!
好了,HQL代码基本用法就是这样了,看着小编这么辛苦的份上,顶一顶呗~
至于理论的话,自己可以去百度去搜搜,肯定会比我说的更加全面,所以我就在这里和大家说一下HQL的一些简单的用法,具体我就不说很多话了,因为代码中的注释我觉得挺详细的,废话不多说,我们直接来看代码吧!
package com.laci.test; import java.util.List; import java.util.Set; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.annotations.OnDelete; import org.hibernate.cfg.Configuration; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.laci.entity.Category; import com.laci.entity.Person; import com.laci.entity.Product; import com.laci.entity.Supply; public class TestPerson { private SessionFactory sessionFactory; private Session session; private Transaction transaction; @Before public void before() { Configuration configuration=new Configuration().configure(); sessionFactory = configuration.buildSessionFactory(); session = sessionFactory.openSession(); transaction = session.beginTransaction(); } @After public void after() { transaction.commit(); session.close(); sessionFactory.close(); } @Test public void testHQL() { //查询所有 // List<Person> persons = session.createQuery("from Person").list(); // for (Person person : persons) { // System.out.println(person); // } //查询某一列 // List<String> pnames=session.createQuery("select pname from Person").list(); // for (String string : pnames) { // System.out.println(string); // } //带条件查询 3种 //1、直接设值 // List<Person> persons=session.createQuery("from Person where page between 19 and 25").list(); // for (Person person : persons) { // System.out.println(person); // } //2、命名参数 // List<Person> persons=session.createQuery("from Person where page between :min and :max").setInteger("min", 19).setInteger("max", 25).list(); // for (Person person : persons) { // System.out.println(person); // } //3、索引方式 // List<Person> persons=session.createQuery("from Person where page between ? and ?").setInteger(0, 16).setInteger(1, 25).list();//下标从0开始 // for (Person person : persons) { // System.out.println(person); // } //聚合查询 // int page=Integer.parseInt(session.createQuery("select max(page) from Person").uniqueResult().toString()); // System.out.println(page); //分页 // int pageNo=1; // int pageSize=2; //页码 条数 // List<Person> persons=session.createQuery("from Person").setFetchSize((pageNo-1)*pageSize).setMaxResults(pageSize).list(); // for (Person person : persons) { // System.out.println(person); // } //排序 // List<Person> persons=session.createQuery("from Person order by page desc").list(); // for (Person person : persons) { // System.out.println(person); // } //构造查询 //1、采用数组 // List<Object[]> objects=session.createQuery("select pname,page from Person").list(); // for (Object[] objects2 : objects) { // String pname=objects2[0].toString(); // int page=Integer.parseInt(objects2[1].toString()); // System.out.println(pname+" "+page); // } //2、带参构造 // List<Person> persons=session.createQuery("select new Person(pname,page) from Person").list(); // for (Person person : persons) { // System.out.println(person); // } //对象导航 // List<Product> products=session.createQuery("from Person p where p.card.card_no='S001'").list(); // for (Product product : products) { // System.out.println(product.getProduct_name()); // } }
好了,HQL代码基本用法就是这样了,看着小编这么辛苦的份上,顶一顶呗~
相关文章推荐
- 第5章Hibernate的基本用法 5.7映射组件属性
- Hibernate的基本API的用法
- Hibernate 中Hql 查询中间表的用法
- HQL 语言基本用法
- 5 -- Hibernate的基本用法 --4 4 数据库方言
- Java的Hibernate框架中的基本映射用法讲解
- Hibernate-Usage(basis)(hibernate基本用法)
- Hibernate的学习之路三十(HQL的基本查询)、
- HQL 语言基本用法
- hibernate之Hql ->update语句的用法
- Hibernate:HQL/QBC查询语言比较的用法(1)
- Hibernate中的Query一些基本用法
- 第5章 HIbernate的基本用法 5.3Hibernate的体系结构
- Hibernate的学习之路三十(HQL的基本查询)、
- 5 -- Hibernate的基本用法 --5 3 改变持久对象状态的方法
- Hibernate工具类丰富和Hql用法 对象属性名与关键字冲突
- Hibernate中的Query一些基本用法
- Hibernate中的Query一些基本用法
- 5 -- Hibernate的基本用法 --4 5 JNDI数据源的连接属性
- Hibernate:HQL/QBC查询语言比较的用法(2)