隨筆-54  評論-0  文章-2  trackbacks-0

              趁今天休息,把昨天不會的知識總結(jié)一下,這幾天小湯給我們帶項目,給大家的感覺就是老師水平很高,我們還得苦修幾年才行啊,小湯經(jīng)驗挺豐富的,以至于我們 遇到問題時,他一問這個對象可以有嗎?下面萬籟無聲時,小湯一般就說“這個可以有”,好了,還是總結(jié)知識點吧:
          1.HIbernate創(chuàng)建查詢,首先拿到session,再
           List list = session .createQuery(//
                            " FROM Department d WHERE d.parentId = ?")//
                           .setParameter(0,值)//
              .list();
          之后測試,一般對于CRUD操作,都要單元測試。
          注意:
            用//格式固定格式,Hibernate源碼就是這樣固定格式的
          2.用到的標(biāo)簽(不熟練的)舉例:
          <html:link action="/dept?method=editUI&id=${department.id}">修改< /html:link>
          <html:link action="/dept?method=del&id=${department.id}&parentId=${parent.id}" onclick="return window.confirm('您確定要刪除這條記錄嗎?')">刪除</html:link>

          3.外鍵可以為空

          4.游離:數(shù)據(jù)庫中有,但沒有和session關(guān)聯(lián),Hibernate根據(jù)id判定是否是游離狀態(tài),如果你id有值 ,則不是游離。
          我在網(wǎng)上查了一下什么是游離對象?
          游離對象的特征。游離對象具有以下特征:
          (1) 不再位于Session的緩存中,也可以說,游離對象不被Session關(guān)聯(lián)。
          (2) 游離對象是由持久化對象轉(zhuǎn)變過來的,因此在數(shù)據(jù)庫中可能還存在與它對應(yīng)的記錄(前提條件是沒有其他程序刪除了這條記錄)。

          游離對象與臨時對象的相同之處在于,兩者都不被Session關(guān)聯(lián),因此Hibernate不會保證它們的屬性變化與數(shù)據(jù)庫保持同步。游離對象與臨時對象 的區(qū)別在于:前者是由持久化對象轉(zhuǎn)變過來的,因此可能在數(shù)據(jù)庫中還存在對應(yīng)的記錄,而后者在數(shù)據(jù)庫中沒有對應(yīng)的記錄。

          Session的以下方法使持久化對象轉(zhuǎn)變?yōu)橛坞x對象:
          (1) 當(dāng)調(diào)用Session的close()方法時,Session的緩存被清空,緩存中的所有持久化對象都變?yōu)橛坞x對象。如果在應(yīng)用程序中沒有引用變量引用這 些游離對象,它們就會結(jié)束生命周期。
          (2)Session的evict()方法能夠從緩存中刪除一個持久化對象,使它變?yōu)橛坞x狀態(tài)。當(dāng)Session的緩存中保存了大量的持久化對象,會消耗 許多內(nèi)存空間,為了提高性能,可以考慮調(diào)用evict()方法,從緩存中刪除一些持久化對象。但是多數(shù)情況下不推薦使用evict()方法,而應(yīng)該通過查 詢語言,或者顯式的導(dǎo)航來控制對象圖的深度。

          感覺這段話說的挺好的,就copy下來

          5.注冊時間轉(zhuǎn)換器
             轉(zhuǎn)換器為便于在項目中易于維護(hù),放在一個Servlet中,然后將Servlet配置在web.xml中
          時間轉(zhuǎn)換器:
          Java代碼
          package cn.itcast;   
          import java.text.ParseException;   
          import java.text.SimpleDateFormat;   
          import java.util.Date;   
           
          import org.apache.commons.beanutils.Converter;   
           
          public class UtilDateConverter implements Converter {   
           
              private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");   
           
              public Object convert(Class type, Object value) {   
                  if (value == null) {   
                      return value;   
                  }   
                  if (value instanceof Date) {   
                      return value;   
                  }   
                  if (value instanceof String) {   
                      try {   
                          return format.parse((String) value);   
                      } catch (ParseException ignore) {   
                      }   
                  }   
                  return null;   
              }   
          }  

          Servlet類:
          Java代碼
          package cn.itcast;   
          import java.util.Date;   
          import javax.servlet.ServletException;   
          import javax.servlet.http.HttpServlet;   
           
          import org.apache.commons.beanutils.ConvertUtils;   
           
          public class InitConvert extends HttpServlet {   
              @Override   
              public void init() throws ServletException {   
                  //注冊轉(zhuǎn)換器   
                  ConvertUtils.register(new UtilDateConverter(), Date.class);   
              }   
          }  

          web.xml配置:
          <servlet>
              <servlet-name>InitConvert </servlet-name>
              <servlet-class>cn.itacst.InitConvert </servlet-class>
              <load-on-startup>1</load-on-startup>
            </servlet>
           
          6. ActionForward 動態(tài)傳參問題:
            ActionForward af = mapping.findForward(“toList”);
          return new ActionForward(af.getPath+"&parentId="+af,af.getRedirect);



          好了,今天就寫到此吧,明天還要上課,睡了!





































          posted on 2010-02-07 00:25 d66380022 閱讀(165) 評論(0)  編輯  收藏
          主站蜘蛛池模板: 大洼县| 长泰县| 固始县| 皋兰县| 蒲城县| 泌阳县| 青浦区| 芒康县| 乐至县| 海淀区| 龙井市| 柘城县| 百色市| 兴山县| 将乐县| 星子县| 桐乡市| 杭锦后旗| 夏邑县| 白山市| 大荔县| 钟祥市| 睢宁县| 绿春县| 张家港市| 利津县| 东乡族自治县| 疏勒县| 建始县| 洛隆县| 抚远县| 区。| 稷山县| 将乐县| 湘乡市| 铜川市| 两当县| 杂多县| 个旧市| 太白县| 从化市|