∪∩deniable Design

          個人JAVA版GAE(google app engine),struts2+jpa+jQuery開發,互相交流 http://iunbug.appspot.com/
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          推薦一個GAE免費博客程序-Micolog

          posted @ 2010-09-03 12:45 ∪∩BUG 閱讀(123) | 評論 (0)編輯 收藏

          在Google app engine 上開發Java版的GAE真是太難了, 不過終于過去了,現在我的GAE也上線了,我的blog終于獲得了新生啊, 這個GAE是struts2+JAP開發的,沒用JDO也沒用Spring.Ajax用的是jQuery. 如果想做GAE開發的希望能互相交流.http://iunbug.appspot.com/index.html

          posted @ 2010-09-03 12:43 ∪∩BUG 閱讀(309) | 評論 (0)編輯 收藏

          Ext JS 4.0新特性搶先看

          posted @ 2010-09-03 10:26 ∪∩BUG 閱讀(317) | 評論 (0)編輯 收藏

          一直對myeclipse6.6總覺得有什么遺憾,后來安裝了7.1突然覺得好多了.. 可是,一個很讓人無法忍受的問題又擺在眼前,響應太慢了,在目錄里右鍵或者點個一個樹總會卡卡的,打開什么文件都是響應太慢,這個問題在用了一段時間后變得更加突出, 能配置的我都配置了,一點起色也沒有,實在想放棄,后來我想了想問題在哪里呢?我3GB的內存啊... 終于,終于被我發現了,我因學習建立了很多測試項目,我把除當前編輯的項目外其他會關了,發現奇跡出現啦,運行非常快,打開什么文件幾乎是像記事本的感覺,原來打開properties文件會卡假死的問題也沒有了,右鍵也是即時呼出..哈哈哈.. 我欣喜啊...

          posted @ 2009-04-25 21:13 ∪∩BUG 閱讀(1228) | 評論 (0)編輯 收藏

          My SQL 學習筆記
          2008 09 29
          首先:MySQL是一個小型關系型數據庫管理系統,開發者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。

          (1)系統管理
          1.運行CMD后用CD命令到Mysql的BIN目錄下(如:E:\Program File\MySQL\MySQL Server 5.0\bin)[以下幾步的操作都在此目錄下執行]
          2.啟動MySQL服務:  net start mysql
          3.連接MySQL:    mysql -h localhost(主機) -u userName(用戶) -p databaseName(可選) (然后輸入密碼)
          4.修改root密碼:
           1)新密碼不為空
            mysqladmin -u root -p password 新密碼 (然后輸入:舊密碼)
           2)新密碼為空
            mysql -u root -p (然后輸入:舊密碼)
             use mysql;
             update user set password=password('') where user='root';
             flush privileges;  (刷新權限.)
             quit (退出)
           3)原密碼為空
             mysql -u root -p (然后回車)
             use mysql;
             update user set password=password('新密碼') where user='root';
             flush privileges;  (刷新權限.)
             quit (退出)
          (2)基本命令(注意:執行語句以";"號或"\g"結束!)
          1.列出My SQL的有多少個數據庫:    show databases;
          2.選擇某個數據庫:          use databaseName;
          3.列出當前數據庫中的所有表:     show tables;
          4.列出某個表的結構:         desc tableName;
          5.顯示當前數據庫:          select database();
          6.顯示當前用戶:           select user();
          7.顯示時間:             select now();   [按格式顯示時間:select date_format(now(),'%Y-%m-%d %H:%i:%s');]
          8.顯示MySQL版本:          select version();

          (3)MySQL實現分頁的思路
          所謂分頁顯示,也就是將數據庫中的結果集人為的分成一段一段的來顯示,這里需要兩個初始的參數:    
             
            每頁多少條記錄(PageSize)?    
            當前是第幾頁(CurrentPageID)?    
             
            現在只要給一個結果集,就可以顯示某段特定的結果出來。    
            至于其他的參數,比如:上一頁(PreviousPageID)、下一頁(NextPageID)、總頁數(numPages)等等,都可以根據前邊這幾個東西得到。    
             
            以mysql數據庫為例,如果要從表內截取某段內容,sql語句可以用:select   *   from   table   limit   offset,   rows。
            (offset是起始行(第一行從0開始),row是要顯示的行個數)
            看看下面一組sql語句,嘗試一下發現其中的規率。    
             
            前10條記錄:select   *   from   table   limit   0,10    
            第11至20條記錄:select   *   from   table   limit   10,10    
            第21至30條記錄:select   *   from   table   limit   20,10    
            ……    
             
            這一組sql語句其實就是當PageSize=10的時候取表內每一頁數據的sql語句,我們可以總結出這樣一個模板:    
             
            select   *   from   table   limit   (CurrentPageID   -   1)   *   PageSize,   PageSize    
             
            拿這個模板代入對應的值和上邊那一組sql語句對照一下看看是不是那么回事。  

          posted @ 2008-09-30 00:58 ∪∩BUG 閱讀(414) | 評論 (1)編輯 收藏

          這些天都在學習,上J道突然發現了這篇文章,當時心里咯噔一下.......


          現代軟件和以往傳統軟件主要區別在于:現代軟件基于internet互聯網技術,運行于開放的網絡環境,不象傳統軟件只是運行在封閉的局域網,運行環境的區別就決定了軟件操作用戶的多少,在一個開放互聯網環境, 你的軟件系統用戶是不斷增長,特別是那些對所有人群開放的社區網站系統,更是承受前所未有的訪問負載。那么,這些軟件系統承受的壓力主要會集中在軟件的哪個環節呢?如果你使用傳統軟件的設計思路,那么無疑壓力都集中在數據庫上。

            隨著用戶的爆發量增長,在某個凌晨醒來時,你發現:數據庫已死。

            傳統軟件系統實則應該叫數據庫軟件系統,是一個數據庫系統,開發這樣的系統非常簡單,成本 也非常低廉,只要根據需求先設計好數據表結構,然后,就找一些大學畢業生寫大量SQL語句,雖然還使用 JAVA/PHP/.NET等語言,但實際上這些語言只是將SQL送往數據庫執行的運輸工,沒有什么價值和地位。

            所以,這樣的系統運行在互聯網環境下以后,主要負載就集中在數據庫的SQL運行上,也就是說:整個軟件系統性能關鍵點就集中在數據庫上了,數據庫是性能主角,是王者;雖然你購置了昂貴的Websphere/weblogic等應用服務器,但是由于Java只是運輸工,根本起不到性能上負載分擔的作用。

            著名的社區網站MySpace就是因為一個好的idea,用戶瘋狂增長,但是系統卻不能平滑承受增長的用戶訪問,這些用戶訪問網站緩慢、無法訪問甚至丟失數據,他們經過幾次傷筋動骨的架構升級,在微軟SQLServer直接技術支持下, 好容易才勉強應付過去。看看他們痛苦經歷,你是否也愿意再來一次呢?詳細情況: http://www.jdon.com/jivejdon/thread/34601.html

            從中可以看出,數據庫性能微調和挖潛總是有限度的,對數據庫性能優化提高性能的步伐永遠趕不上用戶增長量, 有人也提出數據庫集群的概念,其實數據庫集群是一個騙人概念,一般只是備份,在集群數量和failover上有制約, 否則,數據庫巨頭Oracle不會跑到JavaEE陣營搖旗吶喊,還最早推出EJB3服務器,并揚言要收購JavaEE過去老大 Bea Weblogic。

            很顯然,數據庫成已經為軟件系統的主要性能瓶頸了,單純依靠數據庫自救的方式已經行不通,是宣布數據庫退出主角時候了,那么由誰來宣布:教皇數據庫已死?無疑是Java。

            Java社區早在本世紀初就提出中間件概念,用以取代數據庫地位,實則就是將軟件系統主要負載從數據庫上轉移到中間件服務器上,分擔負載。 也就是說:Java社區提出:既然數據庫已經成為瓶頸,修修補補也無濟于事,不如放棄它,不再依賴它。

            也就是說:Java不再做SQL的運輸工,不再是跑龍套的了,而是主角,那么如何讓Java成為主角呢?那必須依賴對象這個概念,對象是生活在中間件服務器內存中,它又是數據庫數據的業務封裝,它和數據庫有著 千絲萬縷的關系,但是它又和關系數據庫存在天然矛盾,兩者水火不容。

            過去,我們是將業務邏輯寫成SQL送往數據庫執行,導致數據庫成為業務邏輯主要運行瓶頸,那么,如果我們將 業務邏輯用對象概念表達,而不是SQL,那么我們的業務邏輯就圍繞內存中的對象反復計算,這樣,負載不是集中在 對象運行的中間件服務器上(也就是應用服務器Weblogic/websphere/JBoss/Tomcat)?而對象/中間件都是用Java 語言表達的,無疑,這樣的架構,Java才成為主角。

            再進一步想想:如果我們從軟件系統開始之初,就使用對象分析設計,不與數據庫沾邊,整個流程就完全OO,分析設計直至代碼都擺脫了數據庫影響,這個流程如下:

            分析建模 細化設計(通過Evans DDD) 架構設計 代碼實現 調試測試 部署運行。

            那么數據庫在什么時候建立呢?數據庫表結構的創建可以延緩到部署運行時,由Hibernate/EJB CMP/JPA等ORM技術自動實現。這樣, 整個上游環節就不涉及數據庫技術,而是使用更符合自然的表達OO方式,軟件質量就更高了。我在J道網站已經大量闡述了如何從OO分析 到OO實現的過程,包括我的Jdon框架也直接支持這樣一個自然方式。

            現在,很多人已經理解,分析設計要用OO,但是數據庫是運行階段缺少不了的,確實,這是正確觀點,我們奪取數據庫的王位,不是將它打倒,只是理性和平移交權力重心而已,數據庫退出主角地位,讓位于Java中間件,也預示著過去數據庫為王的時代的結束, 但是數據庫會和操作系統一樣,成為我們現代軟件系統一個不可缺少重要的基礎環節。

            正是基于這樣事實,雖然我早在2005年喊出“數據庫時代的終結一文,回帖長達幾百貼, 大部分是懷疑論,不信論,由此可見,由于傳統觀點影響和不及時與國際新思想同步,國內數據庫保皇派還是有相當人數的。我BanQ人微言輕,拋出這些觀點被保皇派譏諷為所瘋話,那么看看,著名ORM框架Hibernate和SEAM框架創始人Gavin King的一段觀點:

            In almost all enterprise applications, the database is the primary bottleneck, and the least scalable tier of the runtime environment. 數據庫成為了大多數企業應用的主要瓶頸,也成為了運行環境中最不具伸縮性的層。... PHP/Ruby的用戶會說什么都不共享(share nothing)的架構照樣具有很好的伸縮性,.... 這些傻瓜真正想的是“除了數據庫以外什么都不共享(Share nothing except for the database)”的架構。更多參看這里

            所謂伸縮性,就是彈性,整個軟件架構既支持小負載運行,也支持大負載支持,只要增加服務器即可; 由于軟件系統負載已經從SQL轉移到內存中的對象上,那么我們就可以通過增加這些應用服務器數量,通過分布式計算甚至云計算,達到業務對象在多臺應用服務器之間傳遞共享,而不必通過數據庫這個環節,既減輕數據庫負載,又能輕松擴充性能,不必走 集中試大型主機之路,只要添置低廉PC服務器即可。經過權威測試:websphere/weblogic的20臺PC服務器集群性能不亞于一臺SUN/IBM的中型機,性價比已經一目了然了。

            JavaEE的服務器的集群相對于Linux等操作系統集群的好處在于:JavaEE集群能夠針對某個繁忙負載大的具體業務功能進行集群,換句話說: 就是做到精確制導,精確解決問題,而顯然,Linux操作系統的集群則無法直至業務核心的。

            從另外一個方面看:雖然現在PHP號稱走上對象路線,Ruby的鐵軌開始鋪進企業,但是他們的運行環境實則依賴數據庫的, 特別是Ruby On Rails還是最適合Evans DDD對象建模路線,但是目前來講還是"披著羊皮的狼",批著DDD,實則是以數據庫中心。當然相信 ROR等將來會提供分布式計算環境,但是JavaEE在2002年時就通過EJB以及分布式緩存成熟穩定地提供分布式計算的中間件,并且已經大量成熟應用。

            本文結束以前,我相信大家明白,在眾多語言平臺競爭中,為什么Java能夠擊敗過去拳王數據庫,奪得新的拳王冠軍,以及他的特點所在。有人可能會說:你忘記談.NET了,這個不用我回答你,用微軟中國董事長張亞勤的話回答:8年前.NET戰略很天真, 你會將你的重要業務企業計算依賴一個很天真不成熟的技術嗎?除非你自己也很天真:)。
          進入原文:http://www.jdon.com/artichect/dbdead.htm

          posted @ 2008-09-28 22:50 ∪∩BUG 閱讀(416) | 評論 (3)編輯 收藏

               摘要: 關于如何配置請參看:Hibernate學習筆記(一)--用MyEclipse 6.5+MySQL 5.0的環境跑起來 準備:建表 用MySQL在名為STMS數據庫中建表Titems  src/org.lxh.hibernate4.TItems.java  1package org.lxh.hibernate4;  2/**...  閱讀全文

          posted @ 2008-09-01 17:18 ∪∩BUG 閱讀(636) | 評論 (1)編輯 收藏

               摘要: 關于如何配置請參看:Hibernate學習筆記(一)--用MyEclipse 6.5+MySQL 5.0的環境跑起來 準備:建表 用MySQL在名為STMS數據庫中建表 Titem Tbook Tdvd  src/org.lxh.hibernate3.TItem.java  1package org.lxh.hiber...  閱讀全文

          posted @ 2008-09-01 17:03 ∪∩BUG 閱讀(558) | 評論 (1)編輯 收藏

               摘要: 關于如何配置請參看:Hibernate學習筆記(一)--用MyEclipse 6.5+MySQL 5.0的環境跑起來 準備:建表 用MySQL在名為STMS數據庫中建表personx   src/org.lxh.hibernate2.Personx.java  1package org.lxh.hibernate2;  2 ...  閱讀全文

          posted @ 2008-09-01 16:43 ∪∩BUG 閱讀(922) | 評論 (1)編輯 收藏

               摘要: 關于如何配置請參看:Hibernate學習筆記(一)--用MyEclipse 6.5+MySQL 5.0的環境跑起來 準備:建表 用MySQL在名為STMS數據庫中建表persons  src/org.lxh.hibernate.Contact.java  1package org.lxh.hibernate;  2  3...  閱讀全文

          posted @ 2008-09-01 16:12 ∪∩BUG 閱讀(601) | 評論 (4)編輯 收藏

          僅列出標題
          共14頁: First 上一頁 6 7 8 9 10 11 12 13 14 下一頁 
          主站蜘蛛池模板: 大庆市| 体育| 清远市| 独山县| 临西县| 武川县| 揭西县| 万荣县| 康平县| 安庆市| 沾益县| 桃园市| 平舆县| 东城区| 顺义区| 天津市| 叶城县| 正安县| 金溪县| 深州市| 隆德县| 潮安县| 新民市| 于田县| 汝南县| 称多县| 津市市| 武安市| 江北区| 马公市| 南城县| 年辖:市辖区| 隆化县| 邻水| 黄龙县| 临夏县| 大石桥市| 射阳县| 南丰县| 安化县| 信丰县|