摘要: inverse属性:inverse主要用在一对多和多对多双向关联上,inverse可以被设置到集合标签<set>上,默认inverse为false,所以我们可以从"一"一端和"多"一端维护关联关系,如果设置成inverse为true,则我们只能从多一端来维护关联关系。inverse属性,只影响数据的存储,也就是持久化。一个用户可能拥有多个角色(user-->role)package com.jonsion.hibernate;public class Role {private int id;private String name;public int getId() {re 阅读全文
posted @ 2011-02-18 21:32 魔战 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 建立对象模型1、注意:一对多关联映射,通常用Set这个集合,那么为什么用Set呢?我们可以这样理解:Set里面的对象是不能重复的。当然也可以用其他的。不过一般情况下用Set。一定要用Set这个接口,而不用HashSet。因为Hibernate中有延迟加载。实体对象就实现了延迟加载。也就是采用代理的方式。集合也有延迟加载。hibernate中对JDK中的Set集合进行了扩展,也就是实现了这个接口,所以不能用HashSet。所以要用Set接口。因为hibernate对Set有相应的实现,对Set进行了扩展。2、我们的Set里面就是Student对象的集合。这样就构成了一对多的关系。2.1 Clas 阅读全文
posted @ 2011-02-18 21:01 魔战 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 主键关联映射:让两个对象的id保持相同,这样可以避免多余的字段被创建一对一主键关联映射,其中一个表的主键要引用另一个表的主键即引用外部主键。Person对象的配置文件:<?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> <class name="c 阅读全文
posted @ 2011-02-18 19:12 魔战 阅读(465) 评论(0) 推荐(0) 编辑
摘要: <hibernate-configuration><session-factory> <property name="hibernate.connection.url">jdbc:mysql://192.168.1.108/test1?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=gbk </property> <property name="hibernate.connection.dirver_class">com.mysql.jdbc.D 阅读全文
posted @ 2011-02-18 16:08 魔战 阅读(991) 评论(0) 推荐(0) 编辑
摘要: 映射的本质是将关联关系映射到数据库,而关联关系是对象在内存中的引用关系。多对一的关系:多个对象对应一个对象,比如多个学生对应着一个班级,那么在对象的描述上只需要在学生类中持有一个班级对象的引用即可。<many-to-one>标签会在多的一端添加一个外键,指向一得一端,这个外键是由<many-to-one>中的column属性定义的,如果忽略属性,默认创建的外键与实体类的属性名相同。User对象:package com.jzq.hibernate;public class User {int id;String name;Group group;public Group 阅读全文
posted @ 2011-02-18 15:09 魔战 阅读(504) 评论(0) 推荐(0) 编辑
摘要: hibernate基本映射类---->数据库表普通属性---->表字段通过<class>映射到数据库表,通过<property>将普通属性映射到表字段,所谓的普通属性不包括自定义类,集合和数组等。一,实体类定义原则:1,实体类需要定义一个无参构造方法2,提供一个标识属性3,使用非final类4,为字段提供set和get访问器二,hibernate-mapping相关配置标签1,<hibernate-mapping default-access="field|property|ClassName"package="package.name"/>de 阅读全文
posted @ 2011-02-18 12:21 魔战 阅读(599) 评论(0) 推荐(0) 编辑
摘要: Query(查询):接口运行在数据库上执行查询并控制查询如何执行,查询语句使用HQL或者本地数据库的sql方法编写。调用代码:Query query=session.createQuery("from User");其中User表示的是类。setFirstResult 是起始数据,setMaxResults是查询显示的数据。如果放在分页程序里边 setFirstResult的值应该是 (当前页面-1)X每页条数,setMaxResults 就是每页的条数了。一、query.scroll()和query.setFirstResult(),query.setMaxResults();这两种方法都可 阅读全文
posted @ 2011-02-18 10:39 魔战 阅读(1170) 评论(0) 推荐(0) 编辑