隨筆-75  評(píng)論-193  文章-5  trackbacks-0
            2009年2月26日
          var fixgeometry = function() {
              /* Some orientation changes leave the scroll position at something
               * that isn't 0,0. This is annoying for user experience. */
              scroll(0, 0);
              /* Calculate the geometry that our content area should take */
              var header = $(".header:visible");
              var footer = $(".footer:visible");
              var content = $(".content:visible");
              var viewport_height = $(window).height();
              
              var content_height = viewport_height - header.outerHeight() - footer.outerHeight();
              
              /* Trim margin/border/padding height */
              content_height -= (content.outerHeight() - content.height());
              content.height(content_height);
            }; /* fixgeometry */
            $(document).ready(function() {
              $(window).bind("orientationchange resize pageshow", fixgeometry);
            });
          posted @ 2013-01-28 10:59 The Matrix 閱讀(5205) | 評(píng)論 (1)編輯 收藏
          http://java.dzone.com/articles/hibernate-tuning-queries-using?page=0,0 
          posted @ 2012-05-14 14:28 The Matrix 閱讀(1223) | 評(píng)論 (0)編輯 收藏
          環(huán)境:
              
              Centos6.2(安裝在Vmware7.0中)
              Magento1.6.2
              Apache Httpd Server 2.2.15
              MySql 5.1.61
              PHP5.3.3

          安裝過(guò)程:

              apache http、mysql、php及相關(guān)擴(kuò)展安裝:
              其中apache http、Mysql、php都是利用centos的添加/刪除軟件功能進(jìn)行安裝。同時(shí)使用該功能安裝"php-xml"、"php-gd"、"php-pdo"、"php-mbstring"、"php-mysql"擴(kuò)展。
              使用chkconfig配置httpd和mysql為系統(tǒng)服務(wù)。命令如下:
              chkconfig httpd on
              chkconfig -add mysqld
              chkconfig mysqld on
              使用chkconfig --list 可以查看所有的服務(wù)配置狀態(tài)
              使用service httpd start、service mysqld start啟動(dòng)httpd和mysqld服務(wù)。可以通過(guò)service httpd restart重啟相關(guān)服務(wù)。
              此時(shí)訪問(wèn)本機(jī)的http://localhost可以看到apache的歡迎界面,同時(shí)編輯index.php文件,其內(nèi)容如下:
              <?php
                  phpinfo();
              ?>
              并將該文件置于/var/www/html目錄下,訪問(wèn)http://localhost/index.php,此時(shí)應(yīng)該不能看到php版本信息,僅能看到index.php的靜態(tài)文本內(nèi)容。
              修改/etc/httpd/conf/httpd.conf文件,修改如下:
              DirectoryIndex index.html index.html.var ->  DirectoryIndex index.html index.htm index.php
              增加:
              AddType application/x-httpd-php .php
              AddDefaultCharset -> AddDefaultCharset off  (解決中文亂碼問(wèn)題)
              增加一段VirtualHost描述,如下(在配置文件的最后):
              <VirtualHost *:80>
                  DocumentRoot /var/www/smallfive
                  ServerName smallfive
                  ServerAlias smallfive.com *.smallfive.com
              </VirtualHost>
              此時(shí)訪問(wèn)http://localhost/index.php,應(yīng)該一切正常

              設(shè)置數(shù)據(jù)庫(kù):
              使用mysqladmin -u root password 'newpassword'設(shè)置mysql數(shù)據(jù)庫(kù)的默認(rèn)密碼
              讓數(shù)據(jù)庫(kù)更安全:
              mysql -u root -p    進(jìn)入mysql
              mysql> DROP DATABASE test;                刪除test數(shù)據(jù)庫(kù)
              mysql> DELETE FROM mysql.user WHERE user = '';       刪除匿名帳戶
              mysql> FLUSH PRIVILEGES;                 重載權(quán)限
              創(chuàng)建magento數(shù)據(jù)庫(kù)
              mysql> CR   訪問(wèn)magento數(shù)據(jù)庫(kù),確保一切正常

              配置Magento:
              解壓縮magento1.6.2版本至/var/www/smallfive/magento目錄
              解壓命令:
             EATE DATABASE magento;
              mysql> GRANT ALL PRIVILEGES ON magento.* TO 'root'@'localhost' IDENTIFIED BY 'newpassword'; 
            tar zxvf magento1.6.2.tar.gz
              此時(shí)訪問(wèn)http://localhost/magento,可根據(jù)magento的設(shè)置進(jìn)行配置
             
              注意如下問(wèn)題:
              1、確保當(dāng)前用戶擁有對(duì)/var/www/smallfive/magento可讀可寫權(quán)限
              2、還需安裝mcrypt庫(kù),安裝這個(gè)庫(kù)比較繁瑣,mcrypt依賴于Libmcrypt庫(kù)和mhash庫(kù),我們需要下載Libmcrypt庫(kù)和mhash庫(kù)安裝它們,然后再編譯Mcrypt。
              在編譯之前,先做好如下準(zhǔn)備工作:
                  a、安裝phpize:yum -y install php-devel
                  b、安裝C++腳本編譯模塊:
                      yum -y install gcc gcc-g++
                      yum -y install gcc gcc-c++
              安裝mcrypt庫(kù)過(guò)程,如下:
                  a、下載libmcrypt和mhash庫(kù)
                      Libmcrypt:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459
                      mhash:http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636
                  b、將上述兩個(gè)下載后,分別解壓,并執(zhí)行如下命令編譯:
                      ./configure
                      make && make install
                  c、下載php對(duì)應(yīng)的源代碼,解壓,
                      進(jìn)入php源代碼的 /ext/mcrypt目錄
                      執(zhí)行phpize命令
                      ./configure –with-php-config=/usr/bin/php-config
                      make && make install
                  d、在php.ini文件中增加如下內(nèi)容:
                      extension=/usr/lib/php/modules/mcrypt.so
                      mcrypt.so文件路徑在php-config文件中可以找到
                  e、service httpd restart
             
              end!
               
              參考文章:
              http://www.eexu.com/article.asp?id=1730
              http://www.ruiwant.com/centos-6-0%E4%B8%8Bmagento%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E6%80%BB%E7%BB%93.html
              http://zixun.www.net.cn/qita/2344.html
              http://os.qudong.com/Linux/2010/0210/64441.html
          posted @ 2012-04-04 17:09 The Matrix 閱讀(3139) | 評(píng)論 (1)編輯 收藏
          有時(shí)在vmware里面安裝的系統(tǒng)或應(yīng)用有License時(shí)間的限制,可以通過(guò)修改虛擬機(jī)時(shí)間的方法來(lái)防止過(guò)期,此時(shí)需在.vmx文件中加入下面的內(nèi)容:
          tools.syncTime = "FALSE"
          time.synchronize.continue = "FALSE"
          time.synchronize.restore = "FALSE"
          time.synchronize.resume.disk = "FALSE"
          time.synchronize.shrink = "FALSE"
          rtc.startTime = 1183431600  #這是用來(lái)指定虛擬機(jī)啟動(dòng)后的時(shí)間。數(shù)字是自1970年1月1日零時(shí)零分零秒以來(lái)的秒數(shù),可以通過(guò)如下網(wǎng)址將某個(gè)時(shí)間轉(zhuǎn)換為該數(shù)字(Unix時(shí)間戳):http://www.onlineconversion.com/unix_time.htm

          注意:同時(shí)還需在虛擬機(jī)操作系統(tǒng)的服務(wù)中,停用“VMware Tools Service”的服務(wù)。
          在Windows Server 2003中操作系統(tǒng)自身也有時(shí)間同步功能,需在時(shí)間設(shè)定中停用,同時(shí)停用“Windows Timer”服務(wù)。
          posted @ 2012-03-02 10:51 The Matrix 閱讀(8704) | 評(píng)論 (0)編輯 收藏
          主要參見(jiàn):http://blog.chenlb.com/2011/03/install-apache-php-wordpress-windows.html

          在安裝好apache http server后,如果端口不正確,則修改"apache安裝目錄/conf/httpd.conf"文件中的如下信息:
          Listen 80  -> Listen 8060
          #ServerName localhost:80 -> ServerName localhost:8060

          Apache HTTP Server版本:2.2
          PHP版本:5.3.8
          WordPress版本:3.2.1
          posted @ 2011-11-27 21:28 The Matrix 閱讀(665) | 評(píng)論 (0)編輯 收藏

          1. 打開(kāi)工具Oracle SQL Plus 以dba身份登錄sys用戶
          sqlplus /nolog
          conn sys@url as sysdba

          2. 創(chuàng)建用戶并指定表空間

          使用客戶端工具或者Web管理控制臺(tái)創(chuàng)建表空間以及用戶
          給用戶賦予connect、resource、dba權(quán)限
          grant connect,resource,dba to username;


          注意:給oracle用戶分配connect、resource角色時(shí),此時(shí)connect 角色中有一個(gè) UNLIMITED TABLESPACE 權(quán)限,也就是username這個(gè)用戶可以在其他表空間里隨意建表。
          revoke unlimited tablespce from username;     --撤銷username用戶在任意表空間建表的權(quán)限
          alter user username quota 0 on users;      --alter username quota 0 on Users;  // 還不是很清楚具體含義???
          alter user username quota unlimited on tablespacename;   --賦予username用戶在tablespacename表空間任意建表的權(quán)限;

           


          3. 使用imp工具導(dǎo)入dmp數(shù)據(jù)文件
          imp username/password@url file=c:\db.dmp fromuser=username1 touser=username log=c:\log.txt


          -------------------------------------------------------------------------------------------------------------
          其它命令:
          select * from dba_users;    --查詢用戶

          select * from dba_tables;    --查詢表
          select * from dba_views;    --查詢視圖
          select * from dba_tablespaces;    --查詢表空間


          oracle 10g,查詢表空間使用率
          Select * from sys.DBA_TABLESPACE_USAGE_METRICS;
          -------------------------------------------------------------------------------------------------------------

          drop user username cascade;

          ORA-01940:無(wú)法刪除當(dāng)前已連接的用戶

          select username, sid, serial# from v$session where username='username';

          alter system kill session'sid,serial#'

           

          posted @ 2011-05-31 16:43 The Matrix 閱讀(3904) | 評(píng)論 (0)編輯 收藏
          環(huán)境:Windows7 professional

          1、下載redmine1.1.3.zip、ruby1.8.7、rubygems-1.3.7.zip、mysql 5.0

          2、安裝MySQL5.0,cmd窗口下使用mysql -u root -p 登錄MySQL數(shù)據(jù)庫(kù),執(zhí)行如下語(yǔ)句創(chuàng)建redmine數(shù)據(jù)庫(kù)及用戶:
          create database redmine character set utf8;
          create user 'redmine'@'localhost' identified by 'my_password';
          grant all privileges on redmine.* to 'redmine'@'localhost';
          注:
              使用MySQL5.5在后面進(jìn)行初始數(shù)據(jù)時(shí)Ruby會(huì)提示連接有問(wèn)題
              在安裝完MySQL后,先不要進(jìn)行配置,至“MySQL安裝路徑\bin”目錄下,修改MySQLInstanceConfig.exe為“以管理員成分執(zhí)行此程序”,“以兼容模式運(yùn)行該程序”
              進(jìn)行數(shù)據(jù)庫(kù)配置時(shí),選擇字符集為utf8

          3、運(yùn)行ruby1.8.7安裝包,解壓至d:/ruby187,將d:/ruby187/bin添加至path環(huán)境變量中
          安裝后可執(zhí)行 ruby -v查看ruby版本以檢驗(yàn)安裝是否正確

          4、解壓rubygems-1.3.7.zip至d:/rubygems-1.3.7
          進(jìn)入d:/rubygems-1.3.7目錄,執(zhí)行ruby setup.rb
          注:Redmine需要rubygems 1.3.1 - 1.5.x,肯定不能用1.8.2版本

          5、執(zhí)行g(shù)em install rails -v=2.3.5 遠(yuǎn)程安裝rails2.3.5版本
          gem install mysql
          gem install -v=0.4.2 i18n

          6、解壓縮redmine1.1.3至d:/redmine1.1.3目錄
          進(jìn)入d:/redmine-1.1.3/config目錄,修改database.yml.example文件為database.yml,并修改該文件中的production數(shù)據(jù)庫(kù)連接配置為如下:
          production:
            adapter: mysql
            database: redmine
            host: localhost
            username: redmine
            password: my_password
            encoding: utf8

          進(jìn)入d:/redmine1.1.3目錄,執(zhí)行
          rake config/initializers/session_store.rb
          rake db:migrate RAILS_ENV="production"

          7、加載默認(rèn)配置數(shù)據(jù)
          rake redmine:load_default_data RAILS_ENV="production"
          默認(rèn)語(yǔ)言選擇"zh"

          8、運(yùn)行
          ruby script/server webrick -e production

          9、訪問(wèn):http://localhost:3000
          使用admin/admin進(jìn)行登入
          進(jìn)入設(shè)置,把默認(rèn)語(yǔ)言設(shè)為“簡(jiǎn)體中文”,然后設(shè)置當(dāng)前用戶的默認(rèn)語(yǔ)言設(shè)為“簡(jiǎn)體中文”,這樣就是中文界面了

          -----------------------------------------

          繼續(xù),將redmine設(shè)置為windows 7的服務(wù)

          1、首先需要配置mysql為windows 7的服務(wù)

          2、Ruby提供一個(gè)安裝Ruby程序?yàn)榉?wù)的包:mongrel_service。安裝其實(shí)很簡(jiǎn)單,運(yùn)行:gem install mongrel_service

          3、安裝redmine為服務(wù),執(zhí)行mongrel_rails service::install -N RedMine -c C:\redmine-1.1.3 -p 3000 –e production
          注意:此處打開(kāi)cmd窗口時(shí),需要輸入cmd后,不是直接按Enter,而是按 Ctrl+Shift+Enter打開(kāi)Cmd窗口,此時(shí)以管理員身份打開(kāi),否則安裝為服務(wù)時(shí)會(huì)提示拒絕訪問(wèn)。

          4、安裝服務(wù)后,需檢查服務(wù)-e后的參數(shù)是不是production,如果不是production而是development,則在注冊(cè)表中把參數(shù)手動(dòng)改為production。修改方法是:打開(kāi)“注冊(cè)表編輯器”,展開(kāi)分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”,選擇redmine服務(wù),找到ImagePath項(xiàng),修改保存后在服務(wù)列表中啟動(dòng)服務(wù),并把服務(wù)設(shè)置自動(dòng)啟動(dòng)。

          OK!
          posted @ 2011-05-20 10:25 The Matrix 閱讀(2801) | 評(píng)論 (0)編輯 收藏
          參見(jiàn)如下鏈接:
          http://www.41post.com/3255/programming/unity3d-creating-a-gui-with-both-3d-and-2d-elements
          posted @ 2011-03-25 21:33 The Matrix 閱讀(1214) | 評(píng)論 (0)編輯 收藏
          沒(méi)仔細(xì)研究,先把項(xiàng)目地址記下:http://arshaw.com/fullcalendar/

          這個(gè)博客中另有幾個(gè)推薦的類似項(xiàng)目:http://hi.baidu.com/freezesoul/blog/item/15c5d73fe4a315c17d1e71ec.html
          posted @ 2010-11-09 20:37 The Matrix 閱讀(1292) | 評(píng)論 (0)編輯 收藏

          這幾天在看郎咸平的《誰(shuí)在謀殺中國(guó)經(jīng)濟(jì)》,這本書(shū)我基本看過(guò)一遍了,認(rèn)為全書(shū)的重點(diǎn)在于中華文化的四大茫然,整本書(shū)都是圍繞這四大茫然展開(kāi)論述,中華文化的四大茫然如下:
          茫然之一:就知道賺錢
          茫然之二:不了解世界
          茫然之三:不了解別人為什么那么看你
          茫然之四:不了解自己的缺點(diǎn)

          大家有時(shí)間可以看看這本書(shū),我覺(jué)得寫的不錯(cuò),至少我自己看完深有感觸,我覺(jué)得完全可以將這幾點(diǎn)套用到我們生活的很多方面,比如對(duì)于我們搞IT的技術(shù)人員來(lái)說(shuō),我認(rèn)為現(xiàn)在很多人也存在四大茫然:

          茫然之一:只知道完成任務(wù)。也許是我年齡大了點(diǎn),但我覺(jué)得現(xiàn)在很多小朋友,尤其是85年以后出生的,工作的時(shí)候只是在完成任務(wù),事情做完了,有時(shí)也不測(cè)試,或者就是匆匆測(cè)試,匆匆結(jié)束,并沒(méi)有好好的想為什么這件事老大要讓我這樣做,這樣做有什么好處,會(huì)不會(huì)有缺點(diǎn),我是不是有更好的方法。當(dāng)你不去想的時(shí)候,意味著你少了很多提高的機(jī)會(huì)。

          茫然之二:不追究為什么。很多人做事情就象第一條說(shuō)的那樣,只是完成任務(wù),并不去想其中的原理是什么。面試過(guò)很多人,對(duì)于目前工作兩三年的大部分人來(lái)說(shuō)(當(dāng)然我面試的不是好的學(xué)校畢業(yè)的,基本學(xué)校為中等偏下點(diǎn)),一旦涉及到Spring、Hibernate、Struts等框架深入點(diǎn)東西的時(shí)候,大都回答不上來(lái),只是對(duì)框架能熟練應(yīng)用而已。這樣夠么?計(jì)算機(jī)的很多知識(shí),當(dāng)你熟悉了其運(yùn)作原理,框架對(duì)于你來(lái)說(shuō),只是手到擒來(lái),看看學(xué)學(xué)就會(huì)用了。我問(wèn)過(guò)好幾個(gè)同事,平時(shí)晚上回去都干嘛,很多人都回答我晚上回去看看電視,稍微看看書(shū)就睡覺(jué)了。我有點(diǎn)驚訝,我想如果你想成為一個(gè)技術(shù)高手,一個(gè)能拿高薪的程序員,你又沒(méi)有天份,又不付出超過(guò)常人的努力,憑什么你比別人強(qiáng)呢?

          茫然之三:不善于總結(jié)。很多人(又是很多人)過(guò)著做一天和尚撞一天鐘的日子,日子一天一天過(guò)去,基本不去總結(jié),只是過(guò)了好長(zhǎng)一段時(shí)間會(huì)發(fā)覺(jué),原來(lái)最近我啥也沒(méi)有進(jìn)步,啥也沒(méi)學(xué)到,還是老樣子。知識(shí)在于積累,你只有不斷總結(jié),知識(shí)才能更好的積累,才能更好的為你服務(wù)。

          茫然之四:沒(méi)有明確的目標(biāo)。一個(gè)人沒(méi)有目標(biāo)就決定了他不會(huì)有長(zhǎng)足的進(jìn)步。你都沒(méi)有想過(guò)自己要成為一個(gè)架構(gòu)師,一個(gè)項(xiàng)目經(jīng)理,一個(gè)部門經(jīng)理,一個(gè)技術(shù)總監(jiān),都沒(méi)有想過(guò)要成為這樣的人需要具備什么樣的條件,你怎么可能知道自己欠缺什么?需要補(bǔ)充什么呢?長(zhǎng)遠(yuǎn)目標(biāo)要明確,然后根據(jù)長(zhǎng)遠(yuǎn)目標(biāo)進(jìn)行分析,我要達(dá)到這樣的目標(biāo),還有什么欠缺,據(jù)此制定短期目標(biāo),短期目標(biāo)一定要可實(shí)現(xiàn)可操作。這樣隨著你目標(biāo)的一步一步實(shí)現(xiàn),你各方面的能力也隨之提高了。

          寫了幾點(diǎn),也作為對(duì)自己的鞭策。

          posted @ 2010-04-14 22:05 The Matrix 閱讀(6177) | 評(píng)論 (10)編輯 收藏

          2010年已經(jīng)過(guò)去一個(gè)月了,趕在農(nóng)歷春節(jié)前列一下今年的讀書(shū)清單,不能總把精力放在工作中了,也需要補(bǔ)充點(diǎn)新知識(shí)了,否則沒(méi)有新東西能貢獻(xiàn)出來(lái)了。

          1、《OSGI原理與最佳實(shí)踐》,結(jié)合這本書(shū)并研究SpringDM,做一些實(shí)例。

          2、《SQL語(yǔ)言藝術(shù)》

          3、《Oracle9i&10g編程藝術(shù)》

          4、《架構(gòu)之美》

          5、《UML和模式應(yīng)用》

          6、《UML彩色建模》

          7、《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與模式實(shí)戰(zhàn)》

          8、《敏捷軟件開(kāi)發(fā) 原則、模式與實(shí)踐》

          9、《軟件開(kāi)發(fā)的邊界》

          10、《軟件隨想錄》

          11、《走出軟件作坊》

          就這么多了,9、10、11去年都看過(guò)一遍了,但好多地方粗粗過(guò)了一下,還要仔細(xì)閱讀。

          另外也對(duì)自己提個(gè)要求,看書(shū)要做讀書(shū)筆記。

          2010年-我的讀書(shū)年!

          posted @ 2010-02-03 23:27 The Matrix 閱讀(2781) | 評(píng)論 (6)編輯 收藏

          摘自《軟件隨想錄》

          看了軟件隨想錄中下面一段話,覺(jué)得非常棒,作為一名軟件從業(yè)人員,不一定有機(jī)會(huì)能實(shí)現(xiàn)描述中的優(yōu)秀軟件產(chǎn)品,但這樣的理念需要貫穿我們每個(gè)人的心田,時(shí)刻記在心中:

          【創(chuàng)造一個(gè)有使用價(jià)值的軟件,你必須時(shí)時(shí)刻刻都在奮斗,每一次的修補(bǔ),每一個(gè)功能,每一處小小的改進(jìn),你都在奮斗,目的只是為了再多創(chuàng)造一點(diǎn)空間,可以再多吸引一個(gè)用戶加入。沒(méi)有捷徑可走。你需要一點(diǎn)運(yùn)氣,但是這不取決于你是否幸運(yùn)。你之所以會(huì)有好運(yùn)氣,那是因?yàn)槟愦缤帘貭?zhēng)。

          每天你前進(jìn)一小步,將一件東西做得比昨天好一點(diǎn)點(diǎn)。這樣的改進(jìn)幾乎看不出可以讓誰(shuí)獲益,幾乎沒(méi)有變化。但是,你前進(jìn)了一小步。

          有無(wú)數(shù)個(gè)要做的這樣微小的改進(jìn)。

          為了發(fā)現(xiàn)可以改進(jìn)的地方。你必須有一個(gè)思維定勢(shì),始終如一的用批判的眼光看世界。隨便找一樣?xùn)|西,如果你看不出它的缺點(diǎn),那么你的思維轉(zhuǎn)型還沒(méi)有成功。當(dāng)你成功的時(shí)候,你身邊親密的人會(huì)被你逼得發(fā)瘋。你的家人恨不得殺了你。當(dāng)你步行上班的時(shí)候,看到一個(gè)司機(jī)漫不經(jīng)心地開(kāi)車,你幾乎用了所有的意志力才勉強(qiáng)忍不住沖上去告訴那個(gè)司機(jī),他這樣開(kāi)車差點(diǎn)兒要了旁邊坐在輪椅上的那個(gè)可憐小孩的命。

          當(dāng)你改正了一個(gè)又一個(gè)這樣的小細(xì)節(jié)后,當(dāng)你磨光、定型、擦亮、修飾你的產(chǎn)品的每一個(gè)小邊角后,就會(huì)有神奇的事情發(fā)生。厘米變成分米,分米變成米,米變成了千米。你最后拿出來(lái)的是一件真正優(yōu)秀的產(chǎn)品。它第一眼就讓人覺(jué)得震撼,出類拔萃,工作起來(lái)完全符合直覺(jué)。就算100萬(wàn)個(gè)用戶中有一個(gè)用戶某天突然要用到一個(gè)他100萬(wàn)次使用中才會(huì)用到一次的罕見(jiàn)功能,他發(fā)現(xiàn)了這個(gè)功能不僅能用,而且還很沒(méi):在你的軟件中,即使是看門人的小屋都鋪著大理石的地板,配有實(shí)心的橡木門和桃花心木的壁板。

          就是在這個(gè)時(shí)候,你意識(shí)到這是一個(gè)優(yōu)秀軟件。】

          posted @ 2010-01-05 21:25 The Matrix 閱讀(2309) | 評(píng)論 (11)編輯 收藏

          http://www.insideria.com/2009/05/flex-4-custom-layouts.html


          http://www.insideria.com/2009/10/easy-flex-skinning-with-firewo.html

          posted @ 2009-11-25 12:25 The Matrix 閱讀(601) | 評(píng)論 (0)編輯 收藏

          在Flash Builder 4 Beta 2版本中,使用mxml方式實(shí)現(xiàn)state的切換有了很大改進(jìn),使用起來(lái)更方便,具體可參見(jiàn)下文:

          http://onflex.org/learn/fx4/index.php?page=States

          看完這篇文章后,想到一個(gè)問(wèn)題,如何用編程的方式實(shí)現(xiàn)切換呢,找了參考資料,實(shí)現(xiàn)了一個(gè)例子,代碼如下:

          開(kāi)發(fā)環(huán)境:Flash Builder 4 Beta2

          <?xml version="1.0" encoding="utf-8"?>
          <s:Application
              
          xmlns:fx="http://ns.adobe.com/mxml/2009"
              xmlns:s
          ="library://ns.adobe.com/flex/spark"
              creationComplete
          ="creationCompleteHandler(event)">
              
          <fx:Script>
                  
          <![CDATA[
                      import mx.core.UIComponent;
                      import mx.events.FlexEvent;
                      import mx.states.SetProperty;
                      import mx.states.State;
                      
                      import spark.components.Label;
                      import spark.components.Panel;

                      private var stateArray : Array;
                      private var state1 : State;
                      private var state2 : State;
                      
                      protected function creationCompleteHandler(event:FlexEvent):void
                      {
                          state1 = new State();
                          state1.name="state1";
                          
                          state2 = new State();
                          state2.name="state2";
                          
                          var stateArray1:Array = new Array();
                          var stateArray2:Array = new Array();
                          
                          state1.overrides = stateArray1;
                          state2.overrides = stateArray2;
                          
                          stateArray = new Array();
                          stateArray.push(state1);
                          stateArray.push(state2);
                          this.states = stateArray;
                          
                          var panel:Panel = new Panel();
                          group.addElement(panel);
                          var label:Label = new Label();
                          panel.addElement(label);
                          
                          buildStates(stateArray1, stateArray2, panel, label);
                          this.currentState = "state1";
                      }

                      private function buildStates(stateArray1:Array, stateArray2:Array,
                          compenent1:UIComponent, compenent2:UIComponent) : void{
                          
                          stateArray1.push(makeSetProp(compenent1, "title", "Panel1"));            
                          stateArray1.push(makeSetProp(compenent2, "text", "One"));
                          
                          stateArray2.push(makeSetProp(compenent1, "title", "Panel2"));
                          stateArray2.push(makeSetProp(compenent2, "text", "Two"));
                      }
                      
                      private function makeSetProp(target:UIComponent, name:String, value:*):SetProperty{
                          var sp:SetProperty = new SetProperty();
                          sp.target = target;
                          sp.name = name;
                          sp.value = value;
                          return sp;
                      } 
                  
          ]]>
              
          </fx:Script>
                  
              
          <s:VGroup autoLayout="true" horizontalAlign="center">
                  
          <s:HGroup horizontalCenter="0">            
                      
          <s:Button label="One" 
                          click
          ="this.currentState='state1'"/>            
                      
          <s:Button label="Two" 
                          click
          ="this.currentState='state2'"/>            
                  
          </s:HGroup>
                  
          <s:HGroup id="group" horizontalCenter="0">            
                  
          </s:HGroup>
              
          </s:VGroup>
              
          </s:Application>
          posted @ 2009-11-11 21:59 The Matrix 閱讀(1636) | 評(píng)論 (0)編輯 收藏

              這是前幾天在別人的BLog上看到的一幅圖,覺(jué)得不錯(cuò),基本涵蓋了IT人員需要掌握的基礎(chǔ)知識(shí)這塊,從這幅圖中可以看出語(yǔ)言并不重要,關(guān)鍵是要搞明白整個(gè)環(huán)節(jié),這樣遇到任何問(wèn)題就能有目的、有方法的學(xué)習(xí)了。

          計(jì)算機(jī)知識(shí)體系

          posted @ 2009-10-22 08:32 The Matrix 閱讀(976) | 評(píng)論 (0)編輯 收藏

          1、下載Ruby并安裝,下載地址:http://rubyforge.org/frs/?group_id=167

          下載了1.8.6-27 Release Candidate 2(ruby186-27_rc2.exe)版本

          2、在windows的命令行下,輸入 ruby –v,檢查ruby是否正確安裝,應(yīng)該出現(xiàn)如下信息:

          ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]

          3、安裝rails,執(zhí)行g(shù)em install rails命令,安裝成功后,執(zhí)行rails -v檢查。

          我安裝了Rails2.3.2版本。使用gem install -version rails可以指定安裝的rails版本,具體如何使用gem,可以用gem help install查看幫助。

           

          參考:Ruby On Rails(ROR)安裝(http://enjoylog.cn/?p=8

           

          裝好了便到Ruby On Rails的官方網(wǎng)站(http://rubyonrails.org/),找到了

          Getting Started with Rails(http://guides.rubyonrails.org/getting_started.html)

          開(kāi)始一步一步follow up。

          RubyOnRails的中文站上的翻譯文檔沒(méi)有完全跟進(jìn),還是看英文的吧。

           

          我使用的是MySQL的數(shù)據(jù)庫(kù),操作系統(tǒng):Vista。

          到創(chuàng)建POSTS應(yīng)用的時(shí)候遇到了問(wèn)題,創(chuàng)建數(shù)據(jù)后數(shù)據(jù)庫(kù)中有數(shù)據(jù),但是到Listing posts界面無(wú)法查看,總是報(bào)錯(cuò)。

          網(wǎng)上Google了一下,果然有人遇到相同的問(wèn)題,參照了如下解決方案,到

          http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/ 上下載了libmySQL.dll文件放到RUBY_HOME/bin/目錄下,問(wèn)題解決。

          參考:升級(jí)2.2后mysql驅(qū)動(dòng)的問(wèn)題(http://www.javaeye.com/topic/283871?page=1

           

          感嘆一下,當(dāng)Listing Posts這個(gè)CRUD小應(yīng)用跑起來(lái)后,覺(jué)得Ruby On Rails的開(kāi)發(fā)是比Java開(kāi)發(fā)要快一些,看了一下它生成的代碼,貌似也不多。

           

          今天晚了,明天繼續(xù)。

          posted @ 2009-07-19 00:42 The Matrix 閱讀(1805) | 評(píng)論 (0)編輯 收藏

              最近在做一個(gè)很小的項(xiàng)目的功能改進(jìn),小小的項(xiàng)目中原來(lái)連接的是MySQL數(shù)據(jù)庫(kù),現(xiàn)在需要新連接一個(gè)數(shù)據(jù)庫(kù)(Oracle),僅僅從一張表查詢數(shù)據(jù)即可,沒(méi)有添加、修改、刪除等等功能。本來(lái)這個(gè)小小的項(xiàng)目中用的是Hibernate,現(xiàn)在又要增加一個(gè)數(shù)據(jù)庫(kù)連接,覺(jué)得配置起來(lái)有點(diǎn)麻煩,忽然想起來(lái),我干嗎還要用Hibernate呢,直接用JDBC不也挺好使么,想了便做,果然寫起JDBC來(lái),很是快捷,一會(huì)就搞好了。

              做好了以后,忽然覺(jué)得有點(diǎn)迷茫,感覺(jué)不用Hibernate不也挺好的么,咱為什么現(xiàn)在開(kāi)口閉口都是Hibernate呢,于是便有了今天的題目。

              很久以前沒(méi)有Hibernate的時(shí)候:

              第一階段:我們寫程序都是直接用JDBC,甚至在JSP頁(yè)面中直接去createConnection,然后執(zhí)行查詢,輸出到頁(yè)面。

              第二階段:后來(lái)覺(jué)得每次都是創(chuàng)建一個(gè)連接,好像效率不高,于是看了別人的介紹,要用數(shù)據(jù)庫(kù)連接池,好的,那便用數(shù)據(jù)庫(kù)連接池吧,每次都從pool中獲得一個(gè)Connection,然后查詢數(shù)據(jù)。

              第三階段:用了連接池,還是效率不高,那怎么辦呢?用緩存吧,自己實(shí)現(xiàn)緩存?可以,也可以用開(kāi)源的緩存框架。

              第四階段:到了OO大流行的時(shí)代了,一切都要OO,恰逢Hibernate降臨人世,于是一切都用Hibernate來(lái)實(shí)現(xiàn)了,其實(shí)同期還是有不少其它ORMAP框架的,比如(TOPLINK、JDO、IBatis等,IBatis國(guó)內(nèi)用的還比較多,另外兩個(gè)好像用的比較少)。

              第五階段:忽然EJB大流行,事務(wù)的概念被廣為傳播(并不是原來(lái)沒(méi)有事務(wù)的概念,只是實(shí)現(xiàn)起來(lái)比較麻煩),借助EJB的廣為傳播,Spring+Hibernate的組合也慢慢占據(jù)了大半市場(chǎng)。此時(shí)事務(wù)用Spring AOP的聲明式事務(wù)來(lái)解決,緩存可以用開(kāi)源的緩存框架(已經(jīng)和Hibernate無(wú)縫集成了),數(shù)據(jù)庫(kù)連接池也是通過(guò)配置的方式在SpringContext.xml文件中配置,貌似一切都很完美。

           

              真的到了第五階段,一切是不是真的完美了呢,如果一個(gè)很小的應(yīng)用,需要從好幾個(gè)數(shù)據(jù)庫(kù)查詢數(shù)據(jù),但是每個(gè)數(shù)據(jù)庫(kù)僅需要查詢那么一兩張表的數(shù)據(jù),偶爾添加、刪除幾條數(shù)據(jù),數(shù)據(jù)量也不大,此時(shí)我們是不是還用第一階段的方式會(huì)更好呢,好像有時(shí)配置多數(shù)據(jù)源也不是那么方便的事情。或者使用Spring中的JDBCTemplate,貌似也不錯(cuò)。

              再往后看,難道Spring+Hibernate的組合就天下無(wú)敵了么?難道就沒(méi)有新的框架了么?前段時(shí)間,JavaEye上關(guān)于充血模型、貧血模型的討論吸引了多少眼球,以后是不是會(huì)有這么一個(gè)框架用于實(shí)現(xiàn)充血模型呢?

             說(shuō)了這么多,最終只是想說(shuō)明白這么一句:用恰當(dāng)?shù)募夹g(shù)做恰當(dāng)?shù)氖虑椋@真是一個(gè)艱難的選擇……,至于未來(lái),更是迷茫,因?yàn)槲覀冎皇歉S者,而不是領(lǐng)導(dǎo)者。

          posted @ 2009-07-06 22:06 The Matrix| 編輯 收藏

          前兩天出差在外,利用空余時(shí)間將《深入淺出EXT JS》這本書(shū)的前五章翻了一遍,后面的章節(jié)粗粗瀏覽了一下,覺(jué)得這本書(shū)寫的不錯(cuò),寫下自己的一點(diǎn)感悟:

          1、適合的讀者

          a、是一名Java開(kāi)發(fā)程序員,做過(guò)WEB開(kāi)發(fā)

          b、對(duì)Ajax開(kāi)發(fā)的基礎(chǔ)知識(shí)有所了解

          2、書(shū)評(píng):

                  這本書(shū)我覺(jué)得應(yīng)該改成這個(gè)名字:《EXT JS CookBook》,可能使得書(shū)的內(nèi)容和名稱更貼切,呵呵。

                  書(shū)中對(duì)Ext JS的基礎(chǔ)類、Grid、Form、Tree、布局管理器、數(shù)據(jù)獲取等各方面都做了詳細(xì)的描述,基本上開(kāi)發(fā)中需要用到的知識(shí)點(diǎn),在書(shū)中都會(huì)提到,而且書(shū)中的很多例子和實(shí)際工作還是非常貼切的,對(duì)于工作中需要用到EXT JS或者需要學(xué)習(xí)EXT JS的程序員來(lái)說(shuō)還是會(huì)很有幫助的。

                  最后提點(diǎn)缺點(diǎn),這本書(shū)中對(duì)EXT JS的知識(shí)點(diǎn)都做了比較詳細(xì)的描述,但是缺乏對(duì)EXT JS的框架的深入分析。

          posted @ 2009-04-19 13:36 The Matrix 閱讀(2414) | 評(píng)論 (2)編輯 收藏

          前兩天在InfoQ上看到一篇文章:利用Clear Toolkit連接Flex與Java開(kāi)發(fā),今天下載了說(shuō)明文檔粗略了翻了一遍,Clear Toolkit包含五個(gè)部分,分別是:

          • Clear Data Builder,這是個(gè)Eclipse插件,可以根據(jù)SQL語(yǔ)句或Java數(shù)據(jù)傳輸對(duì)象為BlazeDS或LCDS自動(dòng)生成CRUD應(yīng)用。
          • DTO2Fx,該插件會(huì)根據(jù)Java類型自動(dòng)生成對(duì)應(yīng)的ActionScript類。
          • Log4Fx是個(gè)構(gòu)建于Flex logging API之上的Eclipse插件,它會(huì)自動(dòng)化日志處理并且更加靈活,也更加友好。
          • Fx2Ant插件會(huì)為Flex Builder項(xiàng)目生成優(yōu)化的Ant構(gòu)建腳本。
          • clear.swc是個(gè)增強(qiáng)的Flex組件庫(kù)。

          暫時(shí)用不到這個(gè)工具,記錄留待備查。

          posted @ 2009-04-12 20:57 The Matrix 閱讀(684) | 評(píng)論 (0)編輯 收藏

          這篇Blog是原來(lái)寫在別的地方的,今天將其轉(zhuǎn)到BlogJava上來(lái)。
          -------------------------------------------------------------------------------

          今天仔仔細(xì)細(xì)的看了一下Hibernate的緩存,并做了實(shí)例實(shí)踐了一把。google一下,網(wǎng)上的教程、文章很多。
          自己小結(jié)一下:

          Hibernate的緩存分為:

          • 一級(jí)緩存:在Session級(jí)別的,在Session關(guān)閉的時(shí)候,一級(jí)緩存就失效了。
          • 二級(jí)緩存:在SessionFactory級(jí)別的,它可以使用不同的緩存實(shí)現(xiàn),如EhCache、JBossCache、OsCache等。

          緩存的注釋寫法如下,加在Entity的java類上:

          • @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)

          緩存的方式有四種,分別為:

          • CacheConcurrencyStrategy.NONE
          • CacheConcurrencyStrategy.READ_ONLY,只讀模式,在此模式下,如果對(duì)數(shù)據(jù)進(jìn)行更新操作,會(huì)有異常;
          • CacheConcurrencyStrategy.READ_WRITE,讀寫模式在更新緩存的時(shí)候會(huì)把緩存里面的數(shù)據(jù)換成一個(gè)鎖,其它事務(wù)如果去取相應(yīng)的緩存數(shù)據(jù),發(fā)現(xiàn)被鎖了,直接就去數(shù)據(jù)庫(kù)查詢;
          • CacheConcurrencyStrategy.NONSTRICT_READ_WRITE,不嚴(yán)格的讀寫模式則不會(huì)的緩存數(shù)據(jù)加鎖;
          • CacheConcurrencyStrategy.TRANSACTIONAL,事務(wù)模式指緩存支持事務(wù),當(dāng)事務(wù)回滾時(shí),緩存也能回滾,只支持JTA環(huán)境。

          另外還有如下注意事項(xiàng):

          1、查詢緩存需要在Query的相應(yīng)方法執(zhí)行前加上這么一句:

          query.setCacheable(true);

          在使用Hibernate時(shí),獲得的query有setCacheable方法,可以設(shè)置使用緩存,但當(dāng)使用JPA時(shí),javax.persistence.Query并沒(méi)有setCacheable方法,此時(shí)如果JPA的實(shí)現(xiàn)是Hibernate時(shí),可以將其進(jìn)行如下轉(zhuǎn)化,再調(diào)用setCacheable方法(如果JPA的實(shí)現(xiàn)是其它ORMAP框架,就不知道怎么做了)。

          if (query instanceof org.hibernate.ejb.QueryImpl) {
              ((org.hibernate.ejb.QueryImpl) query).getHibernateQuery().setCacheable(
          true);
          }

          2、還有就是查詢緩存的查詢執(zhí)行后,會(huì)將查詢結(jié)果放入二級(jí)緩存中,但是放入的形式是以ID為Key,實(shí)例作為一個(gè)Value。

          3、hibernate的配置文件中需加入如下信息:

          <property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />
          <property name="hibernate.cache.use_second_level_cache" value="true" />
          <property name="hibernate.cache.use_query_cache" value="true" />


          posted @ 2009-04-07 22:54 The Matrix 閱讀(10145) | 評(píng)論 (3)編輯 收藏
               摘要:     前段時(shí)間對(duì)Spring的事務(wù)配置做了比較深入的研究,在此之間對(duì)Spring的事務(wù)配置雖說(shuō)也配置過(guò),但是一直沒(méi)有一個(gè)清楚的認(rèn)識(shí)。通過(guò)這次的學(xué)習(xí)發(fā)覺(jué)Spring的事務(wù)配置只要把思路理清,還是比較好掌握的。     總結(jié)如下:     Spring配置文件中關(guān)于事務(wù)配置總是由三個(gè)組成部分,分別是Data...  閱讀全文
          posted @ 2009-04-05 16:38 The Matrix 閱讀(332601) | 評(píng)論 (85)編輯 收藏

          今天在Javaeye的新聞?lì)l道看到一個(gè)界面原型繪制工具,叫做“wireframesketcher”,下載試了試,感覺(jué)有如下幾個(gè)好處:

          1、使用方便,可以很容易的做tree和table,比visio中的tree和table好用

          2、集成在eclipse中,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)用起來(lái)更直接

          3、其界面原型文件為xml格式,可以使用比較工具比較

          唯一的缺點(diǎn):

          不是免費(fèi)開(kāi)源的工具,但是現(xiàn)在可以申請(qǐng)免費(fèi)的license

           

          隨便畫了一個(gè)圖,如下:

          temp

           

          感興趣的兄弟姐妹們可以到如下地址看看:

          http://wireframesketcher.com/index.html

          posted @ 2009-03-28 21:55 The Matrix 閱讀(4608) | 評(píng)論 (1)編輯 收藏

          由于要寫一個(gè)Spring的培訓(xùn)教材,要做Spring的事務(wù)樣例,于是開(kāi)始寫樣例,寫好了一測(cè),控制臺(tái)有SQL輸出,數(shù)據(jù)庫(kù)卻查詢不到數(shù)據(jù),查亞查亞,花了一個(gè)多小時(shí),原來(lái)是獲取的Service不是經(jīng)過(guò)代理的Service,自然事務(wù)不起作用,數(shù)據(jù)庫(kù)里就沒(méi)有數(shù)據(jù)了,鄙視一下自己。

          配置文件樣例如下(已經(jīng)修改了dao和service的命名,減少了寫錯(cuò)的可能性,以后命名問(wèn)題一定要注意):

          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xmlns:context
          ="http://www.springframework.org/schema/context"
              xmlns:aop
          ="http://www.springframework.org/schema/aop"
              xmlns:tx
          ="http://www.springframework.org/schema/tx"
              xsi:schemaLocation
          ="http://www.springframework.org/schema/beans
                     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                     http://www.springframework.org/schema/context
                     http://www.springframework.org/schema/context/spring-context-2.5.xsd
                     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
                     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
          >

             
          <context:annotation-config />
             
          <context:component-scan base-package="com.*" />

             
          <bean id="sessionFactory" 
                      class
          ="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
                 
          <property name="configLocation" value="classpath:hibernate.cfg.xml" /> 
                 
          <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
             
          </bean> 

             
          <!-- 定義事務(wù)管理器(聲明式的事務(wù)) --> 
             
          <bean id="transactionManager"
                  class
          ="org.springframework.orm.hibernate3.HibernateTransactionManager">
                 
          <property name="sessionFactory" ref="sessionFactory" />
             
          </bean>
             
             
          <!-- 配置DAO -->
             
          <bean id="generatorDaoTarget" class="com.*.spring.dao.GeneratorDaoImpl">
                 
          <property name="sessionFactory" ref="sessionFactory" />
             
          </bean>
             
             
          <bean id="generatorDao" 
                  class
          ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> 
                 
          <!-- 配置事務(wù)管理器 --> 
                 
          <property name="transactionManager"><ref bean="transactionManager" /></property> 
                 
          <property name="target"><ref bean="generatorDaoTarget" /></property> 
                 
          <property name="proxyInterfaces"><value>com.*.spring.dao.GeneratorDao</value></property>
                 
          <!-- 配置事務(wù)屬性 --> 
                 
          <property name="transactionAttributes"> 
                     
          <props> 
                         
          <prop key="*">PROPAGATION_REQUIRED</prop>
                     
          </props> 
                 
          </property> 
             
          </bean> 

             
          <bean id="plantDaoTarget" class="com.*.spring.dao.PlantDaoImpl">
                 
          <property name="sessionFactory" ref="sessionFactory" />
             
          </bean>
             
             
          <bean id="plantDao" 
                  class
          ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> 
                    
          <!-- 配置事務(wù)管理器 --> 
                 
          <property name="transactionManager"><ref bean="transactionManager" /></property>    
                 
          <property name="target"><ref bean="plantDaoTarget" /></property> 
                 
          <property name="proxyInterfaces"><value>com.*.spring.dao.PlantDao</value></property>          
                 
          <!-- 配置事務(wù)屬性 --> 
                 
          <property name="transactionAttributes"> 
                     
          <props> 
                         
          <prop key="*">PROPAGATION_REQUIRED</prop>
                     
          </props> 
                 
          </property> 
             
          </bean>
             
             
          <!-- 配置Service -->
             
          <bean id="plantGeneratorServiceTarget" 
                  class
          ="com.*.spring.service.PlantGeneratorServiceImpl"> 
                 
          <property name="plantDao"> 
                     
          <ref bean="plantDao" /> 
                 
          </property> 
                 
          <property name="generatorDao"> 
                     
          <ref bean="generatorDao" /> 
                 
          </property> 
             
          </bean>       
             
             
          <bean id="plantGeneratorService" 
                  class
          ="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> 
                    
          <!-- 配置事務(wù)管理器 --> 
                    
          <property name="transactionManager"><ref bean="transactionManager" /></property>    
                 
          <property name="target"><ref bean="plantGeneratorServiceTarget" /></property> 
                 
          <property name="proxyInterfaces"><value>com.*.spring.service.PlantGeneratorService</value></property>
                 
          <!-- 配置事務(wù)屬性 --> 
                 
          <property name="transactionAttributes"> 
                     
          <props> 
                         
          <prop key="*">PROPAGATION_REQUIRED</prop> 
                     
          </props> 
                 
          </property> 
             
          </bean> 
          </beans>
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
          >

          <hibernate-configuration>

          <session-factory>

             
          <!-- 各屬性的配置-->
             
          <!-- 為true表示將Hibernate發(fā)送給數(shù)據(jù)庫(kù)的sql顯示出來(lái) -->
             
          <property name="hibernate.show_sql">true</property>
             
          <property name="hibernate.hbm2ddl.auto">none</property> 

             
          <!-- SQL方言,這邊設(shè)定的是MySQL -->
             
          <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
             
          <!--連接數(shù)據(jù)庫(kù)的Driver-->
             
          <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
             
          <!--數(shù)據(jù)庫(kù)連接url-->
             
          <property name="connection.url">jdbc:mysql://localhost:3306/test</property>

             
          <!--用戶名-->
             
          <property name="connection.username">root</property>
             
          <!--密碼-->
             
          <property name="connection.password">123456</property>

             
          <!-- 映射文件  -->
             
          <mapping class="com.*.spring.domain.Generator" />
             
          <mapping class="com.*.spring.domain.Plant" />
          </session-factory>
          </hibernate-configuration>
          public interface GeneratorDao {

             
          /**
               * 獲取所有機(jī)組數(shù)據(jù)
               *
          @return
              
          */
             
          public List<Generator> listGenerators();
             
             
          /**
               * 保存機(jī)組數(shù)據(jù)
               *
          @param generator 機(jī)組數(shù)據(jù)
              
          */
             
          public void save(Generator generator);   
          }
          public class GeneratorDaoImpl extends HibernateDaoSupport implements GeneratorDao {
                
              @SuppressWarnings(
          "unchecked")
             
          public List<Generator> listGenerators() {
                 
          return this.getSession().createQuery("from Generator").list();
              }

             
          public void save(Generator generator) {
                 
          this.getSession().save(generator);   
              }
          }
          posted @ 2009-03-16 22:24 The Matrix 閱讀(1553) | 評(píng)論 (0)編輯 收藏

              給自己做的這個(gè)程序起了個(gè)名字叫EasyWork,代碼可以從Google Code上下載,具體地址如下:

            http://easywork.googlecode.com/svn/trunk/

            由于時(shí)間關(guān)系,這個(gè)程序還存在不少問(wèn)題,所以只能供大家參考,有問(wèn)題不要罵我就行了:)

            簡(jiǎn)要使用說(shuō)明:

            1、開(kāi)發(fā)環(huán)境+運(yùn)行環(huán)境:MyEclipse6.0,JDK1.5,Tomcat6.0.14,MySQL5.0

            2、準(zhǔn)備好上述環(huán)境后,使用下載代碼sql目錄中的easywork_init.sql腳本創(chuàng)建數(shù)據(jù)庫(kù)表和初始數(shù)據(jù)。

            3、將項(xiàng)目導(dǎo)入Eclipse后,運(yùn)行Tomcat(此過(guò)程就不詳細(xì)描述了)。

            4、使用http://localhost/easywork/system/login.jsp訪問(wèn)登錄頁(yè)面,目前還沒(méi)有做index.html,默認(rèn)用戶名/密碼:admin/1。

           

            存在問(wèn)題如下:

            1、任務(wù)管理功能還沒(méi)有完全完成,日志記錄還沒(méi)有做。

            2、超時(shí)或者沒(méi)有登錄訪問(wèn)頁(yè)面時(shí),只是報(bào)不能訪問(wèn)的異常,沒(méi)有轉(zhuǎn)入登錄頁(yè)面。

            3、對(duì)資源類型(菜單、URL、字段、操作)的訪問(wèn)限制還沒(méi)有做。

            4、很多界面的輸入信息校驗(yàn)沒(méi)有做。

            5、基本沒(méi)有美工。

            6、總而言之,目前這個(gè)項(xiàng)目中的代碼只能做Struts2 + ExtJS如何使用的借鑒:)

          posted @ 2009-03-01 11:03 The Matrix 閱讀(6299) | 評(píng)論 (28)編輯 收藏

              很近沒(méi)有更新BLog了,這一陣子忙著學(xué)習(xí)Struts2和ExtJS,使用這兩者做了一個(gè)小程序,使用RBAC實(shí)現(xiàn)了基本的權(quán)限管理功能,還做了一個(gè)任務(wù)管理和日志記錄,任務(wù)管理用于記錄當(dāng)前需要處理的事情,日志記錄用于記錄每天的工作情況。

              用下來(lái)Struts2和ExtJS還是挺好用的。先貼幾張圖,后續(xù)再把學(xué)習(xí)過(guò)程中遇到的問(wèn)題整理出來(lái)。

          任務(wù)管理

          task

          添加組

          addgroup

          添加權(quán)限

          addprivilege

          添加角色

           addrole

          posted @ 2009-02-26 07:14 The Matrix 閱讀(4351) | 評(píng)論 (15)編輯 收藏
          主站蜘蛛池模板: 南华县| 长顺县| 扶绥县| 隆尧县| 滦平县| 陕西省| 克什克腾旗| 房产| 罗定市| 泾阳县| 永和县| 石城县| 武城县| 察雅县| 新宾| 榆中县| 石泉县| 叙永县| 靖西县| 商河县| 虹口区| 南靖县| 额济纳旗| 新乡县| 柳河县| 定西市| 巫山县| 延庆县| 和平县| 讷河市| 望谟县| 宁国市| 平南县| 永济市| 樟树市| 银川市| 新河县| 大安市| 桐庐县| 屏山县| 江安县|