美麗涵涵童裝店--說我博客名字,給你們打折!
          隨筆 - 82  文章 - 266  trackbacks - 0
          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789


          點擊這里給楊愛友發(fā)消息
          美麗涵涵童裝店
          說我博客名字,給你們打折!

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章檔案

          好友的BLOG

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜


          一、spring
          1.ContextLoaderListener
             它作用就是啟動Web容器時,自動裝配ApplicationContext的配置信息。因為它實現(xiàn)了ServletContextListener這個接口,在web.xml配置這個監(jiān)聽器,啟動容器時,就會默認執(zhí)行它實現(xiàn)的方法。在ContextLoaderListener中關(guān)聯(lián)了ContextLoader這個類,所以整個加載配置過程由ContextLoader來完成。ContextLoader創(chuàng)建的是 XmlWebApplicationContext這樣一個類,它實現(xiàn)的接口是WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext->BeanFactory這樣一來spring中的所有bean都由這個類來創(chuàng)建。如果在web.xml中不寫任何參數(shù)配置信息,默認的路徑是"/WEB-INF/applicationContext.xml,在WEB-INF目錄下創(chuàng)建的xml文件的名稱必須是applicationContext.xml。如果是要自定義文件名可以在web.xml里加入contextConfigLocation這個context參數(shù):
           <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:spring/*.xml</param-value>
           </context-param>
          2.default-autowire
                在spring容器內(nèi)拼湊bean叫作裝配。裝配bean的時候,你是在告訴容器,需要哪些bean,以及容器如何使用依賴注入將它們配合在一起。而default-autowire設(shè)置了bean的默認裝配方式。
          我們常常使用<ref>標簽為JavaBean注入它依賴的對象。但是對于一個大型的系統(tǒng),這個操作將會耗費我們大量的資源,我們不得不花費大量的時間和精力用于創(chuàng)建和維護系統(tǒng)中的<ref>標簽。我們可以通過指定autowire來讓容器為受管JavaBean自動注入依賴對象。
          byName:通過屬性的名字的方式查找JavaBean依賴的對象并為其注入。比如說類UserAction有個屬性userService,Spring IoC容器會在配置文件中查找id/name屬性為userService的bean,然后使用Seter方法為其注入。
          注意:在配置bean時,<bean>標簽中Autowire屬性的優(yōu)先級比其上級標簽<beans/>高,即是說,如果在上級標簽中定義default-autowire屬性為byName,而在<bean>中定義為byType時,Spring IoC容器會優(yōu)先使用<bean>標簽的配置。
          3.default-lazy-init
            加載spring bean時,默認采用的延遲策略。
          二、Hibernate
          1.load和get
            a.如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法會拋出一個  ObjectNotFoundException。
            b.Load方法可返回實體的代理類實例,而get方法永遠直接返回實體類。
            c.load方法可以充分利用內(nèi)部緩存和二級緩存中的現(xiàn)有數(shù)據(jù),而get方法則僅僅在內(nèi)部緩存中進行數(shù)據(jù)查找,如沒有發(fā)現(xiàn)對應數(shù)據(jù),將越過二級緩存,直接調(diào)用SQL完成數(shù)據(jù)讀取。
          2.對象的三種狀態(tài)
          Hibernate的對象有3種狀態(tài),分別為:瞬時態(tài)(Transient)、 持久態(tài)(Persistent)、脫管態(tài)(Detached)。
            瞬時態(tài):
          由new命令開辟內(nèi)存空間的java對象,
              如:Person person = new Person("xxx", "xx");
          瞬時對象在內(nèi)存孤立存在,不和數(shù)據(jù)庫的數(shù)據(jù)有任何關(guān)聯(lián)關(guān)系,在Hibernate中,可通過session的save()或saveOrUpdate()方法將瞬時對象與數(shù)據(jù)庫相關(guān)聯(lián),并將數(shù)據(jù)對應的插入數(shù)據(jù)庫中,此時該瞬時對象轉(zhuǎn)變成持久化對象。

          持久態(tài):
               處于該狀態(tài)的對象在數(shù)據(jù)庫中具有對應的記錄,并擁有一個持久化標識。如果是用hibernate的delete()方法,對應的持久對象就變成瞬時對象。

                 當一個session執(zhí)行close()或clear()、evict(po)之后,持久對象變成脫管對象,此時持久對象會變成脫管對象,此時該對象雖然具有數(shù)據(jù)庫識別值,但它已不在HIbernate持久層的管理之下。

                 持久對象具有如下特點:

                 1. 和session實例關(guān)聯(lián);

                 2. 在數(shù)據(jù)庫中有與之關(guān)聯(lián)的記錄。

          脫管態(tài):
             當與某持久對象關(guān)聯(lián)的session被關(guān)閉后,該持久對象轉(zhuǎn)變?yōu)槊摴軐ο蟆?br />        1. 本質(zhì)上與瞬時對象相同,在沒有任何變量引用它時,JVM會在適當?shù)臅r候?qū)⑺厥眨?/p>

                 2. 比瞬時對象多了一個數(shù)據(jù)庫記錄標識值。
          2.名詞解釋
           a.persist把一個瞬態(tài)的實例持久化,但是并"不保證"標識符(identifier主鍵對應的屬性)被立刻填入到持久化實例中,標識符的填入可能被推遲到flush的時候。
           b.clear完整的清除session緩存
           c.evcit(obj)把某個持久化對象從session的緩存中清空。
           d.persist只能持久化一個瞬時態(tài)的對象,
          三、java
          1.格式化日期
            SimpleDateFormat format = new SimpleDateFormat("yyyy年M月d日");
            format.format(date);
            用一個M、d則到月份日期為10一下時,只顯示一位,避免出現(xiàn)01月02日的情況。
            年可以用四位也可以用二位。
          2.JDBC操作
            a.連接數(shù)據(jù)庫:
              Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
              Connection conn = DriverManager.getConnection(url, userName, password);
              Statement stmt = conn .getStatement();
              ResultSet rs = stmt.executeQuery(sql);
              while(rs.next()){
           System.out.println(rs.getInt("userId"));
           System.out.println(rs.getString("userName"));
              }

           


           

          posted on 2009-04-03 13:14 楊愛友 閱讀(282) 評論(0)  編輯  收藏 所屬分類: java相關(guān)技術(shù)
          美麗涵涵童裝店
          親,說我博客名字,給你們打折!
          主站蜘蛛池模板: 镇远县| 阿拉善右旗| 永和县| 灵丘县| 大理市| 宜阳县| 尼玛县| 罗甸县| 莒南县| 镇赉县| 青岛市| 墨玉县| 福安市| 衡南县| 杂多县| 周口市| 辉南县| 福海县| 商洛市| 太保市| 革吉县| 武胜县| 长泰县| 临夏县| 南木林县| 茶陵县| 来安县| 扶风县| 宁波市| 射洪县| 沈阳市| 贞丰县| 阿克苏市| 玉环县| 盐山县| 武穴市| 循化| 水富县| 克拉玛依市| 盘山县| 松阳县|