虽然以前也用过hibernate,但是一段时间不用,又记不住了,近期准备写一些关于hibernate的一些细节方面的东西,以后有机会陆续更新。
1. 如果数据库字段的类型为int,实体类的变量也为int,而且在定义此变量时没有设默认值,那么当此字段在数据库没有值时,进行查询会出错,因为空对象不能转换成int型。
2.在应用中,有时需要把多张表的数据合在一起显示,但是这些表之间并没有关联关系,这时需要用到Object[]才行,如:
public List<Object[]> getUserAndResource(){
List<Object[]> list = this.getHibernateTemplate().find("select u,r.value from User u,Resource r where u.id=r.id");
return list;
}
取出数据时就得幸苦点了:
@Test
public void getUserAndResource(){
List<Object[]> list = userDao.getUserAndResource();
for(int i = 0;i<list.size();i++){
Object[] o = list.get(i);
for(int j = 0;j<o.length;j++){
System.out.println(o[j]);
}
}
}
这样,一条hql就解决了问题,不用分别去查询组装。
3.关于空对象的处理。查询返回一个list对象时,如果list内没有数据,hibernate会返回一个空的list,即[ ],这样显示数据时List就算为空也不会出错了。但hibernate不自动处理空的参数,如 like '%name%',如果name为空,那么查找时也会查找与'%null%'相匹配的数据记录,因此在进行查询之前,先要处理空的参数对象。
4.用 like '%%'取记录时,如果其字段没有值,即默认的<NULL>,那么这些记录不会被取出来。
5.在通过部分ID查取记录时,可通过from User where id in (1,2,3,4,5,),这个问题以前居然不知道,实在惭愧,以前没认真学SQL,我错了。
String sql = "from President";
String in = "";
for (String uniqueId : uniqueIds) {
in += uniqueId + ",";
}
in = in.substring(0, in.length() - 1);
sql += " where id in (" + in + ")";
List<President> presidents = getHibernateTemplate().find(sql);
分享到:
相关推荐
SSH之Hibernate总结 SSH(Struts、Spring、Hibernate)是Java Web开发中常见的三大框架,而Hibernate作为ORM(对象关系映射)框架,是连接Java应用程序与数据库的关键组件。本总结将围绕Hibernate的核心概念、配置...
【Hibernate总结】 Hibernate是一个强大的Java持久化框架,它封装了JDBC,负责对象持久化,作为应用程序和数据库之间的中间层。映射关系是通过配置文件维护的,这使得Hibernate能够与不同的数据库系统灵活地交互。 ...
本资源包含的"hibernate总结练习源码"提供了对Hibernate ORM框架实际应用的实例,有助于深入理解和掌握其核心概念与功能。 1. **对象关系映射(ORM)**:Hibernate 提供了一种机制,将数据库中的表映射为Java类,表...
《Hibernate总结(三)》 在本篇关于Hibernate的总结中,我们将深入探讨这个流行的Java对象关系映射(ORM)框架的关键概念和技术细节。Hibernate作为一款强大的工具,它极大地简化了Java开发人员处理数据库操作的工作...
标题:hibernate总结 描述:此文档是个人在使用Hibernate框架进行数据持久化操作时的经验积累和技巧分享。文档全面覆盖了Hibernate的各种配置方法、数据映射技术、集合类映射、对象关系映射(ORM)基础以及与J2EE...
### 学习Hibernate总结 #### 一、简介与配置 Hibernate是Java环境下一款优秀的对象关系映射(ORM)框架,它极大地简化了数据访问层(DAL)的编码工作,允许开发人员将主要精力集中在业务逻辑上而不是繁琐的SQL语句...
1. 引入Hibernate所需的JAR文件,例如在Eclipse中创建Hibernate类库。 2. 创建配置文件`hibernate.cfg.xml`,其中包含数据库连接信息、日志格式等。 3. 设计实体类,对应数据库表中的记录,并提供对应的getter和...
**总结项目实战** 在实际项目中,使用 Hibernate 可以简化数据库操作,提高开发效率。常见的应用场景包括用户管理、订单处理、商品分类等。项目实践中要注意合理设计实体关系,避免 N+1 查询问题,利用缓存优化性能...
在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本教程将深入探讨如何使用Hibernate来实现一个简单的课程管理系统,涵盖多对...
总结来说,JDBC是基础的数据库访问技术,适合进行简单的数据库操作,而Hibernate则通过提供面向对象的接口,极大地简化了数据库操作,尤其适用于复杂的业务场景。两者结合使用,可以让开发者在享受面向对象编程便利...
《Hibernate4总结文档》 Hibernate4作为一款强大的Java对象关系映射框架,简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库层面的细节。本文将深入探讨Hibernate4的配置和使用,帮助开发者更好地理解...
总结来说,Hibernate是一个强大的ORM框架,它极大地简化了Java应用的数据库操作,提高了开发效率,并提供了高级特性如缓存、事务管理等。通过深入理解和熟练使用Hibernate,开发者可以构建更高效、更易于维护的...