posts - 10, comments - 9, trackbacks - 0, articles - 17

          Hibernate學習筆記1--映射起步

          Posted on 2008-12-09 15:10 wesley1987 閱讀(135) 評論(0)  編輯  收藏
          1,操作對象,將數據庫里的表映射為持久化類。
              一個商品類 Good,一個供應商 Offer類,一個Offer可以提供多個商品。
          商品表字段: goodId, offerId, goodName, price .
          供應商字段:    offerId ,offerName.
          Good.hbm.xml
          :<hibernate-mapping>
              <class name="com.neusoft.Good" table="GOOD" schema="WULIU">
                  <id name="goodid" type="java.lang.Long">
                      <column name="GOODID" precision="10" scale="0" />
                      <generator class="assigned" />
                  </id>
                  <many-to-one name="offer" class="com.myweb.Offer" fetch="select">
                      <column name="OFFERID" precision="10" scale="0" />
                  </many-to-one>

                  <property name="goodname" type="java.lang.String">
                      <column name="GOODNAME" length="40" />
                  </property>
                  <property name="price" type="java.lang.Double">
                      <column name="PRICE" precision="10" />
                  </property>

                  </property>
              </class>
          </hibernate-mapping>

          Offer.hbm.xml

          <hibernate-mapping>
              <class name="com.neusoft.Offer" table="OFFER" schema="WULIU">
                  <id name="offerid" type="java.lang.Long">
                      <column name="OFFERID" precision="10" scale="0" />
                      <generator class="assigned" />
                  </id>
                  <property name="offername" type="java.lang.String">
                      <column name="OFFERNAME" length="30" />
                  </property>
                  <set name="goods" inverse="true" lazy="true" cascade="delete" >
                      <key>
                          <column name="OFFERID" precision="10" scale="0" />
                      </key>

                      <one-to-many class="com.neusoft.Good" />
          <!--java.util.Set : private Set goods = new HashSet(0);-->

                  </set>
              </class>
          </hibernate-mapping>

          lazy="true" 與特定的Offer對象相對應的Good不會像Offer對象一樣由同一個SQL查詢獲取
          inverse="true" 表示用此表示兩者之間的關系。
          cascade="delete" 級聯刪除

          由此配置文件可生成對應的持久化類(即JavaBeans類)  Good.java, Offer.java

          2. org.hibernate.cfg.Configuration 創建一個HibernateSessionFactory。
          import org.hibernate.Session;
          import org.hibernate.cfg.Configuration;

          public class HibernateSessionFactory {
                    
                    private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";//xml中配置了數據庫的連接信息。
                  private static org.hibernate.SessionFactory sessionFactory;
                  
          private static String configFile = CONFIG_FILE_LOCATION;

              
          static {
                  
          try {
                      configuration.configure(configFile);
                      sessionFactory 
          = configuration.buildSessionFactory();
                  } 
          catch (Exception e) {
                      System.err
                              .println(
          "%%%% Error Creating SessionFactory %%%%");
                      e.printStackTrace();
                  }
              }
              
          private HibernateSessionFactory() {
              }

              public static org.hibernate.SessionFactory getSessionFactory() {
                    return sessionFactory;
               }

          }
          (這是用Myeclipse自動生成的代碼中一小段)
          創建了SessionFactory,就可以用getSession方法來實現操作了,如
          public void save(Good transientInstance) {
                    log.debug("saving Good instance");
                try {
                         getSession().save(transientInstance);
                         log.debug("save successful");
                } catch (RuntimeException re) {
                         log.error("save failed", re);
                         throw re;
                }
           }





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


          網站導航:
           
          主站蜘蛛池模板: 乌海市| 屯门区| 镇康县| 霍林郭勒市| 炉霍县| 竹山县| 汽车| 寻乌县| 双辽市| 巴彦淖尔市| 赫章县| 荃湾区| 密云县| 军事| 韩城市| 旬阳县| 航空| 比如县| 凤冈县| 广元市| 金门县| 大丰市| 正镶白旗| 手游| 马龙县| 广丰县| 天祝| 汕头市| 大城县| 呈贡县| 明水县| 蒲江县| 双鸭山市| 隆安县| 平山县| 通化县| 福鼎市| 大邑县| 南部县| 子洲县| 噶尔县|