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

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

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

    blogjava's web log

    blogjava's web log
    ...

    內(nèi)有:
    操作手冊
    測試分析報告
    測試計劃
    概要設(shè)計說明書
    開發(fā)進度月報
    可行性研究報告
    模塊開發(fā)卷宗
    軟件需求說明書
    數(shù)據(jù)庫設(shè)計說明書
    數(shù)據(jù)要求說明書
    詳細(xì)設(shè)計說明書
    項目開發(fā)計劃
    ..............等。。。

    有需要的朋友可以點下面的連接下。。。


    軟件工程國家標(biāo)準(zhǔn)文檔.rar
    posted @ 2006-03-27 20:44 record java and net 閱讀(10266) | 評論 (45)編輯 收藏
    原文:http://blog.csdn.net/sunsnow8/archive/2005/03/05/312359.aspx

    1.兩種配置文件:
    ? A.hibernate.cfg.xml?? 和?? B.hibernate.properties

    ? A中可含映射文件的配置,而B中hard codes加映射文件。

    ? A。Configuration config=new Configuration().config();
    ? B. Configuration config=new Configuration();
    ???? config.addClass(TUser.class);


    2.你不必一定用hibernate.cfg.xml或hibernate.properties這兩文件名,
    ?? 你也不一定非得把配置文件放在Classes下,
    ?? File file=new File("c:\\sample\\myhibernate.xml");
    ?? Configuration config=new Configuration().config(file);

    3. session.Flush()
    ?? 強制數(shù)據(jù)庫立即同步,當(dāng)用事務(wù)時,不必用flush,事務(wù)提交自動調(diào)用flush
    ?? 在session關(guān)閉時也會調(diào)用flush


    4. Hibernate總是使用對象類型作為字段類型

    5. XDoclet專門建立了hibernate doclet,就是在java代碼上加上一些
    ?? java docTag,后來再讓XDoclet分析該java代碼,生成映射文件;

    6.HQL子句本身大小寫無關(guān),但是其中出現(xiàn)的類名和屬性名必須注意大小寫區(qū)分。

    7.關(guān)系:
    ? Constrained : 約束,表明主控表的主鍵上是否存在一個外鍵(foreigh key)
    ?? 對其進行約束。

    ? property-ref:關(guān)聯(lián)類中用于與主控類相關(guān)聯(lián)的屬性名,默認(rèn)為關(guān)聯(lián)類的主鍵屬性名

    ? 單向一對多需在一方配置,雙向一對多需在雙方進行配置

    8.lazy=false:被動方的記錄由hibernate負(fù)責(zé)記取,之后存放在主控方指定的
    ? Collection類型屬性中

    9. java.util.Set或net.sof.hibernate.collecton.Bag類型的Collection


    10.重要:inverse:用于標(biāo)識雙向關(guān)聯(lián)中的被動方一端。
    ???????? inverse=false的一方(主控方)負(fù)責(zé)維護關(guān)聯(lián)關(guān)系.默認(rèn)值:false

    11.batch-size:采用延遲加載特征時,一次讀入的數(shù)據(jù)數(shù)昨。

    12.一對多通過主控方更新(主控方為一方時)

    ?? user.getAddresses().add(addr);
    ?? session.save(user);//通過主控對象級聯(lián)更新 ?

    13.在one-to-many 關(guān)系中,將many 一方設(shè)為主動方(inverse=false)將有助性能
    ?? 的改善。在一方設(shè)置關(guān)系時,inverse=true,即將主控權(quán)交給多方,
    ?? 這樣多方可主動從一方獲得foreign key,然后一次insert即可完工。


    ?? addr.setUser(user);//設(shè)置關(guān)聯(lián)的TUser對象
    ?? user.getAddresses().add(addr);
    ?? session.save(user);//級聯(lián)更新?

    14.只有設(shè)為主控方的一方才關(guān)心(訪問)對方的屬性,被動方是不關(guān)心對方的屬性的。

    15.one-to-many與many-to-one節(jié)點的配置屬性不同:
    ?? 一對多關(guān)系多了lazy和inverse兩個屬性
    ?? 多對多節(jié)點屬性:column:中間映射表中,關(guān)聯(lián)目標(biāo)表的關(guān)聯(lián)字段
    ?????????????????? class:類名,關(guān)聯(lián)目標(biāo)類
    ?????????????????? outer-join:是否使用外聯(lián)接?? ?

    ?? 注意:access是設(shè)置屬性值的讀取方式。


    ??????? column是設(shè)置關(guān)聯(lián)字段。


    16.多對多,注意兩方都要設(shè)置inverse和lazy,cascade只能設(shè)為insert-update
    ?? 多對多關(guān)系中,由于關(guān)聯(lián)關(guān)系是兩張表相互引用,因此在保存關(guān)系狀態(tài)時必須對雙方同時保存。

    ?? group1.getRoles().add(role1);
    ?? role1.getGroups().add(group1);

    ?? session.save(role1);
    ?? session.save(group1);

    17.關(guān)于vo和po
    ?? vo經(jīng)過hibernate容量處理,就變成了po(該vo的引用將被容器保存,并且在session關(guān)閉時flush,因此po如果再傳到其它地方改變了,就危險了)
    ?
    ?? vo和po相互轉(zhuǎn)換:BeanUtils.copyProperties(anotherUser,user);

    18.對于save操作而言,如果對象已經(jīng)與Session相關(guān)聯(lián)(即已經(jīng)被加入Session的實體容器中),則無需進行具體的操作。因為之后的Session.flush過程中,Hibernate
    會對此實體容器中的對象進行遍歷,查找出發(fā)生變化的實體,生成并執(zhí)行相應(yīng)的update
    語句。

    19.如果我們采用了延遲加載機制,但希望在一些情況下,實現(xiàn)非延遲加
    載時的功能,也就是說,我們希望在Session關(guān)閉后,依然允許操作user的addresses
    屬性
    Hibernate.initialize方法可以通過強制加載關(guān)聯(lián)對象實現(xiàn)這一功能:
    這也正是我們?yōu)槭裁丛诰帉慞OJO時,必須用JDK Collection接口(如Set,Map),
    而非特定的JDK Collection實現(xiàn)類(如HashSet、HashMap)申明Collection屬性的
    原因。

    20.事務(wù):從sessionFactory獲得session,其自動提交屬性就已經(jīng)關(guān)閉(AutoCommit=false),此時若執(zhí)行了jdbc操作,如果不顯式調(diào)用session.BeginTransaction(),是不會執(zhí)行事務(wù)操作的。

    ?? jdbc transaction:基于同一個session(就是同一個connection)的事務(wù);
    ?? jta? transaction:跨session(跨connection)事務(wù).

    ?? 對于jta事務(wù),有三種實現(xiàn)方法:
    ???? A。UserTransaction tx=new InitialContext().lookup("...");
    ??????? tx.commit();
    ???? B. 使用hibernate封裝的方法:(不推薦)
    ??????? Transaction tx=session.beginTransaction();
    ??????? tx.commit();
    ???? C. 使用ejb之sessionBean的事務(wù)技持方法,你只要在把需要在發(fā)布描述符中,把需要jta事務(wù)的方法聲明為require即可

    21.悲觀鎖,樂觀鎖:
    ?? 樂觀鎖一般通過version來實現(xiàn),注意version節(jié)點必須出現(xiàn)在id后。


    22.Hibernate中,可以通過Criteria.setFirstResult和Criteria.setFetchSize方法設(shè)定分頁范圍。
    ?? Query接口中也提供了與其一致的方法,hibernate主要在dialect類中實現(xiàn)在這個功能。


    23.cache
    ?? <hibernate-configuration>
    ?<session-factory>
    ?……
    ??<property name="hibernate.cache.provider_class">
    ???net.sf.ehcache.hibernate.Provider
    ??</property>?

    ? 還需對ecache本身進配置
    ? <ehcache>
    ?<diskStore path="java.io.tmpdir"/>
    ?<defaultCache
    ?maxElementsInMemory="10000" //Cache中最大允許保存的數(shù)據(jù)數(shù)量
    ?eternal="false" //Cache中數(shù)據(jù)是否為常量
    ?timeToIdleSeconds="120" //緩存數(shù)據(jù)鈍化時間
    ?timeToLiveSeconds="120" //緩存數(shù)據(jù)的生存時間
    ?overflowToDisk="true" //內(nèi)存不足時,是否啟用磁盤緩存
    ?/>
    ? </ehcache>

    ? 之后在映射文件中指定各個映射實體的cache策略
    ? <class name=" org.hibernate.sample.TUser" .... >
    ?<cache usage="read-write"/>
    ?....
    ?<set name="addresses" .... >
    ??<cache usage="read-only"/>
    ?....
    ?</set>
    ?</class>

    ?*****************************************************
    ?Query.list()跟Query.iterate()的不同:
    ?對于query.list()總是通過一條sql語句獲取所有記錄,然后將其讀出,填入pojo返回;
    ?但是query.iterate(),則是首先通過一條Select SQL 獲取所有符合查詢條件的記錄的
    id,再對這個id 集合進行循環(huán)操作,通過單獨的Select SQL 取出每個id 所對應(yīng)的記
    錄,之后填入POJO中返回。

    ?也就是說,對于list 操作,需要一條SQL 完成。而對于iterate 操作,需要n+1
    條SQL。,list方法將不會從Cache中讀取數(shù)據(jù)。iterator卻會。


    24.ThreadLocal:它會為每個線程維護一個私有的變量空間。實際上,
    其實現(xiàn)原理是在JVM 中維護一個Map,這個Map的key 就是當(dāng)前的線程對象,而value則是
    線程通過ThreadLocal.set方法保存的對象實例。當(dāng)線程調(diào)用ThreadLocal.get方法時,
    ThreadLocal會根據(jù)當(dāng)前線程對象的引用,取出Map中對應(yīng)的對象返回。

    ?這樣,ThreadLocal通過以各個線程對象的引用作為區(qū)分,從而將不同線程的變量隔離開
    來。


    25.Hibernate官方開發(fā)手冊標(biāo)準(zhǔn)示例:
    ? public class HibernateUtil {
    private static SessionFactory sessionFactory;
    static {
    try {
    // Create the SessionFactory
    sessionFactory = new
    Configuration().configure().buildSessionFactory();
    } catch (HibernateException ex) {
    throw new RuntimeException(
    "Configuration problem: " + ex.getMessage(),
    ex
    );
    }
    }
    public static final ThreadLocal session = new ThreadLocal();
    public static Session currentSession() throws HibernateException
    {
    Session s = (Session) session.get();
    // Open a new Session, if this Thread has none yet
    if (s == null) {
    s = sessionFactory.openSession();
    session.set(s);
    }
    return s;
    }
    public static void closeSession() throws HibernateException {
    Session s = (Session) session.get();
    session.set(null);
    if (s != null)
    s.close();
    }
    }?


    ????
    26.通過filter實現(xiàn)session的重用:
    ?? public class PersistenceFilter implements Filter
    {
    protected static ThreadLocal hibernateHolder = new ThreadLocal();
    public void doFilter(ServletRequest request, ServletResponse
    response, FilterChain chain)
    throws IOException, ServletException
    {
    hibernateHolder.set(getSession());
    try
    {
    ……
    chain.doFilter(request, response);
    ……
    }
    finally
    {
    Session sess = (Session)hibernateHolder.get();
    if (sess != null)
    {
    hibernateHolder.set(null);
    try
    {
    sess.close();
    }
    catch (HibernateException ex) {
    throw new ServletException(ex);
    }
    }
    }
    }
    ……}

    27.Spring的參數(shù)化事務(wù)管理功能相當(dāng)強大,筆者建議在基于Spring Framework的應(yīng)用
    開發(fā)中,盡量使用容器管理事務(wù),以獲得數(shù)據(jù)邏輯代碼的最佳可讀性。
    ?
    public class UserDAO extends HibernateDaoSupport implements IUserDAO
    {
    public void insertUser(User user) {
    getHibernateTemplate().saveOrUpdate(user);
    }
    }


    ? 上面的UserDAO實現(xiàn)了自定義的IUserDAO接口,并擴展了抽象類:
    HibernateDaoSupport
    HibernateSupport實現(xiàn)了HibernateTemplate和SessionFactory實例的關(guān)聯(lián)。
    HibernateTemplate對Hibernate Session操作進行了封裝,而
    HibernateTemplate.execute方法則是一封裝機制的核心

    ? *在spring的配置文件里,移植了整個hibernate.cfg.xml的內(nèi)容。


    原文:http://blog.csdn.net/sunsnow8/archive/2005/03/05/312359.aspx
    posted @ 2006-03-27 11:27 record java and net 閱讀(485) | 評論 (0)編輯 收藏

    ?

    JSP 動作的作用
    JSP動作利用XML語法格式的標(biāo)記來控制Servlet引擎的行為。利用JSP動作可以動態(tài)地插入文件、重用JavaBean組件、把用戶重定向到另外的頁面、為Java插件生成HTML代碼,通過標(biāo)記庫定義自定義標(biāo)記
    -----起始標(biāo)記
    -----結(jié)束標(biāo)記
    -------空標(biāo)記

    包括:
    <jsp:include>
    <jsp:param>
    <jsp:forward>
    <jsp:plugin>
    <jsp:useBean>
    <jsp:setProperty>
    <jsp:getProperty>

    <jsp:useBean>標(biāo)記

    創(chuàng)建Bean或從服務(wù)器獲得現(xiàn)有Bean

    語法:
    <jsp:useBean? id="bean name" class="class name" />
    或者
    <jsp:useBean? id="bean name" class="class name ">
    ? 初始化代碼
    </jsp:useBean>

    jsp:useBean動作用來裝載一個將在JSP頁面中使用的JavaBean。這個功能非常有用,因為它使得我們既可以發(fā)揮Java組件重用的優(yōu)勢,同時也避免了損失JSP區(qū)別于Servlet的方便性 !


    獲得Bean實例之后,要修改Bean的屬性既可以通過jsp:setProperty動作進行,也可以在Scriptlet中利用id屬性所命名的對象變量,通過調(diào)用該對象的方法顯式地修改其屬性 .

    id屬性-在整個頁面引用Bean的唯一值
    Bean名稱的規(guī)則:
    ????? 唯一
    區(qū)分大小寫
    第一個字符必須為字母
    不允許有空格

    可為同一 Bean 類指定不同的 id 值.

    class 屬性-JavaBean 的類名

    ---Count Bean不屬于包
    ???????????? <jsp:useBean id="count" class="Count" />
    -----Count Bean屬于test包
    ???????????? <jsp:useBean id="count" class="test.Count" />



    type屬性---------將引用此對象的變量的類型
    beanName 屬性-指定串行化Bean的名稱

    scope 屬性-表明Bean應(yīng)可用的環(huán)境
    ----page
    ----session
    ----request
    -----application


    page 作用域
    將 JavaBean 對象存儲在當(dāng)前頁面的 javax.servlet.jsp.PageContext 中
    JavaBean 對象僅可用于當(dāng)前頁面

    session 作用域
    將 JavaBean 對象存儲在 HTTP 會話中
    JavaBean 對象在當(dāng)前 HttpSession 的生命周期內(nèi)可用于所有頁面


    request 作用域
    將 JavaBean 對象存儲在當(dāng)前 ServletRequest 中
    JavaBean 對象可用于被包括的 JSP 頁面

    application 作用域
    將 JavaBean 對象存儲在 ServletContext 中
    JavaBean 對象可用于共享同一 ServletContext 的所有頁面


    非空 useBean 標(biāo)記僅在新建 Bean 實例時才會處理標(biāo)記的內(nèi)容

    <jsp:useBean id="currentuser" class="CurrentUser" scope="session">
    ??? Hello,new user!!!
    </jsp:useBean>

    ?

    <jsp:getProperty>標(biāo)記

    檢索 Bean 屬性的值,將此值轉(zhuǎn)換成字符串,并插入輸出結(jié)果中
    name 屬性-指定 Bean 的名稱
    property 屬性-指定 Bean 的屬性
    <jsp:getProperty name="bean name" property="property name"/>


    <jsp:setProperty>標(biāo)記

    設(shè)置 Bean 類的屬性
    name 屬性-指定 Bean 的名稱
    property 屬性-指定 Bean 的屬性
    value 屬性-指定要設(shè)置的值

    <jsp:setProperty name="bean name" property="property name" value="str" />
    jsp:setProperty動作有下面四個屬性
    ?name屬性是必需的。它表示要設(shè)置屬性的是哪個Bean。
    property property屬性是必需的。它表示要設(shè)置哪個屬性。
    有一個特殊用法:如果property的值是“*”,表示所有名字和Bean屬性名字匹配的請求參數(shù)都將被傳遞給相應(yīng)的屬性set方法。

    value屬性是可選的。該屬性用來指定Bean屬性的值。字符串?dāng)?shù)據(jù)會在目標(biāo)類中通過標(biāo)準(zhǔn)的valueOf方法自動轉(zhuǎn)換成數(shù)字、boolean、Boolean、byte、Byte、char、Character。例如,boolean和Boolean類型的屬性值(比如“true”)通過Boolean.valueOf轉(zhuǎn)換,int和Integer類型的屬性值(比如“42”)通過Integer.valueOf轉(zhuǎn)換。?
    value和param不能同時使用,但可以使用其中任意一個

    ?param是可選的。它指定用哪個請求參數(shù)作為Bean屬性的值。如果當(dāng)前請求沒有參數(shù),則什么事情也不做,系統(tǒng)不會把null傳遞給Bean屬性的set方法。因此,你可以讓Bean自己提供默認(rèn)屬性值,只有當(dāng)請求參數(shù)明確指定了新值時才修改默認(rèn)屬性值。

    例如,下面的代碼片斷表示:如果存在numItems請求參數(shù)的話,把numberOfItems屬性的值設(shè)置為請求參數(shù)numItems的值;否則什么也不做。

    <jsp:setProperty name="orderBean"? property="numberOfItems"? param="numItems" />?
    如果同時省略value和param,其效果相當(dāng)于提供一個param且其值等于property的值。進一步利用這種借助請求參數(shù)和屬性名字相同進行自動賦值的思想,你還可以在property(Bean屬性的名字)中指定“*”,然后省略value和param。此時,服務(wù)器會查看所有的Bean屬性和請求參數(shù),如果兩者名字相同則自動賦值。


    <jsp:forward>標(biāo)記
    將控制權(quán)傳輸至本地服務(wù)器上的另一地址

    page 屬性-指定替代地址
    可為靜態(tài)值,也可在請求時計算
    語法:
    <jsp: forward page = "localURL" />
    <jsp:forward page=“/utils/errorReporter.jsp” />
    <jsp:forward page="<%= someJavaExpression %>" />

    <jsp:include>標(biāo)記

    可將另一個頁面生成的內(nèi)容包括在當(dāng)前頁面的輸出結(jié)果中
    也可包括Servlet
    page 屬性-要插入當(dāng)前頁面的文檔
    flush 屬性-是否刷新當(dāng)前頁面的緩沖器
    <jsp:param> 標(biāo)記指定附加的 request 參數(shù)

    <jsp:include page="localURL" flush="true" >
    ?<jsp:param name="parameterName1" value="parameterValue1" />
    ? <jsp:param name="parameterNameN" value="parameterValueN" />
    <jsp:include page="localURL" flush="true" />

    ?

    include 指令和 include 動作的區(qū)別
    動重新編譯和類大小
    靜態(tài)或動態(tài)內(nèi)容的包括
    合并主頁和包括的頁面的時間
    共享局部變量
    修改的生效
    變量的作用域
    include指令,它是在JSP文件被轉(zhuǎn)換成Servlet的時候引入文件,而這里的jsp:include動作不同,插入文件的時間是在頁面被請求的時候!

    整理的有點亂。恐怕就我自己看的懂了(暈)...

    posted @ 2006-03-27 00:40 record java and net 閱讀(3063) | 評論 (4)編輯 收藏

    Struts Logic 標(biāo)簽庫中的標(biāo)簽可以根據(jù)特定的邏輯條件來控制輸出網(wǎng)頁的內(nèi)容

    ,或者循環(huán)遍歷集合中的所有元素,先來回顧一下Logic標(biāo)簽庫中一些標(biāo)簽吧。。

    進行比較運算的Logic標(biāo)簽
    進行字符串匹配的Logic標(biāo)簽
    判斷指定內(nèi)容是否存在的Logic標(biāo)簽
    進行循環(huán)遍歷的標(biāo)簽
    進行請求轉(zhuǎn)發(fā)或重定向的Logic標(biāo)簽


    進行比較運算的Logic標(biāo)簽

    <logic:equal>?????? 比較變量是否等于指定的常量
    <logic:notEqual>??? 比較變量是否不等于指定的常量
    <logic:greaterEqual>比較變量是否大于或等于指定的常量
    <logic:greateThan>? 比較變量是否大于指定的常量
    <logic:lessEqual>?? 比較變量是否小于或等于指定的常量
    <logic:lesThan>???? 比較變量是否小于指定的常量


    進行字符串匹配的Logic標(biāo)簽

    <logic:match>????? 判斷變量中是否包含指定的常量字符串
    <logic:notMatch>?? 判斷變量中是否不包含指定的常量字符串


    判斷指定內(nèi)容是否存在的Logic標(biāo)簽

    <logic:empty>???? 判斷變量中是否為空
    <logic:netEmpty>? 判斷變量中是否不為空

    <logic:present>?? 判斷指定的JavaBean . Cookie等 是否存在
    <logic:notPresent>判斷指定的JavaBean . Cookie等 是否不存在

    <logic:messagesPresent>??? 判斷指定的消息是否存在
    <logic:messagesNotPresent>? 判斷指定的消息是否不存在

    進行循環(huán)遍歷的標(biāo)簽

    <logic:iterate>
    它是Logic標(biāo)簽庫中最復(fù)雜的,也是用途最廣的一個標(biāo)簽。

    進行請求轉(zhuǎn)發(fā)或重定向的Logic標(biāo)簽

    <logic:forward>
    <logic:redirect>



    剛剛還看到了這篇http://www.tkk7.com/action/archive/2005/11/01/17707.aspx講的比較詳細(xì)。
    我就懶的記了。。

    posted @ 2006-03-26 16:40 record java and net 閱讀(7085) | 評論 (0)編輯 收藏

    文件有3M 分成了二個文件
    日常小知識.part1.rar
    日常小知識.part2.rar

    沒有事的時候可以看看。。哈哈。。
    posted @ 2006-03-25 21:05 record java and net 閱讀(520) | 評論 (1)編輯 收藏
    僅列出標(biāo)題
    共31頁: First 上一頁 23 24 25 26 27 28 29 30 31 下一頁 

    導(dǎo)航

    常用鏈接

    留言簿(44)

    新聞檔案

    2.動態(tài)語言

    3.工具箱

    9.文檔教程

    友情鏈接

    搜索

    最新評論

    主站蜘蛛池模板: 亚洲乱码中文论理电影| 人妻无码久久一区二区三区免费| 亚洲理论片在线观看| 在线精品亚洲一区二区小说| 国内自产少妇自拍区免费| 午夜免费福利小电影| 国产无遮挡色视频免费观看性色| 亚洲欧美国产日韩av野草社区| 久久99亚洲网美利坚合众国| 亚洲五月综合缴情在线观看| jjzz亚洲亚洲女人| 免费黄网在线观看| 97在线观免费视频观看| 久久久精品免费视频| 国产精品免费αv视频| 免费看一级高潮毛片| 亚洲成a人无码亚洲成www牛牛| 亚洲国产精品xo在线观看| 亚洲网站在线观看| 亚洲成人在线网站| 亚洲激情中文字幕| 亚洲精品免费观看| 亚洲AV无码不卡无码| 亚洲AV无码久久寂寞少妇| 久久青青草原亚洲AV无码麻豆| 亚洲成色在线综合网站| 亚洲精品制服丝袜四区| 国产精品亚洲成在人线| 亚洲一区精品无码| 久久亚洲色一区二区三区| 亚洲国产日韩成人综合天堂| 免费大黄网站在线观| 亚洲国产主播精品极品网红| 午夜亚洲福利在线老司机| 亚洲精品尤物yw在线影院| 亚洲中文字幕伊人久久无码| 亚洲精品99久久久久中文字幕 | 亚洲日产2021三区在线| 亚洲色图视频在线观看| 亚洲最大黄色网址| 亚洲日本人成中文字幕|