每日一得

不求多得,只求一得 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 阅读(686) | 评论 (0)编辑 收藏

vsftp配置详解

好些东西曾经做过了但是过了一段时间就忘记了,原来vsftpd配置很熟悉,现在要用的时候照样得找,哎,悲哀哦,看来还是那句话,好记性不如烂笔头啊.
posted @ 2006-02-19 23:17 Alex 阅读(385) | 评论 (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 阅读(283) | 评论 (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 阅读(1241) | 评论 (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 阅读(3086) | 评论 (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 阅读(373) | 评论 (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 阅读(1151) | 评论 (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 阅读(210) | 评论 (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