導出建表SQL如下: /*==============================================================*//* DBMS name: MySQL 5.0 *//* Created on: 2008-12-8 23:05:32 *//*==============================================================*/drop table if exists address; drop table if exists person; /*==============================================================*//* Table: address *//*==============================================================*/create table address( id bigintnot null comment'ID', detail varchar(120)not null comment'詳細地址', PRimary key (id)) type = InnoDB; alter table address comment'地址'; /*==============================================================*//* Table: person *//*==============================================================*/create table person( id bigintnot null auto_increment comment'ID', name varchar(24) not null comment '姓名', primary key (id)) type = InnoDB; alter table person comment'人'; alter table addressadd constraint FK_Reference_2foreign key (id) references person (id) on delete restricton update restrict; 三、對象模型代碼 public class Personimplements java.io.Serializable { private Long id; private String name; private Address address; public class Addressimplements java.io.Serializable { private Long id; private Person person; private String detail; 四、映射代碼<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="entity.Person" table="person"> <id name="id" type="java.lang.Long"> <columnname="id" /> <generatorclass="identity"/> </id> <propertyname="name"type="java.lang.String"> <columnname="name"length="24"not-null="true"> <comment>姓名</comment> </column> </property> <!-- cascade="all":在保存person對象的時候,級聯保存person對象關聯的address對象 --> <one-to-onename="address"cascade="all"/> </class></hibernate-mapping> <?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="entity.Address" table="address" catalog="mydb"> <id name="id" type="java.lang.Long"> <columnname="id" /> <!-- class="foreign": 一對一主鍵映射中,使用另外一個相關聯的對象的標識符--> <generatorclass="foreign"> <paramname="property">person</param> </generator> </id> <propertyname="detail"type="java.lang.String"> <columnname="detail"length="120"not-null="true"> <comment>詳細地址</comment> </column> </property> <!-- 表示在address表存在一個外鍵約束,外鍵參考相關聯的表person --> <one-to-onename="person"constrained="true"/> </class></hibernate-mapping> 五、Hibernate配置<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration><session-factory> <propertyname="connection.username">root</property> <propertyname="connection.url"> jdbc:mysql://localhost:3306/mydb </property> <propertyname="dialect"> org.hibernate.dialect.MySQLDialect </property> <propertyname="connection.passWord">xiaohui</property> <propertyname="connection.driver_class"> com.mysql.jdbc.Driver </property> <propertyname="show_sql">true</property> <propertyname="format_sql">true</property> <mapping resource="entity/Person.hbm.xml" /> <mapping resource="entity/Address.hbm.xml" /> </session-factory></hibernate-configuration>新聞熱點
疑難解答