<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java蜘蛛人 歡迎大家

    歡迎大家 來到我的blog , 如果我身邊的朋友 有什么不懂可以直接來問我 我會細心的幫助你的. 如果網絡上的朋友有什么不懂的 可以加我Java蜘蛛人 QQ48187537
    posts - 54, comments - 192, trackbacks - 0, articles - 1

    dynamic-insert="true" 如果插入的值不為空 他才會把他列入插入語句中  (作用:節約資源)


    <hibernate-mapping package="mypack"> <class>元素中定義的類來自mypack包

     

    <property name="sex" access="field"/> 不會直接調用age的set,get方法. 避免get,set方法里的邏輯值.

     


    <class name="xxx.xxx" table="xxxx" select-before-update=true> 如果設置成true  如果不經常修改java 對象的屬性 就設為true   當對象沒有被修改的時候 他不會執行update 語句  select-before-update=true 可以避免update 盲目的觸發一個觸發器

     

    saveOrUpdate 如果是臨時對象就用save  如果是游離對象才建議用saveOrUpdate 如果傳遞進來的是持久化狀態  就直接返回
    他會自動判斷是游離狀態還是臨時狀態  如果oid=null version=null等.那就是臨時狀態.

     

    hibernate與觸發器 協同工作 ..  假如save 一個數據 會觸發一個觸發器 那就會導致 session緩存的內容和數據庫的內容不協調(不一樣)
     解決方法 : 在save后 調用flush()清除緩存 然后調用refresh() 重新到數據庫當中加載剛才被保存的xxxx對象
    select-before-update=true 可以避免update 盲目的觸發一個觸發器

    <set batch-size="3">  批量查詢  3句查詢語句 一起初始化..

    映射 一對多的關聯

    需要在 xxx.hbm.xml里添加

    <many-to-one
    name="customer"  //用戶表的實例
    columb="CUSTOMER_ID"
    class="mypack.Customer"
    cascade="save-update"  保存或者更新customer的臨時對象
    not-null="true"
    />

      //建立用戶表和訂單表外鍵的映射

    //例子在HibernateDemo16:

    映射一對多雙向自身關系

      //創建食物類.對象
      Categories foodCategory=new Categories(null,"food",new HashSet());
      //創建水果類.對象
      Categories fruitCategory=new Categories(null,"fruit",new HashSet());
      //創建蔬菜類 對象
      Categories vegetableCategory=new Categories(null,"vegetable",new HashSet());
      //創建蘋果 對象
      Categories appleCategory=new Categories(null,"apple",new HashSet());
      //創建橘子對象
      Categories orangeCategory=new Categories(null,"Orange",new HashSet());
      //創建西紅柿 對象
      Categories tomatoCategory=new Categories(null,"tomato",new HashSet());
      
      
      //建立食物類.和水果類的關系
         foodCategory.getCategorieses().add(fruitCategory);
         fruitCategory.setCategories(foodCategory);
        
         //建立食物跟蔬菜關系
         foodCategory.getCategorieses().add(vegetableCategory);
         vegetableCategory.setCategories(foodCategory);
        
         //建立水果和蘋果的關系
         fruitCategory.getCategorieses().add(appleCategory);
         appleCategory.setCategories(fruitCategory);
        
         //建立水果和橘子的關系
         fruitCategory.getCategorieses().add(orangeCategory);
         orangeCategory.setCategories(fruitCategory);
        
         //建立西紅柿跟水果的關系
         fruitCategory.getCategorieses().add(tomatoCategory);
         tomatoCategory.setCategories(fruitCategory);
        
        //建立蔬菜和西紅柿的關系
         tomatoCategory.setCategories(vegetableCategory);
         vegetableCategory.getCategorieses().add(tomatoCategory);
        
         fruitCategory.getCategorieses().remove(tomatoCategory);
        
           Session session=HBF.getSession();
           session.save(foodCategory);
           session.beginTransaction().commit();
           session.close();

     

     

     


    //例子在HibernateDemo14:

      //雙向修改
      Pp pp1=new Pp();
      pp1.setPname("aaaaaa");
      pp1.setCid(new Long(27));
      Catelog cla=new Catelog();
      cla.setCname("bbbbb");
      cla.setId(new Long(16));
         pp1.setCatelog(cla);

     


      
    //單項修改
    //  Catelog cla=new Catelog();
    //  cla.setCname("1111111111");
    //  cla.setId(new Long(16));
    //   dao.session.saveOrUpdate(cla);
      
         CPDAO dao=new CPDAO();
          dao.session.update(pp1);
         dao.session.beginTransaction().commit();
         dao.closeSession();

     

     

    //例子在HibernateDemo14:
    查詢:
      String sql="from Catelog c where c.id=2";
         Query q=dao.session.createQuery(sql);
        
         Catelog cla=  (Catelog)q.uniqueResult();
        
          Set<Pp> set= cla.getPps();
         
         Iterator<Pp> it = set.iterator();
         while(it.hasNext())
         {
          Pp p=it.next();
          System.out.println(p.getPname()+"   "+p.getCid());
         }

     

         
    //例子在HibernateDemo14:

     //從表查詢
         String sql="from Pp p where p.catelog.id=16";
         Query q=dao.session.createQuery(sql);
        
         List<Pp> list = q.list();
        
        for(Iterator<Pp> it = list.iterator();it.hasNext();)
        {
         Pp p=it.next();
         System.out.println(p.getCatelog().getCname()+"     "+p.getPname());
        }
        
         dao.session.close();
     }

     


    HQL 查詢

     public List QueryName(String name)
     {
      return session.createQuery("from Ord as c where Ord_number=:sname")
     .setString("sname",name).list(); 
     }

      然后  List  list=dao.QueryName("b");


    QBC 查詢
     //創建一個Criteria 對象  然后把Ord 加載進去
        Criteria criteria=dao.session.createCriteria(Ord.class);
        Criterion criterion1=Expression.like("ord_number","T%");
       
       
        criteria.add(criterion1);
       
        List result=criteria.list();
          

    QBE  查詢

     

          Ord entity=new Ord();
          entity.setOrdNumber("Linda_Ord001");
        Criteria criteria=dao.session.createCriteria(Ord.class);
       
        Criterion criterion=Example.create(entity);
       
        criteria.add(criterion);
       
        List result=criteria.list();

     

    HQL 排序
     Query q=dao.session.createQuery("from Ord as o order by ord_number");


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品无码久久九九| 九九精品免费视频| 亚洲精品无码99在线观看| 无码日韩人妻av一区免费| 91午夜精品亚洲一区二区三区| 中文字幕日本人妻久久久免费| 亚洲精品卡2卡3卡4卡5卡区| 两个人看的www视频免费完整版| 亚洲精品无码久久千人斩| 97超高清在线观看免费视频| 亚洲国产精品成人久久| 91av视频免费在线观看| 亚洲片国产一区一级在线观看| 一本大道一卡二大卡三卡免费| a级亚洲片精品久久久久久久| 亚洲精品美女久久7777777| 国产无遮挡色视频免费视频| 成人免费视频一区二区| 国产亚洲精品国产| 2021国内精品久久久久精免费| 久久久久国产亚洲AV麻豆| 久久er国产精品免费观看2| 久久久亚洲欧洲日产国码是AV| 亚洲人成网站免费播放| 久久亚洲精品11p| 99在线视频免费观看视频 | 亚洲综合久久成人69| 在线观看免费高清视频| 男人的天堂av亚洲一区2区| 亚洲一区二区三区免费| 久久国产色AV免费观看| 亚洲Av永久无码精品黑人| 亚洲中文字幕无码永久在线 | 亚洲精品国偷自产在线| 和日本免费不卡在线v| 在线观看亚洲网站| 亚洲第一福利视频| 日本免费高清视频| 亚洲成AV人影片在线观看| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲高清免费视频|