每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
          最近關心的內容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks

          #

          1.svn 命令簡要HOWTO



          摘要:
          1. svnadmin create myProject
          2. svnadmin dump /path/to/svnroot > /backup/svnBackup_20060101.dumpfile
          3. svnadmin load /path/to/svnroot < /backup/svnBackup_20060101.dumpfile
          4. svnserve -d -r /path/to/svnroot
          apache的配置不順利,總是提示打開密碼文件失敗,下次再試下吧
          subversion.conf配置
          # Needed to do Subversion Apache server.
          LoadModule dav_svn_module     modules/mod_dav_svn.so

          # Only Needed if you decide to do "per-directory" access control.
          LoadModule authz_svn_module   modules/mod_authz_svn.so

          #
          # Example location directive.
          #
          <Location /svn>
             DAV svn
           #  SVNParentPath /var/svn
             SVNPath /var/svn/projects
             AuthType Basic
             AuthUserFile /var/svn/myPass
             AuthName "Authorization Realm"
             Require valid-user
          #   AuthzSVNAccessFile /var/svn/authz
          #
          #   # Limit write permission to list of valid users.
          #   
          <LimitExcept GET PROPFIND OPTIONS REPORT>
          #      # Require SSL connection for password protection.
          #      # SSLRequireSSL
          #
          #      AuthType Basic
          #      AuthName "Authorization Realm"
          #      AuthUserFile /usr/svn/projects/conf/passwd
          #      Require valid-user
          #   
          </LimitExcept>
          </Location>


          2.SubVersion定期完整備份腳本(Linux)

          #!/bin/sh
          #
          # subversion data backup script
          # by scud http://www.jscud.com
          # 2005-11-27
          #
          # subversion完整備份的腳本,調整好后使用crontab -e 放到自動執行里面即可.
          #
          #備份日志文件
          LogFile=/backup/svn/svnbak.log

          DATE=`date +%Y%m%d`

          #備份目錄
          BakDir=/backup/svn/data

          #日常備份目錄,如果有
          DailyDir=/backup/svn/daily

          #要備份的項目列表文件,只有項目名
          ProjectLst=/backup/svn/project.lst

          #所有項目都保存在這個目錄下
          SvnDir=/var/svn

          #svnadmin程序的路徑
          SVNADMIN=/usr/bin/svnadmin

          echo " " >> $LogFile
          echo " " >> $LogFile
          echo "-------------------------------------------" >> $LogFile
          echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
          echo "--------------------------" >> $LogFile

          cd $BakDir

          #讀取項目列表
          PROJECTLIST=`cat $ProjectLst`


          for project in  $PROJECTLIST
          do
              projectdata=$SvnDir/$project
              destdir=$BakDir/$project
              dumpfile=$DATE.$project.tgz
             
             
              if [ -f $BakDir/$dumpfile ]
              then
                  echo "backup file have exist!" >>$LogFile
              else

               $SVNADMIN hotcopy $projectdata $destdir --clean-logs

               tar czvf $dumpfile $destdir >/dev/null
             
               rm -fr $project
           
           echo "backup $project done into $dumpfile ">>$LogFile

              fi
             
              ## delete old tgz 此處根據crontab的時間調整,例如一周一次備份,此處保留了5份備份,以前的刪除
              oldfile="$BakDir/"$(date +%y%m%d --date=’28 days ago’).$project.tgz
           
           if [ -f $oldfile ]  
           then  
             rm -f $oldfile >> $LogFile 2>&1  
             echo "[$oldfile]Delete Old File Success!" >> $LogFile  
           else  
             echo "[$oldfile]No Old Backup File!" >> $LogFile  
           fi
             
          done


          #delete previous daily backup files
          cd $DailyDir
          rm -f *

          3.subversion鎖定解除、升級、備份與恢復



          posted @ 2006-02-20 00:12 Alex 閱讀(692) | 評論 (0)編輯 收藏

          vsftp配置詳解

          好些東西曾經做過了但是過了一段時間就忘記了,原來vsftpd配置很熟悉,現在要用的時候照樣得找,哎,悲哀哦,看來還是那句話,好記性不如爛筆頭啊.
          posted @ 2006-02-19 23:17 Alex 閱讀(394) | 評論 (0)編輯 收藏

          1.采用Ant進行診斷測試

          ant越來越方便了,可以幫我們做很多重復性的工作,對于我來說目前有幾點是比較方便的,
          首先脫離了IDE的限制,不同的IDE同時工作沒問題,其次,自動打包發布,不用再鼠標點來點去的.
          最后,ant的一些其他功能也很好,比如上面所說的診斷測試,另外還有每日構建,checkstyle等等.是不是很有用?
          2.Macromedia Flex跟Java的集成
          key word: RIA,富客戶端
          富客戶端定將是一個趨勢,技術總是這樣發展,發展了A技術后發展了一個B技術,最終會在A和B之間有一個權衡,CS/BS也是如此,以后也許應該叫DS了吧?  :)
          3.session詳解
          key word : session與cookie,無狀態,有狀態,會話
          摘要:

          posted @ 2006-02-18 12:15 Alex 閱讀(286) | 評論 (0)編輯 收藏

               摘要: 到網上搜索了半天都說什么要在hbm.xml文件里寫什么implements equals,但是心想如果都在這個里面手工寫那還有什么方便之處啊.原因終于找到,原來是高版本不行,我用的是2.1.2,而2.0.2則沒問題,確切的說把hibernate-tools.jar換為2.0.2的即可附配置說明:不需要記復雜的命令,只要一次配置好Middlegen-Hibernate-r5目錄下的build.xml...  閱讀全文
          posted @ 2006-02-17 22:56 Alex 閱讀(1245) | 評論 (0)編輯 收藏

          剛才看了下<精通hibernate>,感覺關于映射關系,尤其是一對多,多對一,多對多關系應該是核心的東西,記錄下.

          業務邏輯:一個客戶(Customer)對應多個訂單(Order)

          方式一: 雙向一對多

          PO:
          Customer:


          Order:

          配置文件

          Customer.hbm.xml:
          xml

          Order.hbm.xml:
          xml

          測試類 CustomerTest.java
          package net.foxlog.prj.business;

          import net.sf.hibernate.Session;
          import net.foxlog.prj.dao.DBUtil;
          import net.sf.hibernate.Transaction;
          import java.util.HashSet;

          public class CustomerTest {
            
          public CustomerTest() {
            }
            
          public static void test(){
              
          try{
                
          new CustomerTest().saveCustomerAndOrderWithCascade();
              }
          catch(Exception ex){
                ex.printStackTrace();
              }
            }
            
            
          //保存級聯信息 客戶-訂單
            public void saveCustomerAndOrderWithCascade() throws Exception{
              Session session 
          = DBUtil.currentSession();
              Transaction tx 
          = null;
              
          try{
                tx 
          = session.beginTransaction();
                Customer custmer 
          = new Customer("Jack",new HashSet());
                Order order 
          = new Order();
                order.setCustomer(custmer);
                order.setOrderNumber(
          "JackOrder001");
                custmer.getOrders().add(order);
                session.save(custmer);
                tx.commit();
                
              }
          catch(Exception ex){
                
              }
            }
          }



          方式二: 單項多對一

          即在Cutomer中沒有Order的信息(PO和xml文件),在Order中設置Customer信息(同上)
          保存客戶和訂單信息代碼如下:

          tx = session.beginTransaction();

                Customer customer
          =new Customer("Jack");
                Order order1
          =new Order("Jack_Order001",customer);
                Order order2
          =new Order("Jack_Order002",customer);

                session.save(order1);
                session.save(order2);

                tx.commit();

          方法二很少用,不過有時我倒是喜歡用它,因為存儲完全由自己的業務邏輯控制,也是比較方便的,以前的一個項目就是這么用,表之間的關系基本沒有,相關聯的信息完全自己當作一個個獨立的表進行插入
          posted @ 2006-02-17 21:20 Alex 閱讀(3091) | 評論 (3)編輯 收藏

               這幾天弄log4j和hibernate的時候都碰到可編程的配置方式這個概念,一時都轉不過彎來.
          在log4j的配置種,如果提供了log4j.properties文件并且放在了上下文類路徑中,則不用在程序中寫任何配置,直接用logger即可,相反,如果沒有提供log4j.properties文件也是可以的,怎么辦呢?就是用所謂的可編程的配置方式,比如如下代碼就是在沒有配置文件的時候實現log4j的編程配置:


          BasicConfigurator.configure ();//自動快速地使用缺省Log4j環境。
          //PropertyConfigurator.configure ( String configFilename) :讀取使用Java的特性文件編寫的配置文件。
          //DOMConfigurator.configure ( String filename ) :讀取XML形式的配置文件。

          hibernate中的可編程配置方式和上面有點不同,hibernate在用hibernate.properties文件的時候可以用編程方式實現加載實體域配置文件(.hbm.xml),代碼如下:
          Configuration cfg = new Configuration()
          .addFile(
          "Vertex.hbm.xml")
          .addFile(
          "Edge.hbm.xml");

          如果有hibernate.cfg.xml配置文件的話就不用上面的所謂編程配置方式了,hibernate會幫助我們自動加載和配置,代碼如下:
                 try
                 {
                      sessionFactory 
          = new Configuration().configure().
                          buildSessionFactory();
                  }
                  
          catch (HibernateException ex)
                  {
                      
          throw new RuntimeException("Exception building SessionFactory: " +
                                                 ex.getMessage(), ex);
                  }

          posted @ 2006-02-17 11:37 Alex 閱讀(377) | 評論 (0)編輯 收藏

          log4j配置,原來以為需要程序種寫config,實際上不用,只要提供配置文件放到classpath下即可,示例配置如下:
          ### direct log messages to stdout ###
          log4j.appender.stdout
          =org.apache.log4j.ConsoleAppender
          log4j.appender.stdout.Target
          =System.out
          log4j.appender.stdout.layout
          =org.apache.log4j.PatternLayout
          log4j.appender.stdout.layout.ConversionPattern
          =%d{ABSOLUTE} %5p %c{1}:%L - %m%n

          ### direct messages to file hibernate.log ###
          log4j.appender.file
          =org.apache.log4j.FileAppender
          log4j.appender.file.File
          =hibernate.log
          log4j.appender.file.layout
          =org.apache.log4j.PatternLayout
          log4j.appender.file.layout.ConversionPattern
          =%d{ABSOLUTE} %5p %c{1}:%L - %m%n

          ### set log levels - for more verbose logging change 'info' to 'debug' ###

          log4j.rootLogger
          =info,stdout,file

          log4j.logger.net.sf.hibernate
          =info

          ### log just the SQL
          #log4j.logger.net.sf.hibernate.SQL
          =debug

          ### log JDBC bind parameters ###
          log4j.logger.net.sf.hibernate.type
          =info

          ### log schema export/update ###
          log4j.logger.net.sf.hibernate.tool.hbm2ddl
          =debug

          ### log cache activity ###
          #log4j.logger.net.sf.hibernate.cache
          =debug

          ### enable the following line if you want to track down connection ###
          ### leakages when using DriverManagerConnectionProvider ###
          #log4j.logger.net.sf.hibernate.connection.DriverManagerConnectionProvider
          =trace


          posted @ 2006-02-16 15:42 Alex 閱讀(1155) | 評論 (0)編輯 收藏

          想寫blog可是總是不能堅持,哎,堅持就這么難么?
          真是的,好多事情我們能想到可未必能做到,能做到了也未必能堅持到最后,現代生活怎么到處都有這種浮躁的感受呢,從今天開始,堅持寫blog,呵呵,希望能有所收獲.

          近期計劃:

          1. hibernate,
          2. spring[appfuse,springside,AtLeap]
          3. web[html,beautify,Ajax]
          4. automation[ant,CruiseControl,Mantis,testDriven]
          5. framework[struts,webwork]
          6. database[mysql,sqlserver,Oracle]
          7. design pattern[tools]
          8. swing
          9. app[Forum,PetStore,rss app<blog etc.>,etc.]
          想找一些獲獎的值得推薦的圖書,一時居然找不上來,呵呵,看來是過分以來google了.



          posted @ 2006-02-16 14:27 Alex 閱讀(213) | 評論 (0)編輯 收藏

          blog其實很久了,也試用過很多的blog,csdn,donews,甚至想用過msn的space,都有一種說不出的舒服,一直想找一個咱們java開發的聯盟,恩,今天終于找到了,就像博客堂那樣,大家做一個專題的討論,真的不錯。希望和大家一起交流,共同進步。

          posted @ 2005-08-26 11:01 Alex 閱讀(168) | 評論 (0)編輯 收藏

          僅列出標題
          共15頁: First 上一頁 7 8 9 10 11 12 13 14 15 
          主站蜘蛛池模板: 望城县| 临城县| 东乌珠穆沁旗| 灵丘县| 阆中市| 安义县| 苗栗县| 汝阳县| 健康| 通海县| 瑞金市| 天津市| 伊川县| 麻栗坡县| 秦皇岛市| 泸溪县| 民乐县| 芜湖县| 福安市| 长阳| 嘉义县| 宜兰县| 勐海县| 山阳县| 鲁甸县| 榕江县| 重庆市| 弥渡县| 汝州市| 娄烦县| 井研县| 南昌市| 阿克苏市| 西平县| 太谷县| 红安县| 萨嘎县| 睢宁县| 谷城县| 西乌珠穆沁旗| 兴仁县|