浪跡天涯
          web報表設計器....
          posts - 61,comments - 71,trackbacks - 0
          <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(9)

          隨筆分類(64)

          隨筆檔案(61)

          相冊

          友情聯接

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜



          針對上面的角色人員表如何用hibernate實現映射關系呢,因為此表中的兩個字段是其它兩表中主鍵,在本表中即使是主鍵又是外鍵,下面說明一下操作這張表。
          第一步:首先生成員工信息表和角色管理表的javaBean和.hbm.xml文件,這個是單表,這里不多講;
                      com.insigma.hr.eduj.ygxx.model.Ygxx.java,
                      com.insigma.hr.eduj.ygxx.model.Ygxx.hbm.xml
                      com.insigma.hr.eduj.jsgl.model.Jsgl.java,
                      com.insigma.hr.eduj.jsgl.model.Jsgl.hbm.xml
                      保證員工信息表和角色管理表能正常操作數據庫(增,修,刪,查);
          第二步:生成角色人員表對應的映射文件如下:
                      1).Jsry.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="com.insigma.hr.eduj.jsry.model.Jsry" table="jsry" catalog="hr">
                  
          <composite-id name="id" class="com.insigma.hr.eduj.jsry.model.JsryId">
                      
          <key-many-to-one name="jsgl" class="com.insigma.hr.eduj.jsgl.model.Jsgl">
                          
          <column name="JSBH" />
                      
          </key-many-to-one>
                      
          <key-many-to-one name="ygxx" class="com.insigma.hr.eduj.ygxx.model.Ygxx">
                          
          <column name="YGBH" length="20" />
                      
          </key-many-to-one>
                  
          </composite-id>
              
          </class>
          </hibernate-mapping>
             2).JsryId.java這個javabean中存放了兩個屬性分別對應員工信息和角色管理表的javabean對象,內容如下:
          public class JsryId  implements java.io.Serializable {
              
          private Jsgl jsgl;
              
          private Ygxx ygxx;
              
          public Jsgl getJsgl() {
                  
          return jsgl;
              }

              
          public void setJsgl(Jsgl jsgl) {
                  
          this.jsgl = jsgl;
              }

              
          public Ygxx getYgxx() {
                  
          return ygxx;
              }

              
          public void setYgxx(Ygxx ygxx) {
                  
          this.ygxx = ygxx;
              }

          }

             3).Jsry.java這個javabean中只有一個屬性,就是我們上面剛才新建的JsryId這個類對象;內容如下:

          public class Jsry implements java.io.Serializable {

           // Constructors
           private JsryId id;

           /** default constructor */
           public Jsry() {
           }

           /** full constructor */
           public Jsry(JsryId id) {
            this.id = id;
           }

           public JsryId getId() {
            return id;
           }

           public void setId(JsryId id) {
            this.id = id;
           }
          }

          第三步:dao中方法如下:

          public void save(Jsry jsry) {
            log.debug("saving Jsry instance");
            try {
             getHibernateTemplate().saveOrUpdate(jsry);
             log.debug("save successful");
            } catch (RuntimeException re) {
             log.error("save failed", re);
             throw re;
            }
           }

           public void delete(Jsry jsry) {
            log.debug("deleting Jsry instance");
            try {
             getHibernateTemplate().delete(jsry);
             log.debug("delete successful");
            } catch (RuntimeException re) {
             log.error("delete failed", re);
             throw re;
            }
           }

           public Jsry findById(com.insigma.hr.eduj.jsry.model.JsryId id) {
            log.debug("getting Jsry instance with id: " + id);
            try {
             Jsry instance = (Jsry) getHibernateTemplate().get(
               "com.insigma.hr.eduj.jsry.model.Jsry", id);
             return instance;
            } catch (RuntimeException re) {
             log.error("get failed", re);
             throw re;
            }
           }
           
           public List getJsgllist(String sql) {
            String sqls = "select t.* from Jsgl t where 1=1 " + sql;
            SQLQuery query = getHibernateTemplate().getSessionFactory()
              .getCurrentSession().createSQLQuery(sqls);
            query.addEntity("t", Jsry.class);
            List topList = query.list();
            return topList;
           }


          第四步:測試

           public static void main(String[] args) {
            // TODO Auto-generated method stub
             ApplicationContext appContext = new FileSystemXmlApplicationContext("/src/applicationContext.xml");
                JsryService jsryService=(JsryService) appContext.getBean("jsryService");
               

            Jsry jsry = new Jsry();
            JsryId id = new JsryId();
            Jsgl jsgl = new Jsgl();
            jsgl.setJsbh(1);
            
            Ygxx ygxx = new Ygxx();
            ygxx.setYgbh("1");
            id.setYgxx(ygxx);
            id.setJsgl(jsgl);
            
            jsry.setId(id);
            jsryService.save(jsry);
           }





          posted on 2012-09-21 17:19 JJCEA 閱讀(1654) 評論(0)  編輯  收藏 所屬分類: java日記hibernate
          主站蜘蛛池模板: 娱乐| 平山县| 开化县| 巴楚县| 宜城市| 叙永县| 延安市| 稻城县| 蓬莱市| 长阳| 凤庆县| 敖汉旗| 彭州市| 抚顺县| 雷州市| 灵台县| 怀柔区| 敖汉旗| 平阳县| 宁津县| 自治县| 蒲江县| 平潭县| 石城县| 华容县| 武宁县| 密山市| 佳木斯市| 句容市| 鄂温| 威宁| 邓州市| 平定县| 静宁县| 宜章县| 泾源县| 上高县| 西畴县| 濉溪县| 紫金县| 新平|