`
xiaoban0514
  • 浏览: 16604 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

hibernate关联查询方法

阅读更多
今天做了一个两张表的查询 要求查询文章分类及该分类文章的数目
hibernate刚学,我的解决方案如下,不知道大家有什么好的方法,请赐教
public List<Sort> getAllSort() {
//		String hql = "from Sort sort_ order by sort_.id desc";
//		return (List<Sort>)this.getHibernateTemplate().find(hql);
		
		Session session =  HibernateUtil.getSession();
		
		Transaction tx = session.beginTransaction();
		Connection conn = session.connection();
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			ps = conn.prepareStatement("SELECT sort_.id_,sort_.name_,sort_.tag_,COUNT(sort_id) as counts FROM note_,sort_ WHERE sort_id=sort_.id_ GROUP BY sort_id ORDER BY counts desc");
			rs = ps.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		} 		
		tx.commit();
		
		List<Sort> list = new ArrayList<Sort>();
		Sort sort = null;
		try {
			while(rs.next()){
				sort = new Sort();
				sort.setId(rs.getString(1));
				sort.setName(rs.getString(2));
				sort.setTag(rs.getInt(3));
				sort.setCounts(rs.getInt(4));
				list.add(sort);
				SysLog.loger(rs.getString(1));
				SysLog.loger(rs.getString(2));
				SysLog.loger(rs.getInt(3));
				SysLog.loger(rs.getInt(4));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return list;
	}



======================================================
table:note_ (表示文章列表)
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id_         | varchar(255) | NO   | PRI |         |       |
| title_      | varchar(50)  | YES  |     | NULL    |       |
| content_    | text         | YES  |     | NULL    |       |
| createTime_ | datetime     | YES  |     | NULL    |       |
| visitCount_ | int(11)      | YES  |     | NULL    |       |
| sort_id     | varchar(255) | YES  | MUL | NULL    |       |
+-------------+--------------+------+-----+---------+-------+

table:sort_(表示文章的类别)
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id_   | varchar(255) | NO   | PRI |         |       |
| name_ | varchar(50)  | YES  |     | NULL    |       |
| tag_  | int(11)      | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

Note.java
private String id;
private String title;
private Sort sort;
private String content;
private Date createTime;
private int visitCount;
...getter,setter

Sort.java
private String id;
private String name;
private Set Note;
private int tag;
private int counts;
...getter,setter

Note.hbm.xml
<id name="id" type="string" column="id_">
<generator class="uuid"></generator>
</id>
<property name="title" type="string" column="title_" length="50" />
<property name="content" type="string" column="content_" length="1024" />
<property name="createTime" type="java.util.Date" column="createTime_" length="50" />
<property name="visitCount" type="int" column="visitCount_" length="50" />
<many-to-one name="sort" column="sort_id"/>

Sort.hbm.xml
<id name="id" type="string" column="id_">
<generator class="uuid"></generator>
</id>
<property name="name" type="string" column="name_" length="50" />
<property name="tag" column="tag_" length="50" />
<set name="note" cascade="save-update">
<key column="sort_id"></key>
<one-to-many class="Note"/>
</set>
分享到:
评论
2 楼 xiaoban0514 2009-08-06  
没有关系,,就是因为不会用oo的思想去查询所有旧出此下策了。。。
1 楼 zuzg 2009-08-06  
这个做法和hibernate有关系吗?

相关推荐

    hibernate关联查询 实例源码

    hibernate关联查询 实例源码 java web 如果不明白hibernate关联查询不明白的可以看看,保证马上学会,注释,数据库都有,很简单易学的源码,谢谢下载!

    hibernateHQL关联查询

    通过本文的介绍,我们不仅回顾了数据库表连接的基础知识,还深入了解了Hibernate HQL关联查询的实现原理及应用方法。对于开发者而言,掌握HQL关联查询不仅可以提高查询效率,还能让代码更加简洁易懂。希望本文能帮助...

    hibernate关联映射详解

    hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...

    hibernate关联查询

    **hibernate关联查询详解** Hibernate,作为Java领域中的一款流行的ORM(对象关系映射)框架,极大地简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库事务。在实际项目中,我们经常需要处理对象...

    Hibernate关联关系练习【全】

    总之,Hibernate关联关系是理解其工作原理的关键,它使得Java对象和数据库记录之间的映射变得简单。通过练习,你可以掌握如何配置和使用这些关系,以及如何进行相关的查询操作,从而提升你的开发效率和代码质量。...

    hibernate关联映射实例

    本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中至关重要的概念。 1. **一对多关联映射**: 在现实世界中,一个实体可能会与多个其他实体相关联,...

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...

    Hibernate关联关系

    本文将以“Hibernate关联关系”为主题,详细介绍Hibernate中关联关系的创建及使用方法。 #### 关联关系概述 在关系型数据库中,实体之间通常存在一对一、一对多、多对一和多对多等关联关系。对于这些关系,...

    hibernate多表联合查询

    ### Hibernate多表联合查询详解 #### 一、引言 在实际项目开发中,我们经常需要处理复杂的数据库查询,特别是涉及到多个表之间的关联查询。Hibernate作为一款流行的Java持久层框架,提供了一种非常便捷的方式来处理...

    Hibernate 关联关系解除

    一、Hibernate关联关系介绍 在Hibernate中,关联关系主要包括以下几种: 1. 一对一(OneToOne):一个实体对应另一个实体的唯一实例。 2. 一对多(OneToMany):一个实体可以与多个其他实体相关联。 3. 多对一...

    hibernate映射关系关联查询

    关于hibernate的关联操作 分享下

    hibernate关联关系总结

    Hibernate关联关系是Java持久化框架Hibernate中的核心概念,它允许我们在数据库中建立对象之间的关系映射,以便在程序中操作对象时,可以自动处理与数据库的交互。本篇将深入探讨Hibernate的四种主要关联关系:一对...

    Hibernate关联映射

    9. Hibernate 一对一外键双向关联、主键双向关联、连接表双向关联、一对多外键双向关联、一对多连接表双向关联、多对多双向关联: 这些关联方式与单向关联类似,区别在于两个实体类都知道彼此的关联。在双向关联中...

    Hibernate中查询语句

    Hibernate中的查询方法若HQL,详细讲解HQL与使用的具体例子

    hibernate 关联映射(二) one to one(单向)

    本篇文章将深入探讨Hibernate中的关联映射,特别是One-to-One(一对一)关联,这是一种表示两个实体之间一对一关系的映射方式。我们将通过源码分析和实际例子来理解其工作原理。 ### 一、One-to-One关联概述 在...

    Hibernate 多表连接分页查询示范项目

    总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...

    Hibernate 关联关系映射分类

    在深入探讨Hibernate关联关系映射分类之前,我们首先简要回顾一下Hibernate框架的基本概念。Hibernate是一种持久层框架,主要用于Java应用程序中的对象关系映射(ORM),它能够将面向对象的数据模型转换为数据库中的...

    hibernate关联关系2

    在本项目中,"hibernate关联关系2"是一个关于使用Hibernate框架处理数据库关联关系的实战案例。Hibernate是一个流行的开源对象关系映射(ORM)工具,它允许开发人员使用Java对象来操作数据库,极大地简化了数据库...

    Hibernate关联关系映射目录

    ### Hibernate关联关系映射 #### 一、单向关联 单向关联指的是对象之间的关联关系只在一个方向上存在,也就是说这种关联关系仅在一个类中表示出来,在另一个类中不体现这种关联。 ##### 1. 一对一外键单向关联 ...

Global site tag (gtag.js) - Google Analytics