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

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

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

    深藍色心情

    過來聊聊~~~~

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      31 Posts :: 0 Stories :: 46 Comments :: 0 Trackbacks
    如何不用寫java代碼來完成開發? 

    對于大部分的產品和項目來說,頁面變化是非常頭痛的事情。每次小功能上線,新客戶到來,都需要進行定制改造,不斷的開發維護。每次開發一方面要改動頁面,一方面要改動服務器代碼,然后部署。而借助動態數據源,可以不用開發后端應用,直接完成功能開發。 

    新功能開發時,只需要定義需要的數據格式和獲取方法,如通過xml上傳1個sql語句,系統根據sql語句自動提取數據并轉成通用的格式。開發過程中,后臺java開發部分只是寫好sql并且上傳,這樣前臺通過某一個servlet可以動態的讀取執行sql,并將結果按照json返給前端,以后所有的開發只需要前端做ajax實現頁面即可。 

    完整業務流程如下: 

    1. 用戶在前端操作,如需要讀取經濟類圖書。 

    2. 前端js判斷是什么操作,然后發送ajax請求到:http://services.guzz.org/commonServlet?id=f2354239sfASASFASfasf6&catId=47&keyword=jingji..... 

    3. 服務器端有一個類似dispatcher-servlet的東西(我們這兒的commonServlet),攔截請求,根據id知道加載數據需要執行名稱為f2354239sfASASFASfasf6的sql文件,執行時需要參數:catId=47和keyword=jingji 

    4. commonServlet從文件系統中讀取f2354239sfASASFASfasf6.xml文件(這個文件在一個隱藏的目錄下,從瀏覽器是不能直接獲取到的;集群環境會存放在集中存儲上),解析sql以及對象映射ORM。 

    5. commonServlet打開數據庫連接,根據sql構造查詢語句,將第一步傳入的參數全部作為命名參數傳給查詢語句,執行查詢。 

    6. commonServlet把查詢的ResultSet根據ORM轉成java類,再轉成json,返回前臺。 

    7. 前臺根據json構造出頁面并展示。結束流程。 

    在整個過程中,有2個關鍵步驟,一是動態加載SQL并進行ORM映射,一是自動進行sql所需要參數的類型轉換和匹配,進行命名查詢。如果系統規模較大,還需要解決查詢時分庫分表的問題。對于這種sql使用方式,由于在系統上線時,并不知道以后會用哪些sql語句,我們稱作動態SQL。 

    實現方式: 

    步驟1. 實現servlet。定義一個普通的servlet,或者jsp,或者webwork/spring action,接收參數,獲取到sql的id,以及所有傳入的參數,然后轉入處理類處理。處理完成后,將返回結果轉成json返回前端。 

    步驟2. 實現動態SQL加載與查詢。處理類根據id加載sql并執行,返回數據庫查詢結果。guzz 1.2.8 beta2提供了動態SQL服務,根據此服務可以直接實現此功能。詳細說明:http://code.google.com/p/guzz/wiki/TutorialDynamicSQLService 

    好處: 

    實現以后,基本上后臺開發就會很穩定很穩定了,大部分的工作只是前端做頁面。可以大幅度的降低開發成本,提高開發進度。 

    上面的實現是以上傳文件來定義和管理sql,也可以通過數據庫來管理。這樣管理起來更加簡單。 

    如果使用guzz作為動態SQL提供者,可以自動獲得命名查詢,類型自動匹配(轉成枚舉類型都可以),分庫,自動分切表,自定義屬性表等附加支持。

    嘖嘖~~ 

    posted on 2010-05-27 14:52 深藍色心情 閱讀(2965) 評論(5)  編輯  收藏 所屬分類: Java

    Feedback

    # re: 改進架構,實現動態數據源,降低java維護 2010-05-27 16:18 咖啡妝
    對一般的系統有可能可以,但是業務復雜的話 不太好辦,我的sql語句也是動態構造的 不是寫死的,返回值也不一樣,我加一張表呢 其他的sql要關聯的話都完蛋了,業務一變sql就變 代碼邏輯也要變,不改不可能吧。

    我覺得封裝一些非業務相關組件還是不錯的。
      回復  更多評論
      

    # re: 改進架構,實現動態數據源,降低java維護 2010-05-27 16:22 深藍色心情
    @咖啡妝

    不是說動態拼接SQL,而是指動態提取SQL。SQL都存儲在外部,如文件中或數據庫中,修改sql的話只需要修改外部資源,不用改動代碼。

      回復  更多評論
      

    # re: 改進架構,實現動態數據源,降低java維護 2010-05-27 19:36 mr right
    對于大部分的產品和項目來說,頁面變化是非常頭痛的事情。每次小功能上線,新客戶到來,都需要進行定制改造,不斷的開發維護。每次開發一方面要改動頁面,一方面要改動服務器代碼,然后部署。而借助動態數據源,可以不用開發后端應用,直接完成功能開發。
      回復  更多評論
      

    # re: 改進架構,實現動態數據源,降低java維護 2010-05-28 13:48 淘寶女裝
    士大夫就看電視  回復  更多評論
      

    # re: 改進架構,實現動態數據源,降低java維護 2010-05-28 15:38 博百優
    不是說動態拼接SQL,而是指動態提取SQL。SQL都存儲在外部,如文件中或數據庫中,修改sql的話只需要修改外部資源,不用改動代碼。

    如果我是調用sql文件呢  回復  更多評論
      

    主站蜘蛛池模板: 夭天干天天做天天免费看| 最近2018中文字幕免费视频| 成年人在线免费看视频| 亚洲国产日韩在线一区| 国产精品成人免费福利| 亚洲最新中文字幕| 亚洲视频在线免费看| 久久久亚洲裙底偷窥综合| 免费A级毛片无码A∨免费| jlzzjlzz亚洲jzjzjz| 毛片A级毛片免费播放| 亚洲第一se情网站| 亚洲成A∨人片天堂网无码| 中美日韩在线网免费毛片视频| 亚洲日本韩国在线| 花蝴蝶免费视频在线观看高清版| 亚洲va久久久噜噜噜久久天堂| 美女在线视频观看影院免费天天看| 亚洲成色在线综合网站| 亚洲香蕉免费有线视频| 亚洲最大中文字幕无码网站 | 美女在线视频观看影院免费天天看| 亚洲av无码成h人动漫无遮挡| 一级毛片免费毛片一级毛片免费| 亚洲国产综合精品| 国产网站免费观看| 9久热这里只有精品免费| 亚洲欧洲日产国产综合网| 久久久久国色AV免费观看性色 | 精品一区二区三区免费视频 | 亚洲中文无码永久免费| 亚洲国产精品成人久久蜜臀| 精品视频在线免费观看| 亚洲一区在线免费观看| 亚洲av中文无码| 久操视频免费观看| 亚洲熟伦熟女专区hd高清| 亚洲日韩aⅴ在线视频| 91香蕉成人免费网站| 全黄A免费一级毛片| 亚洲精品国产第1页|