Hibernate的查询

来源:互联网 发布:mac上制作手机铃声 编辑:程序博客网 时间:2024/06/04 23:19



下面是Hibernate的一些查询的语句,用的是maven test 测试的


查询前需要配置,具体的配置步骤请看上篇博客

实体类当中需要写一个Hibernate映射

1.第一步写一个实体类,然后New一个.hbm.xml会出现这个界面


然后选择自己的实体类,点击finish就可以了

package com.zking.test;import java.util.List;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.zking.entity.Person;public class TestHQL {private SessionFactory sessionFactory;private Session session;private Transaction transaction;@Beforepublic void before(){Configuration configuration=new Configuration().configure();sessionFactory = configuration.buildSessionFactory();session = sessionFactory.openSession();transaction = session.beginTransaction();}@Afterpublic void after(){transaction.commit();session.close();sessionFactory.close();}@Testpublic void testhql(){//查询所有//List<Person> persons=session.createQuery("from Person").list();//for (Person person : persons) {//System.out.println(person);//}//查询某一列//List<String> names=session.createQuery("select pname from Person").list();//for (String string : names) {//System.out.println(string);//}//查询某几列    查询结果来源于多张表//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);//}//构造查询//List<Person> persons=session.createQuery("select new Person(pname,page) from Person").list();//for (Person person : persons) {//System.out.println(person);//}//带条件查询//查询年龄在15 到 60 之间//List<Person> persons=session.createQuery("from Person where page between ? and ?").setInteger(0, 15).setInteger(1, 60).list();//List<Person> persons=session.createQuery("from Person where page between :min and :max").setInteger("min", 15).setInteger("max", 60).list();//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=2;//int pageSize=2;//List<Person> persons=session.createQuery("from Person").setFirstResult((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);//}//对象导航//session.createQuery("from Person p where p.city.caddress like ")}}
自己改自己的实体类的属性就可以了,报错的时候看一下配置有没有配错

原创粉丝点击