您的位置:首页 > 其它

Hibernate之---实体映射

2007-08-25 21:12 162 查看
此示例使用myeclipse5.5+Sql 2000数据库

数据库脚本:



CREATE TABLE person (
id int NOT NULL PRIMARY KEY ,
firstname varchar (20) NOT NULL,
lastname varchar (20) NOT NULL ,
address varchar (20) NOT NULL ,
zipcode varchar (6) NOT NULL ,
tel varchar (20)
)

hibernate.cfg.xml

<?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>
<property name="connection.username">sa</property>
<property name="connection.url">
jdbc:microsoft:sqlserver://localhost:1433
</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="myeclipse.connection.profile">mysql2000</property>
<property name="connection.password">sa</property>
<property name="connection.driver_class">
com.microsoft.jdbc.sqlserver.SQLServerDriver
</property>
<property name="show_sql">true</property>
<mapping resource="org/myhibernate/demo01/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>

Person.hbm.xml

<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="org.myhibernate.demo01.Person" table="person"
schema="dbo" catalog="mldn">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="assigned" />
</id>
<component name="name" class="org.myhibernate.demo01.Name">
<property name="firstname" type="java.lang.String">
<column name="firstname" length="20" not-null="true" />
</property>
<property name="lastname" type="java.lang.String">
<column name="lastname" length="20" not-null="true" />
</property>
</component>
<component name="contact"
class="org.myhibernate.demo01.Contact">
<property name="address" type="java.lang.String">
<column name="address" length="20" not-null="true" />
</property>
<property name="zipcode" type="java.lang.String">
<column name="zipcode" length="6" not-null="true" />
</property>
<property name="tel" type="java.lang.String">
<column name="tel" length="20" />
</property>
</component>
</class>
</hibernate-mapping>

Person.java

package org.myhibernate.demo01;

public class Person {

private int id;
private Name name;
private Contact contact;
// Getter/Setter方法
}

Name.java

package org.myhibernate.demo01;
public class Name {
private String firstname;
private String lastname;
// Getter/Setter方法
}

Contact.java

package org.myhibernate.demo01;
public class Contact {
private String address;
private String zipcode;
private String tel;
// Getter/Setter方法
}

PersonDAO.java

package org.myhibernate.demo01;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class PersonDAO {

private Session session;

public PersonDAO() {
Configuration config = new Configuration().configure();
SessionFactory factory = config.buildSessionFactory();
this.session = factory.openSession();
}

public void insert(Person p){
this.session.save(p);
this.session.beginTransaction().commit();
}
}

TestPerson.java

package org.myhibernate.demo01;

public class TestPerson {
public static void main(String[] args) {
Person p = new Person();
PersonDAO pdao = new PersonDAO();
Name name = new Name();
Contact contact = new Contact();

name.setFirstname("胡");
name.setLastname("千好");

contact.setAddress("云南宣威");
contact.setTel("13888888888");
contact.setZipcode("655408");

p.setId(1);
p.setContact(contact);
p.setName(name);

pdao.insert(p);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: