- 浏览: 556781 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (277)
- wap (9)
- 小技巧 (8)
- Spring (7)
- IT应用 (8)
- web (29)
- Hibernate (14)
- j2se (20)
- Struts2 (9)
- 数据库 (12)
- 异常总结 (4)
- ssh整合 (3)
- 生活 (3)
- Maven (2)
- JDBC (3)
- svn (1)
- ibatis (4)
- JavaMail (2)
- linux (2)
- Thrift (1)
- xml (3)
- SpringMVC (1)
- Jquery EasyUI (1)
- dwr (3)
- 地图 (16)
- poi (3)
- FusionCharts (1)
- Android基础 (46)
- 树 (2)
- Extjs (1)
- 公务员考试 (2)
- Android进阶 (41)
- Android分享 (3)
- Android软件 (1)
- 自动化测试 (4)
- Android工具类 (6)
- Android底层 (1)
最新评论
-
d199212:
引用引用[u][/u]
高德地图创建自定义覆盖物 -
lyuaong2010:
这做法不错,百度地图 提供的拉框获取不到矩形的几点
百度地图封装实现拉框效果 -
Allen_J_Will:
...
我的“天气宝”上线啦 -
chenzheng8975:
王太阳 写道你这根本就不出来,,你漏了几个地方...例子只做参 ...
ztree学习之异步加载节点 -
chenzheng8975:
王太阳 写道你这根本就不出来,,你漏了几个地方... 有图有真 ...
ztree学习之异步加载节点
工具类HibernateUtil.java:
package com.cz.util; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; final public class HibernateUtil { private static SessionFactory sessionFactory=null; //使用线程局部模式 private static ThreadLocal<Session> threadLocal=new ThreadLocal<Session>(); private HibernateUtil(){}; static { sessionFactory=new Configuration().configure().buildSessionFactory(); } //获取全新的全新的sesession public static Session openSession(){ return sessionFactory.openSession(); } //获取和线程关联的session public static Session getCurrentSession(){ Session session=threadLocal.get(); //判断是否得到 if(session==null){ session=sessionFactory.openSession(); //把session对象设置到 threadLocal,相当于该session已经和线程绑定 threadLocal.set(session); } return session; } //统一的一个修改和删除(批量 hql) hql"delete upate ...??" public static void executeUpdate(String hql,String [] parameters){ Session s=null; Transaction tx=null; try { s=openSession(); tx=s.beginTransaction(); Query query=s.createQuery(hql); //先判断是否有参数要绑定 if(parameters!=null&& parameters.length>0){ for(int i=0;i<parameters.length;i++){ query.setString(i, parameters[i]); } } query.executeUpdate(); tx.commit(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); // TODO: handle exception }finally{ if(s!=null&&s.isOpen()){ s.close(); } } } //这里提供一个根据id返回对象的方法 public static Object findById(Class clazz,java.io.Serializable id){ Session s=null; Transaction tx=null; Object obj=null; try { s=openSession(); tx=s.beginTransaction(); obj=s.load(clazz, id); tx.commit(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); // TODO: handle exception }finally{ if(s!=null&&s.isOpen()){ s.close(); } } return obj; } //统一的添加的方法 public static void save(Object obj){ Session s=null; Transaction tx=null; try { s=openSession(); tx=s.beginTransaction(); s.save(obj); tx.commit(); } catch (Exception e) { if(tx!=null){ tx.rollback(); } throw new RuntimeException(e.getMessage()); // TODO: handle exception }finally{ if(s!=null && s.isOpen()){ s.close(); } } } //提供一个统一的查询方法(带分页) hql 形式 from 类 where 条件=? .. public static List executeQueryByPage(String hql,String [] parameters,int pageSize,int pageNow){ Session s=null; List list=null; try { s=openSession(); Query query=s.createQuery(hql); //先判断是否有参数要绑定 if(parameters!=null&& parameters.length>0){ for(int i=0;i<parameters.length;i++){ query.setString(i, parameters[i]); } } query.setFirstResult((pageNow-1)*pageSize).setMaxResults(pageSize); list=query.list(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); // TODO: handle exception }finally{ if(s!=null&&s.isOpen()){ s.close(); } } return list; } //提供一个统一的查询方法 hql 形式 from 类 where 条件=? .. public static List executeQuery(String hql,String [] parameters){ Session s=null; List list=null; try { s=openSession(); Query query=s.createQuery(hql); //先判断是否有参数要绑定 if(parameters!=null&& parameters.length>0){ for(int i=0;i<parameters.length;i++){ query.setString(i, parameters[i]); } } list=query.list(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); // TODO: handle exception }finally{ if(s!=null&&s.isOpen()){ s.close(); } } return list; } //提供一个统一的查询方法 总是返回一个对象 public static Object uniqueQuery(String hql,String [] parameters){ Session s=null; Object obj=null; try { s=openSession(); Query query=s.createQuery(hql); //先判断是否有参数要绑定 if(parameters!=null&& parameters.length>0){ for(int i=0;i<parameters.length;i++){ query.setString(i, parameters[i]); } } obj=query.uniqueResult(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); // TODO: handle exception }finally{ if(s!=null&&s.isOpen()){ s.close(); } } return obj; } }
测试类TestMain.java:
package com.cz.view; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.Restrictions; import com.cz.util.*; import com.sina.domain.Course; import com.sina.domain.Studcourse; import com.sina.domain.Student; public class TestMain{ /** * @param args */ public static void main(String[] args) { //这里我们使用增强的HibernateUtil来完成curd. /* String hql="select sname,saddress from Student where sdept=? and sage>?"; String parameters[]={"计算机系","3"}; List<Object[]> list= HibernateUtil.executeQuery(hql,parameters); for(Object[] s: list){ System.out.println(s[0].toString()+" "+s[1].toString()); }*/ //使用工具分页 /* String hql="select sname,saddress from Student order by sage"; String parameters[]=null; List<Object[]> list= HibernateUtil. executeQueryByPage(hql, parameters, 2, 3) ; for(Object[] s: list){ System.out.println(s[0].toString()+" "+s[1].toString()); }*/ /*添加*/ /* Course c=new Course(); c.setCname("servlet"); c.setCid(4L); HibernateUtil.save(c);*/ //调用修改/删除 /* String hql="update Student set sage=sage+1 where sdept=?"; String parameters[]={"计算机系"}; try { HibernateUtil.executeUpdate(hql, parameters); } catch (Exception e) { System.out.println(e.getMessage()); // TODO: handle exception }*/ //请显示所有选择了21号课程的学生信息 /* String hql="select student.sname,student.sdept from Studcourse where course.cid=?"; String parameters[]={"21"}; List<Object[]> list=HibernateUtil.executeQuery(hql, parameters); for(Object[] s:list){ System.out.println(s[0].toString()+" "+s[1].toString()); }*/ /* String hql="from Studcourse where course.cid=21"; List<Studcourse> list=HibernateUtil.executeQuery(hql, null); //懒加载我们有一个章节详解. for(Studcourse sc:list){ System.out.println(sc.getGrade()+sc.getStudent().getSname()); }*/ //查询年龄大于10岁的学生 criteria Session s=HibernateUtil.getCurrentSession(); Transaction tx=s.beginTransaction(); Criteria cri=s.createCriteria(Student.class); //添加检索条件 cri.add(Restrictions.gt("sage", new Long(10))); List<Student> list=cri.list(); for(Student s1: list){ System.out.println(s1.getSname()); } tx.commit(); } }
发表评论
-
Hibernate学习之主键增长策略
2012-09-24 09:24 1606主键增长策略 对象标 ... -
Hibernate学习之二级缓存
2012-09-23 16:04 1048为什么需要二级缓存? 因为一级缓存有限(生命周期短),所以我 ... -
Hibernate学习之一级缓存
2012-09-23 12:23 965为什么需要缓存: 当 ... -
Hibernate学习之懒加载
2012-09-23 11:32 1158懒加载: 懒加载(Load On Demand)是一种独 ... -
Hibernate对象之间的三种关系
2012-09-18 14:50 1116hibernate 对象的三种关系: one – to – ... -
Hibernate学习之级联操作
2012-09-18 14:33 1148Hibernate学习之级联操作 ... -
Hibernate学习之HQL详解2
2012-09-11 14:39 1114uniqueResult方法 如果我 ... -
Hibernate学习之HQL详解1
2012-09-03 08:49 1551Hibernate具有三种查询方式: HQL(Hiberna ... -
Hibernate学习之持久化对象
2012-09-03 08:42 1889Hibernate对其持久化对象 ... -
Hibernate学习小结之实体对象之间关系
2012-08-28 15:42 990双向一对一关系: 实体对象之间一对一的关联是通过数据库的 ... -
Hibernate和JDBC实现CRUD操作的比较
2012-08-24 13:29 1448使用JDBC实现CRUD操作: 查询操作: pu ... -
Hibernate注意事项
2012-07-26 13:52 13131.<!-- 配置显示hibernate ... -
Hibernate学习总结之基础篇
2012-07-24 19:31 1315hibernate 是对 jdbc 进 ...
相关推荐
使用 Hibernate 模板方法可以显著提高开发效率,减少重复代码,并且通过提供事务管理和异常处理等特性,确保了数据操作的健壮性。在实际应用中,根据具体需求,开发者可以灵活选择适合的方法来执行 SQL 查询、更新、...
Hibernate Tool是Java开发者们常用的工具,它基于Hibernate框架,提供了丰富的功能,包括数据库逆向工程、对象关系映射(ORM)代码自动生成以及Eclipse插件支持。本文将通过对源代码的深入剖析,探讨其中的关键组件...
**Hibernate的Xdoclet模板详解** ...通过学习这些内容,开发者不仅可以了解到过去常用的Hibernate集成技术,还能对比现在的方法,理解技术发展的历程和变迁。对于初学者来说,这是了解历史并掌握现代开发技巧的好机会。
这个压缩包包含了一些常用的jar包,用于支持Struts2和Hibernate框架的运行。下面我们将逐一介绍这些jar包的功能和作用。 1. **hibernate-core-4.2.4.Final.jar**:这是Hibernate的核心库,包含了ORM(对象关系映射...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
本篇文章将深入探讨如何在.NET环境下使用Hibernate框架,并结合Codesmith工具生成模板,快速构建网站后台。我们将围绕以下知识点展开: 1. Hibernate框架概述: Hibernate是Java世界中的明星ORM框架,但在.NET平台...
第7章 常用Hibernate映射配置说明 7.1 hibernate-mapping节点 7.2 class节点定义 7.3 id节点定义 7.4 属性/字段映射配置 第8章 Hibernate工具 8.1 准备工作 8.2 根据数据库定义生成映射文件——MiddleGen ...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
### Hibernate 模板类详解 在Java开发领域中,Hibernate框架是进行对象关系映射(Object-Relational Mapping,简称ORM)的一种常用工具,它能够将面向对象模型的数据与关系型数据库之间的数据进行转换,从而简化了...
总结来说,`Hibernate`与`Struts`的整合实例为开发者提供了一个实用的模板,帮助他们在Java Web项目中轻松处理数据操作。通过理解这两个框架的核心概念和整合方式,开发者能够更高效地构建出具有完整CRUD功能的Web...
DAO模式是软件设计中常用的一种模式,它将业务逻辑与数据访问层分离,使得代码更易于维护和扩展。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了Java应用与数据库之间的交互。 在描述中提到的“根据...
Struts、Spring、Hibernate和iBatis是Java开发中常用的四大框架,它们分别负责不同的职责,共同构建了一个高效、灵活的企业级应用开发架构。这里我们将深入探讨这些框架的核心概念、功能以及它们如何协同工作。 **...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
Struts2、Hibernate和Spring是Java企业级应用开发中的三...在给定的“Strtus2+Hibernate+spring常用开发包”中,可能包含了这三个框架的库文件、配置示例、教程文档等资源,可以帮助开发者快速搭建和理解这个集成环境。
**hibernate实体生成工具**是开发者在使用Hibernate框架时常用的一种辅助工具,它能够自动生成与数据库表对应的Java实体类,大大节省了手动编写代码的时间,提高了开发效率。Hibernate是一个强大的对象关系映射(ORM...