Hibernate4详解(二)

2014-11-24 10:41:08 · 作者: · 浏览: 1
hibernate-mapping-3.0.dtd">
















Java代码
package org.springfuncs.domain;

import java.io.Serializable;

/** 订单 */
public class Order implements Serializable {

private static final long serialVersionUID = -5409386658105657900L;

private Integer id; // id
private String orderNumber; // 订单号
private Customer customer; // 所属客户

public Order() {
}

//getter and setter

@Override
public String toString() {
return "Order [id=" + id + ", orderNumber=" + orderNumber + "]";
}

}

Xml代码
< xml version="1.0" >
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">











还有什么缓存的配置以及数据库脚本,我会放在附件中

好了。。。开始帖代码了。。。。

HibernateUtil.java

Java代码
package org.springfuncs.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public final class HibernateUtil {

private static SessionFactory sessionFactory;

private HibernateUtil() {
}

static {
try {

/** 此方法在Hibernate4中被标记为过时 */
// sessionFactory = new Configuration().configure().buildSessionFactory();

/**Hibernate4取得SessionFactory的方法 */
Configuration cfg = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
sessionFactory = cfg.buildSessionFactory(serviceRegistry);

} catch (Throwable e) {
throw new ExceptionInInitializerError(e);
}
}

public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}


HQL

Java代码
package org.springfuncs.hql;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.Test;
import org.springfuncs.domain.Emp;
import org.springfuncs.util.HibernateUtil;

public class TestHql {

/** 查询全部 (推荐) */
@Test
public void test_list() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
String hql = "from Emp";
Query query = session.createQuery(hql);
query.setCacheable(true); // 设置缓存
List list = query.list();
show(list);
session.close();
}

/** 查询全部 */
@Test
public void test_iterator() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
String hql = "from Emp";
Query query = session.createQuery(hql);
Iterator it = query.iterate();
while (it.hasNext()) {
Emp emp = it.next();
System.out.println(emp);
}
session.close();
}

/** 分页查询 */
// s