hql查询,投影,动态,条件(参数,位置,名字)

来源:互联网 发布:centos 6.5 64位 编辑:程序博客网 时间:2024/06/04 22:47
hql_1
public void aliasTest() {Configuration config = new Configuration().configure();SessionFactory sessionFactory = config.buildSessionFactory();//得到一个sessionSession session = sessionFactory.openSession();Transaction t = session.beginTransaction();//编写HQLString hql = "from Customer as c where c.name='jack'";//创建Query对象Query query = session.createQuery(hql);//执行查询获得结果List<Customer>customers = query.list();//遍历for (Customer customer : customers) {System.out.println(customer);}t.commit();session.close();sessionFactory.close();}
hql_2(投影查询)
public void portionQueryTest() {Configuration config = new Configuration().configure();SessionFactory sessionFactory = config.buildSessionFactory();Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();String hql = "select c.name,c.age from Customer as c ";//创建Query 对象Query query = session.createQuery(hql);List<Object[]>list = query.list();Iterator iterator = list.iterator();while (iterator.hasNext()) {Object[] object = (Object[]) iterator.next();System.out.println("查询结果,姓名:"+object[0]+",年龄:"+object[1]);}transaction.commit();session.close();sessionFactory.close();}

动态实例查询,动态实例查询,需要重载构造方法。

public void dynamicQueryTest() {Configuration config = new Configuration().configure();SessionFactory sessionFactory = config.buildSessionFactory();Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();String hql = "select new Customer(c.name,c.age)from Customer as c";//创建Query对象Query query = session.createQuery(hql);//执行查询,获得结果、List<Customer>customers = query.list();for (Customer customer : customers) {System.out.println(customer.getName()+","+customer.getAge());}transaction.commit();session.close();sessionFactory.close();}


//条件查询

//1按参数位置查询

public void paramQueryTest1() {Configuration config = new Configuration().configure();SessionFactory sessionFactory = config.buildSessionFactory();Session session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();String hql = "from Customer where name like ?";Query query = session.createQuery(hql);query.setString(0, "%jack%");List<Customer>customers = query.list();for (Customer customer : customers) {System.out.println(customer);}transaction.commit();session.close();sessionFactory.close();}

//2.按参数名字查询

public void paramQueryTest2() {Configuration configuration = new Configuration().configure();SessionFactory sessionFactory = configuration.buildSessionFactory();//得到一个SessionSession session = sessionFactory.openSession();Transaction transaction = session.beginTransaction();String hql = "from Customer where age=:age";Query query = session.createQuery(hql);//设置参数query.setParameter("age", 12);List<Customer>customers = query.list();for (Customer customer : customers) {System.out.println(customer);}}

分页查询

public void queryPageTest() {

Configuration configuration =new Configuration().configure();

SessionFactory sessionFactory =configuration.buildSessionFactory();

Session session =sessionFactory.openSession();

Transaction transaction =session.beginTransaction();

String hql ="from Customer";

Query query =session.createQuery(hql);

query.setFirstResult(1);

query.setMaxResults(3);

List<Customer>customers =query.list();

for (Customercustomer : customers) {

System.out.println(customer);

}




原创粉丝点击