Hibernate4详解(十)

2014-11-24 10:41:08 · 作者: · 浏览: 13
ateSQLQuery(sql);
query.addScalar("empno", StandardBasicTypes.INTEGER);
query.addScalar("ename", StandardBasicTypes.STRING);
query.addScalar("job", StandardBasicTypes.STRING);
query.addScalar("mgr", StandardBasicTypes.INTEGER);
query.addScalar("hiredate", StandardBasicTypes.DATE);
query.addScalar("sal", StandardBasicTypes.DOUBLE);
query.addScalar("comm", StandardBasicTypes.DOUBLE);
query.addScalar("deptno", StandardBasicTypes.INTEGER);
query.setResultTransformer(Transformers.aliasToBean(Emp.class));
List list = query.list();
show(list);
session.close();
}

/** 查询全部 (推荐) */
@Test
public void test_sql4() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();

String sql = "select * from emp";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Emp.class);

// String sql = "select {e.*} from emp e";
// SQLQuery query = session.createSQLQuery(sql);
// query.addEntity("e", Emp.class);
query.setCacheable(true); // 设置缓存
List list = query.list();
show(list);
session.close();
}

/** 条件查询 */
@Test
public void test_where() {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();

String sql = "select * from emp where ename like ";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Emp.class);
query.setString(0, "J%");

// String sql = "select * from emp where ename like :ename";
// SQLQuery query = session.createSQLQuery(sql);
// query.addEntity(Emp.class);
// query.setString("ename", "J%");

List list = query.list();
show(list);
session.close();
}

// 遍历集合
private void show(List list) {
for (Emp emp : list) {
System.out.println(emp);
}
}
}

CRUD

Java代码
package org.springfuncs.crud;

import java.io.Serializable;

import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.junit.Test;
import org.springfuncs.domain.Customer;
import org.springfuncs.util.HibernateUtil;

public class TestCRUD {

// 添加
@Test
public void test_save() {

Customer customer = new Customer();
customer.setName("monday");

SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
Serializable id = session.save(customer); // 返回OID
tx.commit();
session.close();
System.out.println("id=" + id);
}

// 添加
@Test
public void test_persist() {
Customer customer = new Customer();
customer.setName("monday");

SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();