zoukankan      html  css  js  c++  java
  • Hibernate逍遥游记-第10章 映射继承关系-001继承关系树中的每个具体类对应一个表

    1.

    2.

     1 <?xml version="1.0"?>
     2 <!DOCTYPE hibernate-mapping
     3 PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5 <hibernate-mapping >
     6 
     7    <class name="mypack.CMonkey" table="CMONKEYS">
     8       <id name="id" type="long" column="ID">
     9         <generator class="increment"/>
    10       </id>
    11    
    12       <property name="name" type="string" column="NAME" />
    13  
    14       <property name="length" column="LENGTH" type="double" />
    15 
    16       <many-to-one
    17         name="team"
    18         column="TEAM_ID"
    19         class="mypack.Team"
    20       />
    21 
    22     </class>
    23  
    24 </hibernate-mapping>

    3.

     1 <?xml version="1.0"?>
     2 <!DOCTYPE hibernate-mapping
     3 PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5 <hibernate-mapping >
     6 
     7    <class name="mypack.JMonkey" table="JMONKEYS">
     8       <id name="id" type="long" column="ID">
     9         <generator class="increment"/>
    10       </id>
    11    
    12       <property name="name" type="string" column="NAME" />
    13  
    14       <property name="color" column="COLOR" type="string" />
    15 
    16       <many-to-one
    17         name="team"
    18         column="TEAM_ID"
    19         class="mypack.Team"
    20       />
    21 
    22     </class>
    23  
    24 </hibernate-mapping>

    4.

     1 <?xml version="1.0"?>
     2 <!DOCTYPE hibernate-mapping
     3 PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     5 <hibernate-mapping >
     6 
     7   <class name="mypack.Team" table="TEAMS" >
     8     <id name="id" type="long" column="ID">
     9       <generator class="increment"/>
    10     </id>
    11 
    12     <property name="name" type="string"  column="NAME" />
    13 
    14   </class>
    15 </hibernate-mapping>

    5.

     1 package mypack;
     2 
     3 abstract public class Monkey{
     4 
     5     private Long id;
     6     private String name;
     7     private Team team;
     8 
     9     /** full constructor */
    10     public Monkey(String name,Team team) {
    11         this.name = name;
    12         this.team = team;
    13     }
    14 
    15     /** default constructor */
    16     public Monkey() {
    17     }
    18 
    19     public Long getId() {
    20         return this.id;
    21     }
    22 
    23     public void setId(Long id) {
    24         this.id = id;
    25     }
    26 
    27     public String getName() {
    28         return this.name;
    29     }
    30 
    31     public void setName(String name) {
    32         this.name = name;
    33     }
    34 
    35     public Team getTeam() {
    36         return this.team;
    37     }
    38 
    39     public void setTeam(Team team) {
    40         this.team = team;
    41     }
    42 }

    6.

     1 package mypack;
     2 public class CMonkey extends Monkey {
     3 
     4     private double length;
     5 
     6     /** full constructor */
     7     public CMonkey(String name, double length,Team team) {
     8         super(name,team);
     9         this.length=length;
    10         
    11     }
    12 
    13     /** default constructor */
    14     public CMonkey() {
    15     }
    16 
    17    public double getLength() {
    18         return this.length;
    19     }
    20 
    21     public void setLength(double length) {
    22         this.length = length;
    23     }
    24 }

    7.

     1 package mypack;
     2 
     3 public class JMonkey extends Monkey{
     4 
     5     private String color;
     6 
     7     /** full constructor */
     8     public JMonkey(String name, String color,Team team) {
     9         super(name,team);
    10         this.color=color;
    11     }
    12 
    13     /** default constructor */
    14     public JMonkey() {
    15     }
    16 
    17     public String getColor() {
    18         return this.color;
    19     }
    20 
    21     public void setColor(String color) {
    22         this.color = color;
    23     }
    24     
    25 }

    8.

     1 package mypack;
     2 
     3 import java.util.Set;
     4 import java.util.HashSet;
     5 
     6 public class Team{
     7 
     8     private Long id;
     9     private String name;
    10     private Set monkeys=new HashSet();
    11 
    12     /** full constructor */
    13     public Team(String name, Set monkeys) {
    14         this.name = name;
    15         this.monkeys = monkeys;
    16     }
    17 
    18     /** default constructor */
    19     public Team() {
    20     }
    21 
    22     /** minimal constructor */
    23     public Team(Set monkeys) {
    24         this.monkeys = monkeys;
    25     }
    26 
    27     public Long getId() {
    28         return this.id;
    29     }
    30 
    31     public void setId(Long id) {
    32         this.id = id;
    33     }
    34 
    35     public String getName() {
    36         return this.name;
    37     }
    38 
    39     public void setName(String name) {
    40         this.name = name;
    41     }
    42 
    43     public Set getMonkeys() {
    44         return this.monkeys;
    45     }
    46 
    47     public void setMonkeys(Set monkeys) {
    48         this.monkeys = monkeys;
    49     }
    50 }

    9.

      1 package mypack;
      2 
      3 import org.hibernate.*;
      4 import org.hibernate.cfg.Configuration;
      5 import java.util.*;
      6 import java.sql.*;
      7 
      8 public class BusinessService{
      9   public static SessionFactory sessionFactory;
     10   static{
     11      try{
     12       Configuration config = new Configuration().configure();
     13       sessionFactory = config.buildSessionFactory();
     14     }catch(RuntimeException e){e.printStackTrace();throw e;}
     15 
     16   }
     17 
     18   public void saveMonkey(Monkey monkey){
     19       Session session = sessionFactory.openSession();
     20       Transaction tx = null;
     21       List results=new ArrayList();
     22       try {
     23        tx = session.beginTransaction();
     24        session.save(monkey);
     25        tx.commit();
     26     }catch (RuntimeException e) {
     27       if (tx != null) {
     28         tx.rollback();
     29       }
     30       throw e;
     31     } finally {
     32       session.close();
     33     }
     34   }
     35 
     36 
     37   public List findAllMonkeys(){
     38       Session session = sessionFactory.openSession();
     39       Transaction tx = null;
     40 
     41       try {
     42        List results=new ArrayList();
     43        tx = session.beginTransaction();
     44        List jMonkeys=session.createQuery("from JMonkey").list();
     45        results.addAll(jMonkeys);
     46 
     47        List cMonkeys=session.createQuery("from CMonkey").list();
     48        results.addAll(cMonkeys);
     49 
     50       tx.commit();
     51       return results;
     52     }catch (RuntimeException e) {
     53       if (tx != null) {
     54         tx.rollback();
     55       }
     56       throw e;
     57     } finally {
     58       session.close();
     59     }
     60   }
     61 
     62   public Team loadTeam(long id) {
     63       Session session = sessionFactory.openSession();
     64       Transaction tx = null;
     65       try {
     66        tx = session.beginTransaction();
     67        Team team=(Team)session.get(Team.class,new Long(id));
     68 
     69        List jMonkeys=session
     70            .createQuery("from JMonkey j where j.team.id="+id)
     71            .list();
     72        team.getMonkeys().addAll(jMonkeys);
     73 
     74        List cMonkeys=session
     75            .createQuery("from CMonkey c where c.team.id="+id)
     76            .list();
     77        team.getMonkeys().addAll(cMonkeys);
     78 
     79       tx.commit();
     80       return team;
     81     }catch (RuntimeException e) {
     82       if (tx != null) {
     83         tx.rollback();
     84       }
     85       throw e;
     86     } finally {
     87       session.close();
     88     }
     89   }
     90 
     91    public void test() {
     92       List monkeys=findAllMonkeys();
     93       printAllMonkeys(monkeys.iterator());
     94 
     95       Team team=loadTeam(1);
     96       printAllMonkeys(team.getMonkeys().iterator());
     97 
     98       Monkey monkey=new JMonkey("Mary","yellow",team);
     99       saveMonkey(monkey);
    100 
    101   }
    102 
    103   private void printAllMonkeys(Iterator it){
    104      while(it.hasNext()){
    105         Monkey m=(Monkey)it.next();
    106         if(m instanceof JMonkey)
    107           System.out.println(((JMonkey)m).getColor());
    108         else
    109           System.out.println(((CMonkey)m).getLength());
    110       }
    111   }
    112   public static void main(String args[]) {
    113     new BusinessService().test();
    114     sessionFactory.close();
    115   }
    116 }

     

    10.

     1 drop database if exists SAMPLEDB;
     2 create database SAMPLEDB;
     3 use SAMPLEDB;
     4 
     5 create table TEAMS (
     6    ID bigint not null,
     7    NAME varchar(15),
     8    primary key (ID)
     9 );
    10 create table JMONKEYS (
    11    ID bigint not null,
    12    NAME varchar(15),
    13    COLOR varchar(15),
    14    TEAM_ID bigint,
    15    primary key (ID)
    16 );
    17 create table CMONKEYS (
    18    ID bigint not null,
    19    NAME varchar(15),
    20    LENGTH double precision,
    21    TEAM_ID bigint,
    22    primary key (ID)
    23 );
    24 alter table JMONKEYS add index IDX1_TEAM(TEAM_ID), add constraint FK1_TEAM foreign key (TEAM_ID) references TEAMS (ID);
    25 alter table CMONKEYS add index IDX2_TEAM(TEAM_ID), add constraint FK2_TEAM foreign key (TEAM_ID) references TEAMS (ID);
    26 
    27 insert into TEAMS(ID,NAME) values(1,'NBA');
    28 
    29 insert into JMONKEYS(ID,NAME,COLOR,TEAM_ID) values(1,'Tom','yellow',1);
    30 
    31 insert into JMONKEYS(ID,NAME,COLOR,TEAM_ID) values(2,'Mike','orange',1);
    32 
    33 insert into CMONKEYS(ID,NAME,LENGTH,TEAM_ID)
    34 values(1,'Jack',1.2,1);
    35 
    36 insert into CMONKEYS(ID,NAME,LENGTH,TEAM_ID)
    37 values(2,'Linda',2.0,1);

    11.

     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <!DOCTYPE hibernate-configuration
     3  PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
     4  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     5 
     6 <hibernate-configuration>
     7     <session-factory>
     8         <property name="dialect">
     9             org.hibernate.dialect.MySQLDialect
    10         </property>
    11         <property name="connection.driver_class">
    12             com.mysql.jdbc.Driver
    13         </property>
    14         <property name="connection.url">
    15             jdbc:mysql://localhost:3306/sampledb
    16         </property>
    17         <property name="connection.username">
    18             root
    19         </property>
    20         <property name="connection.password">
    21             1234
    22         </property>
    23 
    24         <property name="show_sql">true</property>
    25 
    26         <mapping resource="mypack/Team.hbm.xml" />
    27         <mapping resource="mypack/JMonkey.hbm.xml" />
    28         <mapping resource="mypack/CMonkey.hbm.xml" />
    29     </session-factory>
    30 </hibernate-configuration>
  • 相关阅读:
    Hibernate中日期(Date)类型 与oracle中日期的映射处理
    mssql注入经常使用的命令
    EL表达式遍历Map集合
    TomCat项目空间映射 配置
    JSP探针虚拟主机JSP环境检测工具
    什么是RSS
    大U盘容量的烦恼:copy 4G 以上单个文件时总是显示U盘已满
    Java初体验之bool
    何为Cookie
    转测试网站各项性能的31 个免费在线工具
  • 原文地址:https://www.cnblogs.com/shamgod/p/5298959.html
Copyright © 2011-2022 走看看