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

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

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

    隨筆-22  評論-6  文章-17  trackbacks-0
      2006年4月18日
    帕金森定律

      美國著名歷史學家諾斯古德-帕金森通過長期調查研究,寫了一本名叫《帕金森定律》的書,他在書中闡述了機構人員膨脹的原因及后果:一個不稱職的官員,可能有三條出路。第一是申請退職,把位子讓給能干的人;第二是讓一位能干的人來協助自己工作;第三是任用兩個水平比自己更低的人當助手。

      這第一條路是萬萬走不得的,因為那樣會喪失許多權力;第二條路也不能走,因為那個能干的人會成為自己的對手;看來只有第三條路最適宜。于是,兩個平庸的助手分擔了他的工作,他自己則高高在上發號施令。兩個助手既無能,也就上行下效,再為自己找兩個無能的助手。如此類推,就形成了一個機構臃腫、人浮于事、相互扯皮、效率低下的領導體系。

      苛希納定律

      西方管理學中有一條著名的苛希納定律:如果實際管理人員比最佳人數多兩倍,工作時間就要多兩倍,工作成本就要多四倍;如果實際管理人員比最佳人數多三倍,工作時間就要多三倍,工作成本就要多六倍。

      苛希納定律告訴我們,在管理上并不是人多力量大,管理人員越多,工作效率未必就會越高??料<{定律要求我們,要認真研究并找到一個最佳人數,以最大限度地減少工作時間,降低工作成本。

      馬蠅效應

      林肯少年時和他的兄弟在肯塔基老家的一個農場里犁玉米地,林肯吆馬,他兄弟扶犁,而那匹馬很懶,慢慢騰騰,走走停停??墒怯幸欢螘r間馬走得飛快。林肯感到奇怪,到了地頭,他發現有一只很大的馬蠅叮在馬身上,他就把馬蠅打落了。看到馬蠅被打落了,他兄弟就抱怨說:“哎呀,你為什么要打掉它,正是那家伙使馬跑起來的嘛!”

      沒有馬蠅叮咬,馬慢慢騰騰,走走停停;有馬蠅叮咬,馬不敢怠慢,跑得飛快。這就是馬蠅效應。馬蠅效應給我們的啟示是:一個人只有被叮著咬著,他才不敢松懈,才會努力拼搏,不斷進步。

      “南風”法則

      “南風”法則也稱“溫暖”法則,源于法國作家拉封丹寫過的一則寓言:北風和南風比威力,看誰能把行人身上的大衣脫掉。北風首先來一個冷風凜冽寒冷刺骨,結果行人為了抵御北風的侵襲,便把大衣裹得緊緊的。南風則徐徐吹動,頓時風和日麗,行人因為覺得春暖上身,始而解開紐扣,繼而脫掉大衣,南風獲得了勝利。

      這則寓言形象地說明了一個道理:溫暖勝于嚴寒。領導者在管理中運用“南風”法則,就是要尊重和關心下屬,以下屬為本,多點“人情味”,盡力解決下屬日常生活中的實際困難,使下屬真正感受到領導者給予的溫暖,從而激發出工作的積極性。

      酒與污水定律

      酒與污水定律是指,如果把一匙酒倒進一桶污水中,你得到的是一桶污水;如果把一匙污水倒進一桶酒中,你得到的還是一桶污水。

      在任何組織里,都存在幾個難弄的人物,他們存在的目的似乎就是為了把事情搞糟。最糟糕的是,他們像果箱里的爛蘋果一樣,如果你不及時處理,它會迅速傳染,把果箱里其他的蘋果也弄爛。“爛蘋果”的可怕之處在于它那驚人的破壞力。一個正直能干的人進入一個混亂的部門可能被吞沒,而一個無德無才者能很快將一個高效的部門變成一盤散沙。一個能工巧匠花費時日精心制作的陶瓷品,一頭驢子一秒鐘就能將它毀壞掉。
    posted @ 2007-11-27 14:18 surffish 閱讀(381) | 評論 (0)編輯 收藏

      1、WINKEY+D:這是高手最常用的第一快捷組合鍵(木頭按:也是我最喜歡用的哦,好像有點自詡為高手)。這個快捷鍵組合可以將桌面上的所有窗口瞬間最小化,無論是聊天的窗口還是游戲的窗口……只要再次按下這個組合鍵,剛才的所有窗口都回來了,而且激活的也正是你最小化之前在使用的窗口!

     ?。病INKEY + F:不用再去移動鼠標點“開始→搜索→文件和文件夾”了,在任何狀態下,只要一按WINKEY+F就會彈出搜索窗口。

      3、WINKEY + R:在我們的文章中,你經常會看到這樣的操作提示:“點擊‘開始→運行’,打開‘運行’對話框……”。其實,還有一個更簡單的辦法,就是按WINKEY + R!

     ?。?、ALT + TAB :如果打開的窗口太多,這個組合鍵就非常有用了,它可以在一個窗口中顯示當前打開的所有窗口的名稱和圖標,選中自己希望要打開的窗口,松開這個組合鍵就可以了。而ALT+TAB+SHIFT鍵則可以反向顯示當前打開的窗口。

      5、WINKEY + E:當你需要打開資源管理器找文件的時候,這個快捷鍵會讓你感覺非?!八保≡僖膊挥抿v出一只手去摸鼠標了!
    ?????????6、WINKEY+L,鎖定計算機

    小提示:
      WINKEY指的是鍵盤上刻有Windows徽標的鍵。WINKEY主要出現在104鍵和107鍵的鍵盤中。104鍵盤又稱Win95鍵盤,這種鍵盤在原來101鍵盤的左右兩邊、Ctrl和Alt鍵之間增加了兩個Windwos鍵和一個屬性關聯鍵。107鍵盤又稱為Win98鍵盤,比104鍵多了睡眠、喚醒、開機等電源管理鍵,這3個鍵大部分位于鍵盤的右上方。
    posted @ 2007-02-15 15:30 surffish 閱讀(168) | 評論 (0)編輯 收藏
    不論你是單一團隊的領導者還是多個團隊的管理人,團隊管理工作都是你職權范圍內一個重要的組成部分。在今日,集多重技術于一身的工作方法已逐漸取代階層式的、缺乏彈性的傳統工作體制,團隊合作因而很快就成為了一種很受歡迎的工作方式。對于每一位參與團隊管理工作的人而言,《團隊管理》是一本不可或缺的重要讀物。它向你提供了達成計劃所需的技巧、建立團隊成員間的信任、激發團隊最大的潛能等方面的知識,為你能專業化地管理好你的團隊創造了有利條件。另外,全書還散布了101條簡明提示,為你提供重要而實用的訊息。后半部分有個自我評估練習,使你能正確地評估自己的領導能力,并針對自己的不足加以改進。

    了解團隊運作

      團隊合作是所有成功管理的根基。無論你是新手還是資深管理人,對你而言,管理好團隊都是重要且具激勵性的挑戰。

    1.切記:每位成員都能為團隊作出一些貢獻。

    2.謹慎地設定團隊目標,且認真嚴肅地對待它們。

    3.切記成員間要彼此扶持。

    4.將長程目標打散成許多短程計劃。

    5.為每個計劃設定明確的期限。

    6.盡早決定何種形態的團隊適合你的目標。

    7.努力與其它團隊的成員建立強有力的緊密關系。

    8.找一位可提升團隊工作士氣的重量級人物。

    9.時時提醒團隊成員:他們都是團隊的一份子。

    10.將團隊的注意力集中在固定可衡量的目標上。

    11.利用友誼的強大力量強化團隊。

    12.選擇領導者時要把握用人唯才原則。

    13.領導者需具備強烈的團隊使命感。

    14.獎賞優異的表現,但絕不姑息錯誤。

    15.記住每位團隊成員看事情的角度都不一樣。

    16.征召團隊成員時,應注重他們的成長潛能。

    17.密切注意團隊成員缺少的相關經驗。

    18.應使不適任的成員退出團隊。

    19.找到能將人際關系處理得很好的人,并培養他們。

    設立一支團隊

      成立一支團隊是領導者的主要工作。確保你的團隊有清楚明確的目的和足夠達成目標的資源。要以開放和公正無私的態度對待團隊成員。

    20.設定具挑戰性的目標須根據限期來考量是否合理。

    21.設定目標時,考量個別成員的工作目標。

    22.計劃的失敗危及整體計劃的成功。

    23.堅持得到信息技術支持,它能為你提供確實需要的東西。

    24.對待團隊外的顧問要如同對待團隊成員一般。

    25.讓團隊的贊助者隨時知道工作進展情形。

    26.除非你確定沒有人能夠勝任,否則應避免“事必躬親”。

    27.不要委托不必要的工作,最好將其去除掉。

    28.賦予團隊自己作決策的權力。

    29.鼓勵團隊成員正面積極的貢獻。

    30.肯定、宣揚和慶祝團隊每次的成功。

    31.找到易于讓成員及團隊了解每日工作進度的展現方式。

    32.鼓勵成員之間建立工作上的伙伴關系。

    33.鼓勵天生具有領導才能的人,并引導和培養他們的領導技巧。

    34.絕對不能沒有解釋就駁回團隊的意見,與此相反,解釋要坦白,理由要充分。

    35.確定團隊和客戶經常保持聯系。

    36.以自信肯定的態度讓團隊知道誰當家,但要預防予人來勢洶洶的感覺。

    37.想辦法給新團隊留下一個實時的好印象,但切忌操之過急。

    38.倘若你要求別人的建議,抱持的心態不能只是歡迎就行了,也要依循建議有所行動。

    提升團隊效率

      團隊要達到應有的效率,唯一的條件是每個成員都要學會集中力量。你必須了解團隊的能力,以確保團隊的成功。

    39.協助團隊找出方法以改變有礙任務推展的團體行為。

    40.找出可建設性地利用沖突的方法。

    41.記住要在工作中穿插安排娛樂調劑身心──這是每個人應得的福利。

    42.若有計劃出錯,一定要作全面性、公開化的分析。

    43.如果你希望團隊成員有問題時能毫不猶疑地找你談,就要實施“開門政策”。

    44.要求提出問題的人解決問題。

    45.安排正式的和非正式的會面,討論團隊的工作進展。

    46.使用不帶感情只問事實的態度,是化解紛爭的最好方法。

    47.保持團隊成員間的熟稔,以易于溝通。

    48.設立交誼場所,讓團隊成員可作非正式的碰面交談。

    49.鼓勵同事間自由的溝通活動。

    50.建立最適合的通訊科技系統,并經常更新。

    51.實施會議主席輪流制,讓每個人都有機會主持會議。

    52.盡可能多地授權給團隊成員。

    53.事先于會前發出議程,預留時間給與會者準備。

    54.培養所有對團隊有益的關系。

    55.努力保持團隊內外關系的均衡與平穩。

    56.確定所有相關人士都能聽到、了解好消息。

    57.倘有麻煩在團隊關系中發酵蘊釀,要盡快處理。

    58.安排團隊與機構的其它部門作社交聯誼。

    59.找出你與“大佬”保持聯系的最佳通訊科技。

    60.要對你在團隊或辦公室外接觸過的重要人士作聯系記錄。

    61.謹慎分派角色以避免任務重復。

    62.找尋建議中的精華,且絕不在公開場合批評任何建議。

    63.一定要找有經驗的人解決問題。

    64.分析團隊成員每個人所扮演的角色。

    65.腦力激發出的意見,就算不采用,亦不得輕視。否則,會打擊人的積極性,創意的流動也會因此停止。

    66.公平對待每個成員才能避免怨恨。

    67.確定團隊成員真正有錯之前,都須視他們沒有錯。

    68.告訴同事他們做得很好,這有助于激勵團隊士氣。

    69.尊重每一位成員,包括那些給你制造麻煩的人。

    70.避免和團隊成員有直接的沖突。

    71.記住采用對事不對人的處事態度。

    72.確定整個團隊都能夠從解決問題中學習經驗。

    73.先選擇完成一些規模大的、可快速達成及有成就感的任務,以激勵成員再接再勵。

    74.確信團隊成員皆了解團隊中的其它角色。

    75.計算品質的成本之前,先計算失敗的成本。

    76.針對每筆預算及每項團隊行動計劃,設定重大的改進目標。

    為未來努力

    為團隊設定新的、更高的挑戰目標是團隊工作中最令人興奮的事情之一??蛇\用一些適當的技巧,推動團隊向更大、更好的目標前進。

    77.告知團隊每位成員,在設定的標準中有哪些評量的項目。

    78.確定所有改善措施及新訂目標都持續進行著。

    79.召開檢討會議前傳閱所有相關資料及資料。

    80.開檢討會時一定要避諱人身攻擊。

    81.記住關系會隨時間改變。

    82.避開低估或忽視壞消息的陷井。

    83.每天結束時自問團隊今天是否又向前跨出了一步。

    84.傾聽受訓者關于訓練課程的回饋意見。

    85.找到有最好設備的最佳訓練場所。

    86.聘請顧問設立公司內部的訓練課程。

    87.利用移地訓練時的用餐時間作非正式的計劃。

    88.每位團隊成員都必須參與設定目標的工作,以促進團隊合作及達成共識。

    89.允許團隊自行決定達成目標的方法,可激勵團隊努力工作。

    90.確定目標能激發團隊的斗志,如果不行,請改變目標。

    91.一支沒有“嚴峻”目標的團隊,工作表現將不如接受過此類考驗的團隊。

    92.設定獎勵標準時,允許團隊成員有發言權。

    93.避免使用名次表,因為落后的團隊成員將會感到自尊心受創。

    94.指定某人監視市場上每一個相關變化。

    95.隨時準備作改變,甚至計劃的根本要素亦包含在改變的范圍內。

    96.記住有某些人很害怕變革。

    97.尋找能推動改革的團隊成員。

    98.每隔一段時間作一次生涯發展的評量。

    99.記?。汗膭顖F隊成員即是在幫助團隊。

    100.與團隊同事就生涯規劃達成一致意見,并給他們提供必要的協助。

    101.團隊解散后仍舊要與團隊成員保持聯系,因為你可能還會與他們再次合作

    posted @ 2006-09-21 08:05 surffish 閱讀(213) | 評論 (0)編輯 收藏

    LEFT JOIN 和 RIGHT JOIN 運算

    用于 FROM 子句時,把源表記錄組合起來。

    語法

    FROM1 [ LEFT | RIGHT ] JOIN2
    ????ON 1.字段1compopr 2. 字段2

    LEFT JOIN 及 RIGHT JOIN 運算可分為以下幾個部分:

    部分 說明
    table1, table2 記錄被組合的表的名稱。
    field1, field2 被聯接的字段的名稱。且這些字段必須有相同的數據類型及包含相同類型的數據,但它們不需要有相同的名稱。
    compopr 任何的關系比較運算子:"=," "<," ">," "<=," ">=," 或 "<>."

    說明

    用 LEFT JOIN 運算 創建左邊外部聯接.左邊外部聯接將包含了從第一個(左邊)開始的兩個表中的全部記錄,即使在第二個(右邊)表中并沒有相符值的記錄。

    用RIGHT JOIN 運算 創建 右邊外部聯接.右邊外部聯接將包含了從第二個(右邊)開始的兩個表中的全部記錄,即使在第一個(左邊)表中并沒有匹配值的記錄。

    例如,可以使用 LEFT JOIN 與部門(左邊)及員工(右邊)表來選擇所有的部門,包含了沒有分配到員工的部門??梢允褂?RIGHT JOIN 選擇所有的員工,包含了沒有分配到部門的員工。

    下列示例顯示如何在類標識符字段中聯接類表及產品表。查詢將會列出所有種類的列表,包含那些沒有產品在其中的種類:

    SELECT CategoryName,

    ProductName

    FROM Categories LEFT JOIN Products

    ON Categories.CategoryID = Products.CategoryID;

    在本例中,CategoryID 是聯接的字段,但由于它不包含在 SELECT 語句中,因此,也不包含在查詢結果中。要包含聯接的字段,請在 SELECT 語句中輸入字段名 — 在這個示例中為 Categories.CategoryID。


    注意

    欲創建只包含聯接字段中數據相同的記錄的查詢,請用 INNER JOIN 運算。

    • 在 INNER JOIN 之中可以寫一個嵌套的 LEFT JOIN 或一個 RIGHT JOIN,但是在一個 LEFT JOIN 或一個 RIGHT JOIN 之中不能寫嵌套的 INNER JOIN。請參閱 INNER JOIN 主題中有關使用嵌套的討論,從其中可獲知如何在其它聯接中編寫嵌套聯接的信息。
    • 可以鏈接多個 ON 子句。若需更多信息,請參閱在 INNER JOIN 主題中的子句鏈接的討論。

    若試圖聯接包含 MemoOLE Object數據的字段,會導致錯誤。


    請參閱
    FROM 子句 (Microsoft Jet SQL) UNION 運算 (Microsoft Jet SQL)
    INNER JOIN 運算 (Microsoft Jet SQL) ?

    示例

    LEFT JOIN 和 RIGHT JOIN 運算示例

    posted @ 2006-09-03 11:52 surffish 閱讀(248) | 評論 (0)編輯 收藏
    關閉msn,在開始->運行中分別輸入
    regsvr32 softpub.dll

    regsvr32 mssip32.dll

    regsvr32 intipki.dll

    regsvr32 MSXML3.dll

    11221399B
    再重新啟動msn即可
    posted @ 2006-08-21 08:03 surffish 閱讀(225) | 評論 (0)編輯 收藏
    1. 在業務層使用JDBC直接操作數據庫-最簡單,最直接的操作

    1)數據庫url,username,password寫死在代碼中
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url="jdbc:oracle:thin:@localhost:1521:orcl";
    String user="scott";
    String password="tiger";
    Connection conn= DriverManager.getConnection(url,user,password);
    Statement stmt=conn.createStatement(
    ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select * from test";
    ResultSet rs=stmt.executeQuery(sql);

    2)采用Facade和Command模式,使用DBUtil類封裝JDBC操作;
    數據庫url,username,password可以放在配置文件中(如xml,properties,ini等)。
    這種方法在小程序中應用較多。

    2.DAO(Data Accessor Object)模式-松耦合的開始
    DAO = data + accessor + domain object

    例如User類-domain object (javabean)
    UserDAO類-accessor ,提供的方法getUser(int id),save(User user)內包含了JDBC操作
    在業務邏輯中使用這兩個類來完成數據操作。

    使用Factory模式可以方便不同數據庫連接之間的移植。

    3.數據庫資源管理模式
    3.1 數據庫連接池技術
    資源重用,避免頻繁創建,釋放連接引起大大量性能開銷;
    更快的系統響應速度;

    通過實現JDBC的部分資源對象接口( Connection, Statement, ResultSet ),可以使用Decorator設計模式分別產生三種邏輯資源對象: PooledConnection, PooledStatement和 PooledResultSet。


    一個最簡單地數據庫連接池實現:
    public class ConnectionPool {

    private static Vector pools;
    private final int POOL_MAXSIZE = 25;
    /**
    * 獲取數據庫連接
    * 如果當前池中有可用連接,則將池中最后一個返回;若沒有,則創建一個新的返回
    */
    public synchronized Connection getConnection() {
    Connection conn = null;
    if (pools == null) {
    pools = new Vector();
    }

    if (pools.isEmpty()) {
    conn = createConnection();
    } else {
    int last_idx = pools.size() - 1;
    conn = (Connection) pools.get(last_idx);
    pools.remove(last_idx);
    }

    return conn;
    }

    /**
    * 將使用完畢的數據庫連接放回池中
    * 若池中連接已經超過閾值,則關閉該連接;否則放回池中下次再使用
    */
    public synchronized void releaseConnection(Connection conn) {
    if (pools.size() >= POOL_MAXSIZE)
    try {
    conn.close();
    } catch (SQLException e) {
    // TODO自動生成 catch 塊
    e.printStackTrace();
    } else
    pools.add(conn);
    }

    public static Connection createConnection() {
    Connection conn = null;
    try {
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    String url = "jdbc:oracle:thin:@localhost:1521:orcl";
    String user = "scott";
    String password = "tiger";
    conn = DriverManager.getConnection(url, user, password);
    } catch (InstantiationException e) {
    // TODO自動生成 catch 塊
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    // TODO自動生成 catch 塊
    e.printStackTrace();
    } catch (ClassNotFoundException e) {
    // TODO自動生成 catch 塊
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO自動生成 catch 塊
    e.printStackTrace();
    }
    return conn;
    }
    }

    注意:利用getConnection()方法得到的Connection,程序員很習慣地調用conn.close()方法關閉了數據庫連接,那么上述的數據庫連接機制便形同虛設。在調用conn.close()方法方法時如何調用releaseConnection()方法?這是關鍵。這里,我們使用Proxy模式和java反射機制。

    public synchronized Connection getConnection() {
    Connection conn = null;
    if (pools == null) {
    pools = new Vector();
    }

    if (pools.isEmpty()) {
    conn = createConnection();
    } else {
    int last_idx = pools.size() - 1;
    conn = (Connection) pools.get(last_idx);
    pools.remove(last_idx);
    }

    ConnectionHandler handler=new ConnectionHandler(this);
    return handler.bind(con);
    }

    public class ConnectionHandler implements InvocationHandler {
    private Connection conn;
    private ConnectionPool pool;

    public ConnectionHandler(ConnectionPool pool){
    this.pool=pool;
    }

    /**
    * 將動態代理綁定到指定Connection
    * @param conn
    * @return
    */
    public Connection bind(Connection conn){
    this.conn=conn;
    Connection proxyConn=(Connection)Proxy.newProxyInstance(
    conn.getClass().getClassLoader(), conn.getClass().getInterfaces(),this);
    return proxyConn;
    }

    /* (非 Javadoc)
    * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
    */
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    // TODO自動生成方法存根
    Object obj=null;
    if("close".equals(method.getName())){
    this.pool.releaseConnection(this.conn);
    }
    else{
    obj=method.invoke(this.conn, args);
    }

    return obj;
    }
    }

    在實際項目中,并不需要你來從頭開始來設計數據庫連接池機制,現在成熟的開源項目,如C3P0,dbcp,Proxool等提供了良好的實現。一般推薦使用Apache dbcp,基本使用實例:
    DataSource ds = null;
    try{
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    ds = (DataSource)envCtx.lookup("jdbc/myoracle");
    if(ds!=null){
    out.println("Connection is OK!");
    Connection cn=ds.getConnection();
    if(cn!=null){
    out.println("cn is Ok!");
    Statement stmt = cn.createStatement();
    ResultSet rst = stmt.executeQuery("select * from BOOK");
    out.println("

    rst is Ok!" + rst.next());
    while(rst.next()){
    out.println("

    BOOK_CODE:" + rst.getString(1));
    }
    cn.close();
    }else{
    out.println("rst Fail!");
    }
    }
    else
    out.println("Fail!");
    }catch(Exception ne){ out.println(ne);
    }


    3.2 Statement Pool
    普通預編譯代碼:
    String strSQL=”select name from items where id=?”;
    PreparedStatement ps=conn.prepareStatement(strSQL);
    ps.setString(1, “2”);
    ResultSet rs=ps.executeQuery();

    但是PreparedStatement 是與特定的Connection關聯的,一旦Connection關閉,則相關的PreparedStatement 也會關閉。
    為了創建PreparedStatement 緩沖池,可以在invoke方法中通過sql語句判斷池中還有沒有可用實例。

    4. 持久層設計與O/R mapping 技術
    1) Hernate:適合對新產品的開發,進行封閉化的設計
    Hibernate 2003年被Jboss接管,通過把java pojo對象映射到數據庫的table中,采用了xml/javareflection技術等。3.0提供了對存儲過程和手寫sql的支持,本身提供了hql語言。
    開發所需要的文件:
    hibernate配置文件: hibernate.cfg.xml 或 hibernate.properties
    hibernate 映射文件: a.hbm.xml
    pojo類源文件: a.java  

    導出表與表之間的關系:
    a. 從java對象到hbm文件:xdoclet
    b. 從hbm文件到java對象:hibernate extension
    c. 從數據庫到hbm文件:middlegen
    d. 從hbm文件到數據庫:SchemaExport

    2)Iatis :適合對遺留系統的改造和對既有數據庫的復用,有很強的靈活性 3) Apache OJB:優勢在于對標準的全面支持 4)EJB:適合集群服務器,其性能也不象某些人所詬病的那么差勁 5) JDO (java data object)
    設置一個Properties對象,從而獲取一個JDO的PersistenceManagerFactory(相當于JDBC連接池中的DataSource),進而獲得一個PersistenceManager對象(相當于JDBC中的Connection對象),之后,你可以用這個PersistenceManager對象來增加、更新、刪除、查詢對象。
    JDOQL是JDO的查詢語言;它有點象SQL,但卻是依照Java的語法的。

    5. 基于開源框架的Struts+Spring+Hibernate實現方案
    示例:這是一個3層架構的web 程序,通過一個Action 來調用業務代理,再通過它來回調 DAO類。下面的流程圖表示了MyUsers是如何工作的。數字表明了流程的先后順序,從web層(UserAction)到中間層(UserManager),再到數據層(UserDAO),然后返回。
    Spring是AOP, UserManager和UserDAO都是接口.
    1) web層(UserAction) :調用中間層的接口方法,將UserManager作為屬性注入。
    采用流行的Struts框架,雖然有很多人不屑一顧,但是這項技術在業界用的比較普遍,能滿足基本的功能,可以減少培訓學習成本。
    2) 中間層(UserManager):將UserDAO作為屬性注入,其實現主要是調用數據層接口的一些方法;它處于事務控制中。
    采用Spring框架實現,IOC與AOP是它的代名詞,功能齊全,非常棒的一個架構。
    3) 數據層(UserDAO):實現類繼承HibernateDaoSupport類,在該類中可以調用getHibernateTemplate()的一些方法執行具體的數據操作。
    采用Hibernate做O/R mapping,從種種跡象可以看出,Hibernate就是EJB3.0的beta版。 (轉載文章請保留出處:Java家(www.javajia.com))

    posted @ 2006-04-18 11:05 surffish 閱讀(269) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 亚洲一本到无码av中文字幕| 久久精品7亚洲午夜a| 特黄aa级毛片免费视频播放| 亚洲性线免费观看视频成熟| 亚洲成AV人片在| 久久精品国产影库免费看| 亚洲国产精品乱码一区二区| 拍拍拍无挡免费视频网站| 亚洲不卡中文字幕无码| 色欲国产麻豆一精品一AV一免费| 久久久国产精品亚洲一区| 1a级毛片免费观看| 国产AV旡码专区亚洲AV苍井空| 高潮毛片无遮挡高清免费视频| heyzo亚洲精品日韩| a级毛片免费观看网站| 亚洲午夜精品一区二区| 日韩亚洲国产高清免费视频| 亚洲AV色无码乱码在线观看| 亚洲国产精品毛片av不卡在线| 久久国产精品免费| 久久久无码精品亚洲日韩蜜臀浪潮| 成年人免费的视频| 亚洲AV综合永久无码精品天堂| 亚洲成A人片77777国产| 久久99热精品免费观看牛牛| 亚洲一区二区三区91| 国产一级高青免费| 亚洲美女视频一区| 四虎影视永久免费观看地址| 中文字幕免费观看视频| 亚洲中文字幕无码av在线| 午夜亚洲国产成人不卡在线| 日韩精品免费在线视频| 亚洲精品无码高潮喷水A片软| 亚洲伊人久久综合影院| 亚洲免费视频观看| 免费看一级一级人妻片| 337p欧洲亚洲大胆艺术| 亚洲成A∨人片天堂网无码| 久久久久久国产精品免费无码|