- 浏览: 606613 次
文章分类
- 全部博客 (411)
- 常用工具 (21)
- 喜好 (14)
- 英语 (3)
- java (51)
- ext (4)
- css (44)
- php (34)
- window (7)
- jquery (21)
- js (31)
- struts (4)
- tomcat (1)
- struts2 (11)
- 网络 (4)
- c# (7)
- linux (27)
- oracle (15)
- tag标签 (5)
- 生成静态页面 (6)
- sql (12)
- hibernate (13)
- DesignPattern (3)
- spring (2)
- flex (17)
- excel应用 (1)
- 报表 (2)
- 业界 (2)
- 数据建模 (1)
- 平板 (1)
- ppt (1)
- rich (1)
最新评论
-
youngdze:
受教了,谢谢!
十步解决php utf-8编码 -
DiLiya:
感谢你的讲解;帮了大忙了!
解决-innerHTML无法在TBODY中使用 -
eppen:
强的没话说。帮了大忙。感谢goby2008 ,感谢google ...
解决-innerHTML无法在TBODY中使用 -
cxs4808:
rr
flex 设计模式 -
liuxingvsyou:
3个jQuery弹出窗口插件
User.java
package com.goby.Hibernate.bean; import java.util.Set; public class User { private int id; private String name; private Set roles; public Set getRoles() { return roles; } public void setRoles(Set roles) { this.roles = roles; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Role.java
package com.goby.Hibernate.bean; import java.util.Set; public class Role { private int id; private String name; private Set users; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set getUsers() { return users; } public void setUsers(Set users) { this.users = users; } }
user.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.goby.Hibernate.bean"> <class name="User" table="t_user"> <id name="id"> <generator class="native"/> </id> <property name="name"></property><set name="roles" table="user_role" cascade="save-update" fetch="join"> <key column="userid" /> <many-to-many class="Role" column="roleid" /> </set> </class> </hibernate-mapping>
Role.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.goby.Hibernate.bean"> <class name="Role" table="t_role"> <id name="id"> <generator class="native"/> </id> <property name="name"></property> <set name="users" table="user_role" cascade="save-update"> <key column="roleid"/> <many-to-many class="User" column="userid"/> </set> </class> </hibernate-mapping>
hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory > <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate_ManytoMany</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">seebig</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">false</property> <mapping resource="com/goby/Hibernate/bean/User.hbm.xml" /> <mapping resource="com/goby/Hibernate/bean/Role.hbm.xml" /> </session-factory> </hibernate-configuration>
test.java
package test; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import junit.framework.TestCase; import org.hibernate.Session; import com.goby.Hibernate.bean.HibernateUtils; import com.goby.Hibernate.bean.Role; import com.goby.Hibernate.bean.User; public class test extends TestCase { public void testSave(){ Session session = null; try{ session = HibernateUtils.getSession(); session.beginTransaction(); Role role1 = new Role(); role1.setName("manager"); Role role2 = new Role(); role2.setName("officer"); Role role3 = new Role(); role3.setName("normal"); Set roles1 = new HashSet(); roles1.add(role1); roles1.add(role2); Set roles2 = new HashSet(); roles2.add(role1); roles2.add(role3); User user1 = new User(); user1.setName("goby"); user1.setRoles(roles1); User user2 = new User(); user2.setName("qq"); user2.setRoles(roles2); session.save(user1); session.save(user2); session.getTransaction().commit(); }catch(Exception ex){ ex.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } } /* * 从User类中获取数据 */ public void testload(){ Session session = null; try{ session = HibernateUtils.getSession(); session.beginTransaction(); User user = (User)session.load(User.class, 3); System.out.println("user.name="+user.getName()); Set roles = user.getRoles(); for(Iterator iter = roles.iterator();iter.hasNext();){ Role role = (Role)iter.next(); System.out.println("role.name="+role.getName()); } session.getTransaction().commit(); }catch(Exception ex){ ex.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } } /* * 从Role类中获取数据 */ public void testload2(){ Session session = null; try{ session = HibernateUtils.getSession(); session.beginTransaction(); Role role = (Role)session.load(Role.class, 1); System.out.println("role.name="+role.getName()); Set users = role.getUsers(); for(Iterator iter = users.iterator();iter.hasNext();){ User user = (User)iter.next(); System.out.println("user.name="+user.getName()); } session.getTransaction().commit(); }catch(Exception ex){ ex.printStackTrace(); session.getTransaction().rollback(); }finally{ HibernateUtils.closeSession(session); } } }
发表评论
-
nested exception is org.hibernate.TransactionException: JDBC rollback failed
2009-11-26 15:03 3238nested exception is org.hiberna ... -
hibernate 批量删除
2009-11-26 08:31 1124public int deleteBrands(Long[] ... -
hibernate 关系映射指南
2009-11-26 08:29 814在网上看到一个比较好的O/R指南http://www.xyla ... -
用hibernate作为持久层,update是出现了重复记录
2009-11-26 08:28 965用hibernate作为持久层,u ... -
采用编程式事务
2009-08-08 15:00 717采用编程式事务 1、getCurrentSession()与 ... -
hibernate笔记(五) 一对多
2009-07-24 14:07 700Room.java package com.goby.Hib ... -
hibernate笔记(四) 一对一 (唯一外键关联)
2009-07-24 14:01 744Room.hbm.xml <?xml version= ... -
hibernate笔记(三) 一对一 (主键关联)
2009-07-23 17:32 850Room.java package com.goby.Hib ... -
hibernate笔记(一)_补充 建立表代码
2009-07-23 14:11 779建立表代码 :Export.java package com ... -
hibernate笔记(二) 多对一 Many to One
2009-07-23 14:09 789User.java package com.goby.Hib ... -
hibernate笔记(一)_补充 Hibnerateutils
2009-07-23 10:53 737HibernateUtils.java package ... -
hibernate笔记(一)Hibernate_First
2009-07-23 10:45 701User.java package com.goby.Hib ...
相关推荐
4. **映射策略**:Hibernate提供了多种映射策略,用于处理对象和数据库表之间的映射关系,包括一对一、一对多、多对一、多对多等。这些策略使得开发者可以根据不同的业务需求选择最适合的映射方式。 5. **数据库...
以下是对Hibernate的一些关键知识点的详细说明: 1. **异常处理**: 在描述中提到的`org.hibernate.PropertyValueException: not-null property references a null or transient value`是Hibernate抛出的一个常见...
笔记将阐述如何配置和使用这些集合,以及如何处理一对多、一对一、多对一、多对多的关联关系。 9. 性能优化:最后,笔记会探讨一些Hibernate的性能优化技巧,如批处理、缓存策略、延迟加载的合理使用等,以提高应用...
此外,可能还会涉及到 Hibernate 的检索策略,如 HQL(Hibernate Query Language)查询、Criteria 查询和 Criteria API,以及一对多、多对一、一对一和多对多的关联映射。 【pdf讲义】通常会以更加系统和结构化的...
最后,笔记可能还会涵盖一些高级主题,如多对一、一对多、多对多的关系映射,懒加载和立即加载策略,以及自定义类型和事件监听器等。这些内容能够帮助开发者灵活地应对各种复杂的数据库设计和业务场景。 总的来说,...
《Hibernate笔记完整版》 在Web开发领域,Hibernate作为三大框架之一,扮演着至关重要的角色。本文将全面介绍Hibernate,包括其数据持久化的概念、优缺点对比,以及Hibernate的核心概念和编程步骤。 对象持久化是...
如果存在多个数据源,那么每个数据源应有其对应的SessionFactory。 3. Session接口:它是与数据库交互的主要接口,处理对象的持久化操作,如增删查改。同时,Session还提供了事务管理的能力。 4. Transaction接口...
《韩顺平Hibernate笔记》是一份详尽的关于Hibernate框架的学习资料,由知名IT教育专家韩顺平编撰。Hibernate是Java开发中的一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互,使得开发者可以...
Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记
Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...
- **关系映射**:讲解一对一、一对多、多对多等关系类型的映射方法。 - **Hibernate查询(HQL)**:学习Hibernate Query Language的基础及高级特性。 - **在Struts基础上继续完善BBS2006**:结合Struts框架实现BBS应用...
培训期间的hibernate笔记 hibernate笔记 达内培训
以上便是对Hibernate基础的概览,实际开发中,还需要深入了解实体关系映射、集合映射、级联操作、缓存机制、事务管理、性能优化等方面的知识,才能更好地利用Hibernate提升开发效率并保证应用程序的稳定运行。...
在高级主题中,笔记会涉及一对多、多对一、一对一和多对多的关系映射。这些关系映射是ORM的核心特性,使得Java对象与数据库表之间的关联得以建立。此外,还会讲解懒加载(Lazy Loading)和即时加载(Eager Loading)...