转载:http://hi.baidu.com/javajavajava/blog
此示例使用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);
}
}