三.Hibernate总结
使用HQL语言:
//获取操作数据库session
Session session = getHibernateTemplate().getSessionFactory() .getCurrentSession();
// 返回一行记录 String hql = "from TOrder o where o.id = ?"; TOrder o = (TOrder) s.createQuery(hql) .setParameter(0, orderId) .uniqueResult(); // 命名参数 Query q = sess.createQuery("from DomesticCat cat where cat.name = :name"); q.setString("name", "Fritz"); // 位置参数 Query q = sess.createQuery("from DomesticCat cat where cat.name = ?"); q.setString(0, "Izi"); // 命名参数列表 Query q = sess.createQuery("from DomesticCat cat where cat.name in (:namesList)"); q.setParameterList("namesList", names); // 分页查询 Query q = sess.createQuery("from DomesticCat cat"); q.setFirstResult(20); q.setMaxResults(10); List cats = q.list();
//删除元素
Query q = sess.createQuery("from TOrder o where o.id = '123456'");
q.executeUpdate();
四. 与spring结合
HibernateTemplate 提供持久层访问模板化,使用 HibernateTemplate 无须实现特定接口,它只需要提供一个 SessionFactory 的引用,就可执行持久化操作。 SessionFactoyr 对象可通过构造参数传入,或通过设值方式传入。
对于在 W eb 应用,通常启动时自动加载 ApplicationContext , SessionFactory 和 DAO 对象都处在 Spring 上下文管理下,因此无须在代码中显式设置,可采用依赖注入解耦 SessionFactory 和 DAO ,依赖关系通过配置文件来设置,如下所示:
看我的Webwork项目总结三。呵呵。。。
