隨筆-28  評論-15  文章-81  trackbacks-0
           

          一、數據庫的建立(使用MySQL)

          create database if not exists `sampledb`;

          use `sampledb`;

          /*table structure for table `sampledb`.`personinfo` */

          drop table if exists `sampledb`.`room`;

          create table room (

           room_id int not null auto_increment,

           address varchar(32) not null default '',

           primary key (room_id)

          ) type=innodb;

          create database if not exists `sampledb`;

          use `sampledb`;

          /*table structure for table `sampledb`.`personinfo` */

          drop table if exists `sampledb`.`user`;

          create table user (

           user_id int not null auto_increment,

           name varchar(16) not null default '',

           room_id int not null,

           index (room_id),

           foreign key (room_id) references room(room_id),

           primary key (user_id)

          ) type=innodb;

          二、User.java

          package com.tanm.test;

          publicclass User {

              privatelongid;

              private String name;

              private Room room;

              publiclong getId() {

                 returnid;

              }

              publicvoid setId(long id) {

                 this.id = id;

              }

              public String getName() {

                 returnname;

              }

              publicvoid setName(String name) {

                 this.name = name;

              }

              public Room getRoom() {

                 returnroom;

              }

              publicvoid setRoom(Room room) {

                 this.room = room;

              }

          }

          三、User.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">

          <hibernate-mapping>

           <class name="com.tanm.test.User" table="user">

              <id name="id" column="user_id" type="long">

                <generator class="increment"/>

              </id>

              <property name="name" column="name" type="string" not-null="true" />

              <many-to-one name="room" column="room_id" class="com.tanm.test.Room" />

           </class>

          </hibernate-mapping>

          四、Room.java

          package com.tanm.test;

          import java.util.HashSet;

          import java.util.Set;

          publicclass Room {

              privatelongid;

              private String address;

              private Set users = new HashSet();

              public String getAddress() {

                 returnaddress;

              }

              publicvoid setAddress(String address) {

                 this.address = address;

              }

              publiclong getId() {

                 returnid;

              }

              publicvoid setId(long id) {

                 this.id = id;

              }

              public Set getUsers() {

                 returnusers;

              }

              publicvoid setUsers(Set users) {

                 this.users = users;

              }

          }

          五、Room.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">

          <hibernate-mapping>

           <class name="com.tanm.test.Room" table="room">

              <id name="id" column="room_id" unsaved-value="0">

                <generator class="increment"/>

              </id>

              <property name="address" column="address" type="string" not-null="true" />

              <set name="users" table="user" inverse="true" cascade="all">

                 <key column="room_id"/>

                 <one-to-many class="com.tanm.test.User"/>

              </set>

           </class>

          </hibernate-mapping>

          六、Test.java

          package com.tanm.test;

          import org.hibernate.*;

          import org.hibernate.cfg.*;

          publicclass Test {

              publicstaticvoid main(String[] args) throws HibernateException {

                 SessionFactory sessionFactory = new Configuration().configure()

                        .buildSessionFactory();

                 Room room = new Room();

                 room.setAddress("China_xi'an");

                 User user1 = new User();

                 user1.setName("111");

                 User user2 = new User();

                 user2.setName("222");

                 user1.setRoom(room);

                 user2.setRoom(room);

                 room.getUsers().add(user1);

                 room.getUsers().add(user2);

                 Session session = sessionFactory.openSession();

                 Transaction tx = session.beginTransaction();

                 session.save(room);

                 tx.commit();

                 session.close();

                 sessionFactory.close();

              }

          }

          成功運行后的結果:

          Hibernate: insert into room (address, room_id) values (?, ?)

          Hibernate: insert into user (name, room_id, user_id) values (?, ?, ?)

          Hibernate: insert into user (name, room_id, user_id) values (?, ?, ?)
          posted on 2007-10-10 20:53 譚明 閱讀(311) 評論(0)  編輯  收藏 所屬分類: Hibernate

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 华池县| 象山县| 博罗县| 哈巴河县| 华安县| 清新县| 黔西县| 新津县| 白山市| 台北县| 兴化市| 任丘市| 盐源县| 丹江口市| 达拉特旗| 望奎县| 比如县| 台安县| 贵德县| 全椒县| 澄江县| 淳安县| 扎鲁特旗| 贵港市| 泰州市| 镇平县| 泽库县| 天津市| 闻喜县| 光泽县| 广汉市| 西宁市| 玛多县| 高雄县| 伽师县| 延庆县| 阿克苏市| 普兰县| 当雄县| 洞口县| 中牟县|