类的继承(joined-subclass)

 

类的继承(joined-subclass) - 398198920 - 冰冻三尺非一日之寒

titem.sql

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tbook]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tbook]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tdvd]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tdvd]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[titem]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[titem]
GO

CREATE TABLE [dbo].[tbook] (
 [id] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [pagecount] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tdvd] (
 [id] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [regioncode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[titem] (
 [id] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [manufacturer] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

hibernate2.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="dialect">org.hibernate.dialect.SQLServerDialect</property>
 <property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=mldn</property>
 <property name="connection.username">sa</property>
 <property name="connection.password"></property>
 <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
 <property name="myeclipse.connection.profile">ss</property>
 <property name="show_sql">true</property>
 <mapping resource="org/lxh/hibernate04/Titem.hbm.xml" />

</session-factory>

</hibernate-configuration>

Titem.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 - Hibernate Tools
-->
<hibernate-mapping>
    <class name="org.lxh.hibernate04.TItem" table="titem">
        <id name="id" type="string">
            <column name="id" length="32" />
            <generator class="assigned" />
        </id>
        <property name="name" type="string">
            <column name="name" length="20" not-null="true" />
        </property>
        <property name="manufacturer" type="string">
            <column name="manufacturer" length="20" />
        </property>
        <joined-subclass name="org.lxh.hibernate04.TBook" table="tbook">
         <key column="id"></key>
         <property name="pagecount" type="java.lang.Integer" column="pagecount"></property>
        </joined-subclass>
        <joined-subclass name="org.lxh.hibernate04.TDvd" table="tdvd">
         <key column="id"></key>
         <property name="regioncode" type="java.lang.String" column="regioncode"></property>
        </joined-subclass>
    </class>
</hibernate-mapping>

Titem.java

package org.lxh.hibernate04;
public class TItem {
     private String id;
     private String name;
     private String manufacturer;
    public String getId() {
        return this.id;
    }
   
    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }
   
    public void setName(String name) {
        this.name = name;
    }

    public String getManufacturer() {
        return this.manufacturer;
    }
   
    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }
}
TBook.java

package org.lxh.hibernate04;

public class TBook extends TItem {
 private int pagecount;

 public int getPagecount() {
  return pagecount;
 }

 public void setPagecount(int pagecount) {
  this.pagecount = pagecount;
 }
}

TDvd.java

package org.lxh.hibernate04;

public class TDvd extends TItem {
 private String regioncode;

 public String getRegioncode() {
  return regioncode;
 }

 public void setRegioncode(String regioncode) {
  this.regioncode = regioncode;
 }
}

ItemOperate.java

package org.lxh.hibernate04;

import java.util.Iterator;

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

public class ItemOperate {
 private Session session=null;
 public ItemOperate(){
  Configuration config=new Configuration().configure("hibernate2.cfg.xml");
  SessionFactory factory=config.buildSessionFactory();
  this.session=factory.openSession();
 }
 public void insert(TItem item){
  this.session.save(item);
  this.session.beginTransaction().commit();
  
 }
 public TItem queryById(String id){
  TItem item=null;
  String hql="from TItem as t where t.id=?";
  Query q=this.session.createQuery(hql);
  q.setString(0, id);
  Iterator iter=q.list().iterator();
  while(iter.hasNext()){
   item=(TItem)iter.next();
  }
  return item;
 }
}
Test.java

package org.lxh.hibernate04;

public class Test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  ItemOperate to=new ItemOperate();
//  TBook book=new TBook();
//  book.setId("m001");
//  book.setName("JAVA EE");
//  book.setManufacturer("www.mldn.cn");
//  book.setPagecount(888);
//  to.insert(book);
  
//  TDvd dvd=new TDvd();
//  dvd.setId("m002");
//  dvd.setManufacturer("mldn");
//  dvd.setName("J2EE");
//  dvd.setRegioncode("6");
//  to.insert(dvd);
  
  TBook book=(TBook)to.queryById("m001");
  System.out.println(book.getId());
  System.out.println(book.getManufacturer());
  System.out.println(book.getName());
  System.out.println(book.getPagecount());
 }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值