??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲无av在线中文字幕,亚洲人成网站在线观看播放青青,亚洲丁香婷婷综合久久http://www.tkk7.com/wangxq/共同努力,共造辉?zh-cnSun, 11 May 2025 05:53:30 GMTSun, 11 May 2025 05:53:30 GMT60命o模式学习W记http://www.tkk7.com/wangxq/archive/2008/05/05/198311.html扭{乑֝扭{乑֝Mon, 05 May 2008 01:28:00 GMThttp://www.tkk7.com/wangxq/archive/2008/05/05/198311.htmlhttp://www.tkk7.com/wangxq/comments/198311.htmlhttp://www.tkk7.com/wangxq/archive/2008/05/05/198311.html#Feedback1http://www.tkk7.com/wangxq/comments/commentRss/198311.htmlhttp://www.tkk7.com/wangxq/services/trackbacks/198311.html 优点Q解耦了发送者和接受者之间联pR?发送者调用一个操作,接受者接受请求执行相应的动作Q因Z用Command模式解耦,发送者无需知道接受者Q何接口?br /> 1. 单的命o模式
命o接口Q?br />
public interface Command {
    
public void execute();
}

关闭灯命令:
public class LightOffCommand implements Command {
 Light light;
 
 
public LightOffCommand(Light light) {
  
this.light = light;
 }

 
 
public void execute() {
  light.off();
 }

}

打开灯命令:
public class LightOnCommand implements Command {
    Light light;
  
    
public LightOnCommand(Light light) {
        
this.light = light;
    }

 
    
public void execute() {
        light.on();
    }

}

灯:
public class Light {

    
public Light() {
    }


    
public void on() {
        System.out.println(
"Light is on");
    }


    
public void off() {
        System.out.println(
"Light is off");
    }

}
命o调用者:
public class SimpleRemoteControl {
    Command slot;
 
    
public SimpleRemoteControl() {}
 
    
public void setCommand(Command command) {
        slot 
= command;
    }

 
    
public void buttonWasPressed() {
        slot.execute();
    }

}
试c:
public class RemoteControlTest {
 
public static void main(String[] args) {
  SimpleRemoteControl remote 
= new SimpleRemoteControl();
  Light light 
= new Light();
  LightOnCommand lightOn 
= new LightOnCommand(light);

  remote.setCommand(lightOn);
  remote.buttonWasPressed();
    }

}
命o模式得特点:
1?分布登记l一执行Q?br /> 在作E序Ӟl常到一些需求,先注册一些操作,q不马上执行Q等最l确定后l一执行。如一个具体的例子:用户定制自己的报表,可以订阅|柱,折线Q曲U图Q客户选择相应的报表组合,q样对应一个命令集合,在没定之前用户可以增删q些报表Q命令)Q等最l确定统一交给调用者根据命令执行,生成l合报表。实C命o分布提出Q确定后l一执行的功能?br />
2》Ş如流水线操作Q还是出书的例子
//先是一本空白的书:
Book book = new Book();
//扑և个作?br /> Author author1 Q?new Author();
Author author2 Q?new Author();
//把写1Q?章的名类分别l这两个作?br /> Command writeCommand = new Write1Command (author1Qbook);
Command writeCommand = new Write2Command (author2Qbook);
List commands Q?new List ();
Commands.add(writeCommand);
//调用?br /> Invoker invoker = new invoker();
Invoker.setCommands(commands);
//水写书
invoker.action()
实际上在acitonq一Ҏ中,invoker按照命oQ让两个作者流水写作这本书。(cM一个书的流水线加工工厂Q?br /> q样我们的书p水加工成功Q当然这本书只有两章Q?br />
q样q了我们一U系l设计的框架Q?br /> 模型Q工P命o
客户端生命令,命o调用工具操作模型?br /> Book 相当于模?br /> Author 相当于和多工L中的一?br /> Command 命o

3》系l需要支持命令的撤消(undo)。提供redo()Ҏ【容易扩展?br /> 我们可以和容易的加入undo和redoQ这个不隄?br />
4》在Invoker中我们可以实现跟t,和日志?br />
5》当pȝ需要ؓ某项复制增加形的功能的时候,命o模式使新的功能(表现ZU命令)很容易地被加入到服务U里?br /> 命o联系了工Lx行类和系l逻辑Q?br />
?变化的命令模式:
命o模式的角色比较多Q在实际应用U我们可以根据所需要的功能和不需要的功能加以化?br />
1》去?调用?br /> 产生命o集合后,我们可以直接在client中P代执行执行操?br /> 2?变化 调用?成ؓ 跟踪?br /> //调用?br /> public class Invoker{
List commands; //已经执行完毕的命令集?br /> public void addCommand (Command command,int i){
commands.add(i,command);
}
public void action(Command command){
//执行操作
command. execute();
//
commands.add(command);
}
}
……………
//q可以有丰富的redo和undo操作Q?当然一些都l基于命令类提供的相应方?
}
q样q个cd记录了所有执行过的操作?br />
3》去?命o 用map替代
我们完全可以用map代替命oQ这h需定义各种命oc?br /> 我们改进例子
Author author Q?new Author();
Publisher publisher Q?new Publisher ();
Map m = new HashMap;
m.put(author, write);
m.put(author, publisherBook);
在Invoker的actionҎQ?br /> 得代map
q用java反射来调用方法;

4》去掉执行者:
直接在命令中QexecuteҎU)加业务逻辑。这样只适合于简单的的pȝ.

其他要说的内?br /> 1?某些参Cl某个方发的方式很多Q除了当作方法的参数外还可以当作cȝ成员便俩变量传入Q?br /> q就为命令的抽象带来了极大的方便
abstract class Command
{
abstract public void execute();
}
当我们已l有了执行者(cTestQ方法executeQargs1Qargs2 ….argsnQ?br /> 我们不必向Command加入executeQargs1Qargs2 ….argsnQ抽象方法,在说即加了Q在我们q代的时候也无法判断或十分不Ҏ判断哪个命o调用哪个executeҎ?br /> 那么我们可以q样
class ConcreteCommand : Command
{
Test test;
args1
args2
…..
argsn
public override void Execute()
{
test. execute (args1Qargs2 ….argsn);
}
}
2?在想跟踪操作的时候,一般ؓ每一个操作对象分配一个调用者,操作对象在调用者中讄。(可以抽象Z个ȝ调用者,来协调调用每一个具体的调用者)
3?命o的抽象粒度我觉得是要注意的?br /> 4?理解思想Q不要机械的照搬。消化成自己的,加以灉|的运用和创造在是根本出路?br /> 所谓命令模式的Ҏ思想是?先Ş成命令,在根据命令执行?br />
参考:http://blog.csdn.net/baggio785/archive/2006/05/23/750513.aspx


扭{乑֝ 2008-05-05 09:28 发表评论
]]>
工厂模式学习W记http://www.tkk7.com/wangxq/archive/2008/05/04/198064.html扭{乑֝扭{乑֝Sun, 04 May 2008 06:13:00 GMThttp://www.tkk7.com/wangxq/archive/2008/05/04/198064.htmlhttp://www.tkk7.com/wangxq/comments/198064.htmlhttp://www.tkk7.com/wangxq/archive/2008/05/04/198064.html#Feedback0http://www.tkk7.com/wangxq/comments/commentRss/198064.htmlhttp://www.tkk7.com/wangxq/services/trackbacks/198064.html1. 单工厂模式又U静态工厂方法模式。从命名上就可以看出q个模式一定很单。它存在的目的很单:定义一个用于创建对象的接口?/font>

1.public class CarFactory{        
       public static Car getCar(int type){
           if(type == 1){
                  return new Car1();
             
} else {
              return new Car2();
           }
       }
}

2. public class CarFactory{
        public static Car getCar(String carClass){
            String className = carClass;
            
Class c = Class.forName(className);
            
Car car = (Car)c.newInstance();
             return car;
        }
}

3. public class CarFactory{
        public static Car getCar(String carJNDIName){         
            InitialContext ic = new InitialContext();
            
String className = ic.lookUp(carJNDIName);
           
Car car = (Car)Class.forName(className).newInstance();
            return car;
        }
}
方式1?适合于工厂所产生的对象都是属于同一个父cd的,而从方式1?来看Q方?无疑是最单的Q也是最Ҏ理解和接受的Q而方?和方?则相Ҏ说要高一炏V高U在哪里呢?我们可以看到Q方?中对对象的创建是使用Hardcode的Ş式,也即是程序员需要事先知道系l里面存在多个cd的对象及其对应的~号Q一旦增加或删除、修改了对象的类型,则必然引起if-else块的改变Q造成了维护的困难?br />
而方?则采用了动态类加蝲的方式,方式3在方?的基上用了JNDIQ更q了一步,其好处是不用出现HardCode的方式,即便你后面的应用增加、删除了对象的类型,我的E序q是保持现在的样子,跟进一步来_可以L那些讨厌的if-else语句?br /> 2. 工厂Ҏ模式L了简单工厂模式中工厂Ҏ的静态属性,使得它可以被子类l承。这样在单工厂模式里集中在工厂方法上的压力可以由工厂Ҏ模式里不同的工厂子类来分担。?font style="background-color: #c7edcc">实质上它是让工厂实现了抽象的工厂接口Q它把具体怎么生一U东西,攑֜具体的工厂去实现了,所?#8221;延迟到子cM实现“
?/span>
CZ一Q?br /> public interface Driver{
       public Car driverCar();
}
public class BenzDriver implements Driver{
       public Car driverCar(){
              return new Benz();
       }
}
public class BmwDriver implements Driver{
       public Car driverCar()   {

return new Bmw();
       }
}

// 应该和具体品Ş成对应关p?/span> ...
//
有请暴发户先?/span>

 public class Magnate

{

              public static void main(String[] args)

              {

                     try{ 
                            Driver driver = new BenzDriver();

                            Car car = driver.driverCar();

                            car.drive();

                     }

       ……

}
CZ二:

public interface Creator
{
  public Prouct factory();
}

public SubCreator1 implent Creator
{
   public Prouct factory()
  {
   return new ConcreteProduct1();
   }
}

public SubCreator2 implent Creator
{
   public Prouct factory()
  {
    return new ConcreteProduct2();
   }
}

h意:q回cd是Product型的Q!
q样客户端调用是直接new 一个具体工厂的实例Q然后命令它ȝ产,而对于具体工厂的父类Q既工厂接口Q接口完全可以改成子cȝ承父cL实现Q只是这样不好,不符合OO的原则)Q它完全不知道什么品被生了,甚至它连那个具体工厂被实例化它都不知道!

3. 抽象工厂
public abstract class AbstractFactory{
        public abstract Car getCar(String carClass);
       
public abstract Plane getPlane(String planeClass);
}

public class Factory1 extends AbstractFactory{
      public Car getCar(String carClass){
          // 参考上面的方式1?
          return car1;
      }

      public Plane getPlane(String planeClass){
          // 参考上面的方式1?
          return plane1;
      }
}

public class Factory2 extends AbstractFactory{
     public Car getCar(String carClass){
          // 参考上面的方式1?
          return car2;
     }

     public Plane getPlane(String planeClass){
          // 参考上面的方式1?
          return plane2;
     }
}

方式4是最为复杂而且也是最为强大的一U,它在实现了对象工厂抽象的基础上,又集成了工厂Ҏ。C同的工厂可以生相同cd的品,但品的子类可能有所不同?/span>像上面的工?和工?都可以生产汽车和飞机一P他们各自之间可以生不同pd的?抽象工厂)Q而且每个pd下面可能有不同的型号(工厂Ҏ)?br />
参考资料:http://www.tkk7.com/pengpenglin/archive/2008/01/02/172325.html
http://www.tkk7.com/killme2008/archive/2007/03/15/104031.html
http://www.tkk7.com/alex/archive/2006/08/29/66479.html

扭{乑֝ 2008-05-04 14:13 发表评论
]]>
单实例模式学习笔?/title><link>http://www.tkk7.com/wangxq/archive/2008/05/04/197967.html</link><dc:creator>扭{乑֝</dc:creator><author>扭{乑֝</author><pubDate>Sun, 04 May 2008 00:38:00 GMT</pubDate><guid>http://www.tkk7.com/wangxq/archive/2008/05/04/197967.html</guid><wfw:comment>http://www.tkk7.com/wangxq/comments/197967.html</wfw:comment><comments>http://www.tkk7.com/wangxq/archive/2008/05/04/197967.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wangxq/comments/commentRss/197967.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wangxq/services/trackbacks/197967.html</trackback:ping><description><![CDATA[<p><br /> 1. l典的单实例模式例子Q非U程安全Q:<br /> <font style="background-color: #c7edcc">public class Singleton {<br />     private static Singleton uniqueInstance;<br />  <br />     // other useful instance variables here<br />  <br />     private Singleton() {}<br />  <br />     public static Singleton getInstance() {<br />         if (uniqueInstance == null) {<br />         uniqueInstance = new Singleton();<br />      }<br />          return uniqueInstance;<br />     }<br />  <br />     // other useful methods here<br /> }<br /> 本例是最l典的单实例模式例子Q但是在多线E的情况下就会生多个实例!<br /> </font></p> 2. U程安全的例子:<br /> <font style="background-color: #c7edcc">public class Singleton {<br />  private static Singleton uniqueInstance;<br />  <br />  // other useful instance variables here<br />  <br />  private Singleton() {}<br />  <br />  public static synchronized Singleton getInstance() {<br />   if (uniqueInstance == null) {<br />    uniqueInstance = new Singleton();<br />   }<br />   return uniqueInstance;<br />  }<br />  <br />  // other useful methods here<br /> }<br /> </font>增加synchronizedQ会让该Ҏ是线E安全的Q但是会引v每个U程在调用该Ҏ时的{待Q如果getInstance的性能对应用程序不是很关键Q记住,同步Ҏ可能会getInstanceҎ得运行效率降?00倍)Q本Ҏ是最好得ҎQ?br /> 3. 提前实例化,不适用延迟实例化(使用于创建和q行时负担不太繁重或者应用程序L创徏q用单件实例)Q它是线E安全得Q?br /> <font style="background-color: #c7edcc">public class Singleton {<br />     private static Singleton uniqueInstance = new Singleton();<br /> <br />     // other useful instance variables here<br />  <br />     private Singleton() {}<br />  <br />     public static Singleton getInstance() {<br />             return uniqueInstance;<br />     }<br />  <br />     // other useful methods here<br /> }<br /> 采用q种ҎQ我们依赖JVM在加载这个类时候马上创建此唯一实例QJVM保证在Q何线E访问它之前Q一定先创徏?<br /> </font>4. 在java1.5及以后的版本Q增加了volatile关键字,可以采用双重查加锁!<br /> <font style="background-color: #c7edcc">public class Singleton {<br />  private <span style="color: red">volatile </span>static Singleton uniqueInstance;<br />  <br />  private Singleton() {}<br />  <br />  public static Singleton getInstance() {<br />   if (uniqueInstance == null) {<br />    synchronized (Singleton.class) {<br />     if (uniqueInstance == null) {<br />      uniqueInstance = new Singleton();<br />     }<br />    }<br />   }<br />   return uniqueInstance;<br />  }<br /> }<br /> <span style="color: red">volatile关键字确保:当unigueInstance变量在被初始化成实例Ӟ多个U程能够正确的处理它Q(对于x性能的程序,q种做法可以大大减少时耗)<br /> </span><br /> </font><br /> <br /> <img src ="http://www.tkk7.com/wangxq/aggbug/197967.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wangxq/" target="_blank">扭{乑֝</a> 2008-05-04 08:38 <a href="http://www.tkk7.com/wangxq/archive/2008/05/04/197967.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单的oracle备䆾恢复批处理文?/title><link>http://www.tkk7.com/wangxq/archive/2007/01/26/96113.html</link><dc:creator>扭{乑֝</dc:creator><author>扭{乑֝</author><pubDate>Fri, 26 Jan 2007 03:54:00 GMT</pubDate><guid>http://www.tkk7.com/wangxq/archive/2007/01/26/96113.html</guid><wfw:comment>http://www.tkk7.com/wangxq/comments/96113.html</wfw:comment><comments>http://www.tkk7.com/wangxq/archive/2007/01/26/96113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wangxq/comments/commentRss/96113.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wangxq/services/trackbacks/96113.html</trackback:ping><description><![CDATA[ <p>写个单的批处理文件备份恢复:<br />备䆾Q?br />@echo off                        不显C命令行 <br />     <br />echo 开始备份表.....                       打印信息               <br />D:                                                                      DOS切换到D: ?br />cd oracle\ora92\bin                          切换到cd oracle\ora92\bin目录<br />exp <a href="mailto:enpuser/ABC12345@cms30">用户?密码@</a>数据?file=d:\config_bak.dmp tables=(table1,table2)      备䆾表一表二到d:\config_bak.dmp<br />echo 备䆾完毕Q?br /><br />恢复Q?br />@echo off           <br />    <br />echo 开始恢复表.....                     <br />D:<br />cd oracle\ora92\bin<br />imp <a href="mailto:enpuser/ABC12345@cms30">用户?密码@</a>数据?file=d:\config_bak.dmp tables=(table1,table2)  ignore=y   <br />sqlplus /nolog @oraStartup.sql>>oraStartup.log 调用sql文g<br />pause                                                                 执行完sql文g以后暂停Q看信息<br />echo 恢复完毕Q?br /><br />~写oraStartup.sql<br />conn <a href="mailto:enpuser/ABC12345@cms30">用户?密码@</a>数据?as sysdba<br />select * from table1Q?br />quitQ?br />       <br /></p> <p>       <br /><br /><br /> 执行环境Q可以在SQLPLUS.EXE或者DOSQ命令行Q中执行Q?br />  DOS中可以执行时׃ 在oracle 8i 中?安装目录\ora81\BIN被设|ؓ全局路径Q?br />  该目录下有EXP.EXE与IMP.EXE文g被用来执行导入导出?br />  oracle用java~写Q我想SQLPLUS.EXE、EXP.EXE、IMP.EXEq俩个文件是被包装后的类文g?br />  SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类Q完成导入导出功能?</p> <p>  下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成Q因为导入导出很单?br />  数据导出Q?br />  1 数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp?br />  exp system/manager@TEST file=d:\daochu.dmp full=y<br />  2 数据库中system用户与sys用户的表导出<br />  exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)<br />  3 数据库中的表table1 、table2导出<br />  exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) <br />  4 数据库中的表table1中的字段filed1?00"打头的数据导?br />  exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"<br />  <br />  上面是常用的导出Q对于压~我不太在意Q用winzip把dmp文g可以很好的压~?br />  不过在上面命令后?加上 compress=y  可以了</p> <p>  数据的导?br />  1 D:\daochu.dmp 中的数据导入 TEST数据库中?br />  imp system/manager@TEST  file=d:\daochu.dmp<br />  上面可能有点问题Q因为有的表已经存在Q然后它报错,对该表就不进行导入?br />  在后面加?ignore=y 可以了?br />  2 d:\daochu.dmp中的表table1 导入<br />  imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1) <br /></p> <p>        导入<br />  基本上上面的导入导出够用了。不情冉|是将表彻底删除,然后导入?<br /><br /><br /></p> <h1>Oracle数据库备份与恢复的三U方?/h1> <p style="TEXT-INDENT: 2em">Oracle数据库有三种标准的备份方法,它们分别是导出/导入QEXP/IMPQ、热备䆾和冷备䆾。导出备件是一U逻辑备䆾Q冷备䆾和热备䆾是物理备份?</p> <p style="TEXT-INDENT: 2em">一?导出Q导入(ExportQImportQ?</p> <p style="TEXT-INDENT: 2em">利用Export可将数据从数据库中提取出来,利用Import则可提取出来的数据送回到Oracle数据库中厅R?</p> <p style="TEXT-INDENT: 2em">Q?单导出数据(ExportQ和导入数据QImportQ?</p> <p style="TEXT-INDENT: 2em">Oracle支持三种方式cd的输出: </p> <p style="TEXT-INDENT: 2em">Q1Q、表方式QT方式Q,指定表的数据导出?</p> <p style="TEXT-INDENT: 2em">Q2Q、用h式(U方式Q,指定用L所有对象及数据导出?</p> <p style="TEXT-INDENT: 2em">Q3Q、全库方式(Full方式Q,瘉|据库中的所有对象导出?</p> <p style="TEXT-INDENT: 2em">数据导入QImportQ的q程是数据导出(ExportQ的逆过E,分别数据文件导入数据库和将数据库数据导出到数据文g?</p> <p style="TEXT-INDENT: 2em">Q?增量导出Q导?</p> <p style="TEXT-INDENT: 2em">增量导出是一U常用的数据备䆾ҎQ它只能Ҏ个数据库来实施,q且必须作ؓSYSTEM来导出。在q行此种导出Ӟpȝ不要求回{Q何问题。导出文件名~省为export.dmpQ如果不希望自己的输出文件定名ؓexport.dmpQ必d命o行中指出要用的文件名?</p> <p style="TEXT-INDENT: 2em">增量导出包括三种cdQ?</p> <p style="TEXT-INDENT: 2em">Q1Q、“完全”增量导出(CompleteQ?</p> <p style="TEXT-INDENT: 2em">卛_份三个数据库Q比如: </p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>exp system/manager inctype=complete file=040731.dmp</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">Q2Q、“增量型”增量导?</p> <p style="TEXT-INDENT: 2em">备䆾上一ơ备份后改变的数据,比如Q?</p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>exp system/manager inctype=incremental file=040731.dmp</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">Q3Q、“篏U型”增量导?</p> <p style="TEXT-INDENT: 2em">累计型导出方式是导出自上ơ“完全”导Z后数据库中变化了的信息。比如: </p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>exp system/manager inctype=cumulative file=040731.dmp</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">数据库管理员可以排定一个备份日E表Q用数据导出的三个不同方式合理高效的完成?</p> <p style="TEXT-INDENT: 2em">比如数据库的被封d可以做如下安排: </p> <p style="TEXT-INDENT: 2em">星期一Q完全备份(AQ?</p> <p style="TEXT-INDENT: 2em">星期二:增量导出QBQ?</p> <p style="TEXT-INDENT: 2em">星期三:增量导出QCQ?</p> <p style="TEXT-INDENT: 2em">星期四:增量导出QDQ?</p> <p style="TEXT-INDENT: 2em">星期五:累计导出QEQ?</p> <p style="TEXT-INDENT: 2em">星期六:增量导出QFQ?</p> <p style="TEXT-INDENT: 2em">星期日:增量导出QGQ?</p> <p style="TEXT-INDENT: 2em">如果在星期日Q数据库遭到意外破坏Q数据库理员可按一下步骤来回复数据库: </p> <p style="TEXT-INDENT: 2em">W一步:用命令CREATE DATABASE重新生成数据库结构; </p> <p style="TEXT-INDENT: 2em">W二步:创徏一个够大的附加回滚?</p> <p style="TEXT-INDENT: 2em">W三步:完全增量导入AQ?</p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>imp system/manager inctype=RESTORE FULL=y FILE=A</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">W四步:累计增量导入EQ?</p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>imp system/manager inctype=RESTORE FULL=Y FILE=E</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">W五步:最q增量导入FQ?</p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>imp system/manager inctype=RESTORE FULL=Y FILE=F</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">二?冷备?</p> <p style="TEXT-INDENT: 2em">冷备份发生在数据库已l正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备䆾时将关键性文件拷贝到另外的位|的一U说法。对于备份Oracle信息而言Q冷备䆾时最快和最安全的方法。冷备䆾的优ҎQ?</p> <p style="TEXT-INDENT: 2em">Q?是非常快速的备䆾ҎQ只需hӞ </p> <p style="TEXT-INDENT: 2em">Q?Ҏ归档Q简单拷贝即可) </p> <p style="TEXT-INDENT: 2em">Q?Ҏ恢复到某个时间点上(只需文件再拯回去Q?</p> <p style="TEXT-INDENT: 2em">Q?能与归档Ҏ相结合,做数据库“最佳状态”的恢复?</p> <p style="TEXT-INDENT: 2em">Q?低度l护Q高度安全?</p> <p style="TEXT-INDENT: 2em">但冷备䆾也有如下不Q?</p> <p style="TEXT-INDENT: 2em">Q?单独使用Ӟ只能提供到“某一旉点上”的恢复?</p> <p style="TEXT-INDENT: 2em">Q?再实施备份的全过E中Q数据库必须要作备䆾而不能作其他工作。也是_在冷备䆾q程中,数据库必L关闭状态?</p> <p style="TEXT-INDENT: 2em">Q?若磁盘空间有限,只能拯到磁带等其他外部存储讑֤上,速度会很慢?</p> <p style="TEXT-INDENT: 2em">Q?不能按表或按用户恢复?</p> <p style="TEXT-INDENT: 2em">如果可能的话Q主要看效率Q,应将信息备䆾到磁盘上Q然后启动数据库Q用户可以工作Qƈ备份的信息拯到磁带上Q拷贝的同时Q数据库也可以工作)。冷备䆾中必L贝的文g包括Q?</p> <p style="TEXT-INDENT: 2em">Q?所有数据文?</p> <p style="TEXT-INDENT: 2em">Q?所有控制文?</p> <p style="TEXT-INDENT: 2em">Q?所有联机REDO LOG文g </p> <p style="TEXT-INDENT: 2em">Q?Init.ora文gQ可选) </p> <p style="TEXT-INDENT: 2em">值得注意的冷备份必d数据库关闭的情况下进行,当数据库处于打开状态时Q执行数据库文gpȝ备䆾是无效的?</p> <p style="TEXT-INDENT: 2em">下面是作冷备份的完整例子?</p> <p style="TEXT-INDENT: 2em">Q?Q?关闭数据?</p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>sqlplus /nolog sql>;connect /as sysdba sql>;shutdown normal;</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">Q?Q?用拷贝命令备份全部的旉文g、重做日志文件、控制文件、初始化参数文g </p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>sql>;cp <file>; <backup directory>;</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">Q?Q?重启Oracle数据?</p> <p style="TEXT-INDENT: 2em"> </p> <center> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" style="FONT-SIZE: 9pt" bgcolor="#e6e6e6"> <pre> <ccid_code>sql>;startup</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </center> <p style="TEXT-INDENT: 2em">三?热备?</p> <p style="TEXT-INDENT: 2em">热备份是在数据库q行的情况下Q采用archivelog mode方式备䆾数据库的Ҏ。所以,如果你有昨天夜里的一个冷备䆾而且又有今天的热备䆾文gQ在发生问题Ӟ可以利用这些资料恢复更多的信息。热备䆾要求数据库在Archivelog方式下操作,q要大量的档案I间。一旦数据库q行在archivelog状态下Q就可以做备份了。热备䆾的命令文件由三部分组成: </p> <p style="TEXT-INDENT: 2em">1Q?数据文g一个表I间一个表I间的备份?</p> <p style="TEXT-INDENT: 2em">Q?Q?讄表空间ؓ备䆾状?</p> <p style="TEXT-INDENT: 2em">Q?Q?备䆾表空间的数据文g </p> <p style="TEXT-INDENT: 2em">Q?Q?回复表空间ؓ正常状?</p> <p style="TEXT-INDENT: 2em">2Q?备䆾归档log文g </p> <p style="TEXT-INDENT: 2em">Q?Q?临时停止归档q程 </p> <p style="TEXT-INDENT: 2em">Q?Q?log下那些在archive rede log目标目录中的文g </p> <p style="TEXT-INDENT: 2em">Q?Q?重新启动archiveq程 </p> <p style="TEXT-INDENT: 2em">Q?Q?备䆾归档的redo log文g </p> <p style="TEXT-INDENT: 2em">3Q?用alter database bachup controlfile命o来备份控制文?</p> <p style="TEXT-INDENT: 2em">热备份的优点是: </p> <p style="TEXT-INDENT: 2em">1Q?可在表空间或数据库文件备䆾Q备份的旉短?</p> <p style="TEXT-INDENT: 2em">2Q?备䆾时数据库仍可使用?</p> <p style="TEXT-INDENT: 2em">3Q?可达到秒U恢复(恢复到某一旉点上Q?</p> <p style="TEXT-INDENT: 2em">4Q?可对几乎所有数据库实体做恢?</p> <p style="TEXT-INDENT: 2em">5Q?恢复是快速的Q在大多数情况下爱数据库仍工作时恢复?</p> <p style="TEXT-INDENT: 2em">热备份的不是: </p> <p style="TEXT-INDENT: 2em">1Q?不能出错Q否则后果严?</p> <p style="TEXT-INDENT: 2em">2Q?若热备䆾不成功,所得结果不可用于时间点的恢?</p> <p style="TEXT-INDENT: 2em">3Q?因难于维护,所以要特别仔细心Q不允许“以p|告终”?/p> <p style="TEXT-INDENT: 2em"> <br /> <br /> <br />参考资料:<a >http://publish.it168.com/2006/0601/20060601045701.shtml?positioncode=1545</a><br /><a >http://bbs.zol.com.cn/index20061024/index_124_11079.html</a><br /><a >http://community.csdn.net/Expert/TopicView3.asp?id=5276764</a><br /><a >http://bbs.gdei.edu.cn/faster.php?id=t-55261</a><br /><a >http://www.dvbbs.net/tech/data/2006031819272.asp</a><br /><a >http://study.feloo.com/computer/data/Oracle/200509/121026.html</a><br /></p> <img src ="http://www.tkk7.com/wangxq/aggbug/96113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wangxq/" target="_blank">扭{乑֝</a> 2007-01-26 11:54 <a href="http://www.tkk7.com/wangxq/archive/2007/01/26/96113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一哥们写的日期处理c,很棒http://www.tkk7.com/wangxq/archive/2007/01/25/95910.html扭{乑֝扭{乑֝Thu, 25 Jan 2007 05:52:00 GMThttp://www.tkk7.com/wangxq/archive/2007/01/25/95910.htmlhttp://www.tkk7.com/wangxq/comments/95910.htmlhttp://www.tkk7.com/wangxq/archive/2007/01/25/95910.html#Feedback2http://www.tkk7.com/wangxq/comments/commentRss/95910.htmlhttp://www.tkk7.com/wangxq/services/trackbacks/95910.html  import   java.sql.Date;  
  import   java.text.SimpleDateFormat;  
  import   java.text.ParseException;  
   
  /**  
    *   Utility   to   date   time  
    *   @version   0.1  
    *   @author   Super   Zhao  
    */  
  public   class   DateTimeUtil   {  
   
  /**  
    *   由java.util.Date到java.sql.Date的类型{? 
    *   @param   date  
    *   @return   Date  
    */  
  public   static   Date   getSqlDate(java.util.Date   date){  
  return   new   Date(date.getTime());  
  }  
   
  public   static   Date   nowDate(){  
  Calendar   calendar=Calendar.getInstance();  
  return   getSqlDate(calendar.getTime());  
  }  
   
  /**  
    *   获得某一日期的后一? 
    *   @param   date  
    *   @return   Date  
    */  
  public   static   Date   getNextDate(Date   date){  
  Calendar   calendar=Calendar.getInstance();  
  calendar.setTime(date);  
  int   day=calendar.get(Calendar.DATE);  
  calendar.set(Calendar.DATE,day+1);  
  return   getSqlDate(calendar.getTime());  
  }  
   
  /**  
    *   获得某一日期的前一? 
    *   @param   date  
    *   @return   Date  
    */  
  public   static   Date   getPreviousDate(Date   date){  
  Calendar   calendar=Calendar.getInstance();  
  calendar.setTime(date);  
  int   day=calendar.get(Calendar.DATE);  
  calendar.set(Calendar.DATE,day-1);  
  return   getSqlDate(calendar.getTime());  
  }  
   
  /**  
    *   获得某年某月W一天的日期  
    *   @param   year  
    *   @param   month  
    *   @return   Date  
    */  
  public   static   Date   getFirstDayOfMonth(int   year,int   month){  
  Calendar   calendar=Calendar.getInstance();  
  calendar.set(Calendar.YEAR,year);  
  calendar.set(Calendar.MONTH,month-1);  
  calendar.set(Calendar.DATE,1);  
  return   getSqlDate(calendar.getTime());  
  }  
   
  /**  
    *   获得某年某月最后一天的日期  
    *   @param   year  
    *   @param   month  
    *   @return   Date  
    */  
  public   static   Date   getLastDayOfMonth(int   year,int   month){  
  Calendar   calendar=Calendar.getInstance();  
  calendar.set(Calendar.YEAR,year);  
  calendar.set(Calendar.MONTH,month);  
  calendar.set(Calendar.DATE,1);  
  return   getPreviousDate(getSqlDate(calendar.getTime()));  
  }  
   
  /**  
    *   由年月日构徏java.sql.Datecd  
    *   @param   year  
    *   @param   month  
    *   @param   date  
    *   @return   Date  
    */  
  public   static   Date   buildDate(int   year,int   month,int   date){  
  Calendar   calendar=Calendar.getInstance();  
  calendar.set(year,month-1,date);  
  return   getSqlDate(calendar.getTime());  
  }  
   
  /**  
    *   取得某月的天? 
    *   @param   year  
    *   @param   month  
    *   @return   int  
    */  
  public   static   int   getDayCountOfMonth(int   year,int   month){  
  Calendar   calendar=Calendar.getInstance();  
  calendar.set(Calendar.YEAR,year);  
  calendar.set(Calendar.MONTH,month);  
  calendar.set(Calendar.DATE,0);  
  return   calendar.get(Calendar.DATE);  
  }  
   
  /**  
    *   获得某年某季度的最后一天的日期  
    *   @param   year  
    *   @param   quarter  
    *   @return   Date  
    */  
  public   static   Date   getLastDayOfQuarter(int   year,int   quarter){  
  int   month=0;  
  if(quarter>4){  
  return   null;  
  }else{  
  month=quarter*3;  
  }  
  return   getLastDayOfMonth(year,month);  
   
  }  
   
  /**  
    *   获得某年某季度的W一天的日期  
    *   @param   year  
    *   @param   quarter  
    *   @return   Date  
    */  
  public   static   Date   getFirstDayOfQuarter(int   year,int   quarter){  
  int   month=0;  
  if(quarter>4){  
  return   null;  
  }else{  
  month=(quarter-1)*3+1;  
  }  
  return   getFirstDayOfMonth(year,month);  
  }  
   
  /**  
    *   获得某年的第一天的日期  
    *   @param   year  
    *   @return   Date  
    */  
  public   static   Date   getFirstDayOfYear(int   year){  
  return   getFirstDayOfMonth(year,1);  
  }  
   
  /**  
    *   获得某年的最后一天的日期  
    *   @param   year  
    *   @return   Date  
    */  
  public   static   Date   getLastDayOfYear(int   year){  
  return   getLastDayOfMonth(year,12);  
  }  
   
  /**  
    *   String到java.sql.Date的类型{? 
    *   @param   param  
    *   @return   Date  
    */  
  public   static   java.sql.Date   StringToDate(String   param)   {  
  if(StringUtil.nullOrBlank(param))   {  
  return   null;  
  }   else   {  
  java.util.Date   date   =null;  
  try   {  
  SimpleDateFormat   sdf=new   SimpleDateFormat("yyyy-MM-dd");  
  date   =   sdf.parse(param);  
  return   new   Date(date.getTime());  
  }  
  catch   (ParseException   ex)   {  
  //ex.printStackTrace();  
  return   null;  
  }  
  }  
  }  
  }  

扭{乑֝ 2007-01-25 13:52 发表评论
]]>
好玩的眼?/title><link>http://www.tkk7.com/wangxq/archive/2006/12/30/91035.html</link><dc:creator>扭{乑֝</dc:creator><author>扭{乑֝</author><pubDate>Sat, 30 Dec 2006 09:30:00 GMT</pubDate><guid>http://www.tkk7.com/wangxq/archive/2006/12/30/91035.html</guid><wfw:comment>http://www.tkk7.com/wangxq/comments/91035.html</wfw:comment><comments>http://www.tkk7.com/wangxq/archive/2006/12/30/91035.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wangxq/comments/commentRss/91035.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wangxq/services/trackbacks/91035.html</trackback:ping><description><![CDATA[ <div> </div> <img src ="http://www.tkk7.com/wangxq/aggbug/91035.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wangxq/" target="_blank">扭{乑֝</a> 2006-12-30 17:30 <a href="http://www.tkk7.com/wangxq/archive/2006/12/30/91035.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript打印http://www.tkk7.com/wangxq/archive/2006/11/14/81096.html扭{乑֝扭{乑֝Tue, 14 Nov 2006 04:26:00 GMThttp://www.tkk7.com/wangxq/archive/2006/11/14/81096.htmlhttp://www.tkk7.com/wangxq/comments/81096.htmlhttp://www.tkk7.com/wangxq/archive/2006/11/14/81096.html#Feedback0http://www.tkk7.com/wangxq/comments/commentRss/81096.htmlhttp://www.tkk7.com/wangxq/services/trackbacks/81096.html问题Q去除页眉页脚,讄打印的横U向方式Q?br />解决Ҏ一Q?br />修改注册表:
  var HKEY_Root,HKEY_Path,HKEY_Key;
  HKEY_Root = "HKEY_CURRENT_USER\\";
  HKEY_Path="Software\\Microsoft\\Internet Explorer\\PageSetup\\";
  
  function PageSetup_Null(){
   var Wsh = new ActiveXObject("WScript.Shell");
   HKEY_Key = "header";
   //Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);
   Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
   HKEY_Key = "footer";
   //Wsh.RegRead(HKEY_Root+HKEY_Path+HKEY_Key);
   Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
  }
  
  window.onload=PageSetup_Null();
  
  function PageSetup_Reset(){
   var Wsh = new ActiveXObject("WScript.Shell");
   HKEY_Key = "header";
   Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b늠,&p/&P");
   HKEY_Key = "footer";
   Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");
  }

  window.unonload=PageSetup_Reset();

׃注册表位|跟操作pȝ有关Q不推荐使用?/p>

解决Ҏ二:
使用控gQ?br />Q-Q-Q-Q-Q-Q-Q?a >http://www.7say.com/article.asp?id=112Q-Q-Q-Q-Q-
利用ScriptX.cab控gq行WEB打印Q可以控?U|"?横打”和“页面的边距。打C码如下:

<object id=factory viewastext style="display:none"
classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
 codebase="</object>
<script defer>
function window.onload() {
 // -- advanced features
 factory.printing.SetMarginMeasure(2); // measure margins in inches
 factory.printing.printer = "HP DeskJet 870C";
 factory.printing.paperSize = "A4";
 factory.printing.paperSource = "Manual feed";
 factory.printing.collate = true;
 factory.printing.copies = 2;
 factory.printing.SetPageRange(false, 1, 3); // need pages from 1 to 3

 // -- basic features
 factory.printing.header = "This is MeadCo";
 factory.printing.footer = "Advanced Printing by ScriptX";
 factory.printing.portrait = false;
 factory.printing.leftMargin = 1.0;
 factory.printing.topMargin = 1.0;
 factory.printing.rightMargin = 1.0;
 factory.printing.bottomMargin = 1.0;
}

function Print(frame) {
 factory.printing.Print(true, frame) // print with prompt
</script>

<script language="javascript">
function printTure() //打印函数
{
 document.all("dayinDiv").style.display="none";//隐藏按钮
 factory.printing.Print(false); //调用控g打印
 document.all("dayinDiv").style.display="";//昄
}
</script>

<DIV align="center" id="dayinDiv" name="dayinDiv">
<input type=button value="打印本页" onclick="printTure()">
<input type=button value="面讄" onclick="factory.printing.PageSetup()">
<input type=button value="打印预览" onclick="factory.printing.Preview()"><br>
</DIV>


关于ScriptX的下载和该控件的使用ҎL?
http://www.meadroid.com/scriptx/index.asp 查看.
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br />具体应用Q?br />  <object id=factory style="display:none"
   classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
   codebase="<c:url value="/editor/ScriptX.cab#version=5,60,0,375"/>" viewastext>
  </object>

  <OBJECT id=WB classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT> 

  function printit()
  {
   factory.printing.header   =   "";  
         factory.printing.footer   =   "";  
   factory.printing.portrait = false;
     WB.ExecWB(6,6)
  }
  
  function setPrint()
  {
   factory.printing.header   =   "";  
         factory.printing.footer   =   "";  
   factory.printing.portrait = false;
   WB.ExecWB(8,1);
  }
  function previewPrint()
  {
   factory.printing.header   =   "";  
         factory.printing.footer   =   "";  
   factory.printing.portrait = false;
   WB.ExecWB(7,1)
  }

  function reset() {
   factory.printing.header   =   "&w&b늠,&p/&P";  
         factory.printing.footer   =   "&u&b&d";  
   factory.printing.portrait = true;
  }

  window.unonload=reset();

<DIV align="center" id="dayinDiv" name="dayinDiv">
<input type=button value="打印本页" onclick="printit()">
<input type=button value="面讄" onclick="setPrint()">
<input type=button value="打印预览" onclick="previewPrint()"><br>
</DIV>



扭{乑֝ 2006-11-14 12:26 发表评论
]]>
java中split使用?/title><link>http://www.tkk7.com/wangxq/archive/2006/11/14/81095.html</link><dc:creator>扭{乑֝</dc:creator><author>扭{乑֝</author><pubDate>Tue, 14 Nov 2006 04:25:00 GMT</pubDate><guid>http://www.tkk7.com/wangxq/archive/2006/11/14/81095.html</guid><wfw:comment>http://www.tkk7.com/wangxq/comments/81095.html</wfw:comment><comments>http://www.tkk7.com/wangxq/archive/2006/11/14/81095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wangxq/comments/commentRss/81095.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wangxq/services/trackbacks/81095.html</trackback:ping><description><![CDATA[ <p>java.lang.string.split<br />split Ҏ<br />一个字W串分割为子字符Ԍ然后结果作为字W串数组q回?br />string.split([separatorQ[limit]])<br />参数<br />string 必选项。要被分解的 String 对象或文字。该对象不会?split Ҏ修改?br />separator 可选项。字W串?正则表达?对象Q它标识了分隔字W串时用的是一个还是多个字W。如果忽略该选项Q返回包含整个字W串的单一元素数组?<br />limit 可选项。该值用来限制返回数l中的元素个数?<br />说明<br />split Ҏ的结果是一个字W串数组Q在 sting 中每个出?separator 的位|都要进行分解?/p> <p>separator 不作ZQ何数l元素的部分q回?/p> <p>Q? * 不是有效的模式匹配规则表辑ּQ用"\\*" "\\+"转义后即可得到正的l果?br />"|" 分隔串时虽然能够执行Q但是却不是预期的目的,"\\|"转义后即可得到正的l果?br />q有如果惛_串中使用"\"字符Q则也需要{?首先要表?aaaa\bbbb"q个串就应该?aaaa\\bbbb",如果要分隔就应该q样才能得到正确l果Q?br />        String[] aa = "aaa\\bbb\\bccc".split(<a>\\\\</a>);</p> <p>\\也可用[]代替Q如Q[|] [*]<br /></p> <img src ="http://www.tkk7.com/wangxq/aggbug/81095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wangxq/" target="_blank">扭{乑֝</a> 2006-11-14 12:25 <a href="http://www.tkk7.com/wangxq/archive/2006/11/14/81095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>存储q程的一些用?/title><link>http://www.tkk7.com/wangxq/archive/2006/11/14/81084.html</link><dc:creator>扭{乑֝</dc:creator><author>扭{乑֝</author><pubDate>Tue, 14 Nov 2006 03:27:00 GMT</pubDate><guid>http://www.tkk7.com/wangxq/archive/2006/11/14/81084.html</guid><wfw:comment>http://www.tkk7.com/wangxq/comments/81084.html</wfw:comment><comments>http://www.tkk7.com/wangxq/archive/2006/11/14/81084.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wangxq/comments/commentRss/81084.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wangxq/services/trackbacks/81084.html</trackback:ping><description><![CDATA[ <p>最q在用存储过E?在网上找了很多的资料,下面参考各U资料整理的一些小例子做些阐述Q?br />1. Oralce TO_NUMBER() function 的改q:<br />用Oracle TO_NUMBERq行cd转换的时候,如果有无效数字,返回错误。遗憄是,Oralce TO_NUMBERq不是在queryq行开始就报错Q而是到碰到无效数字的U录才报错,而且只是说无效输入,q不提示是哪条纪录,也没有Q何输出。如果是一张大表,queryq行很久才来q么一下,而且Ҏ不知道那里出的错Q是什么|岂不痛苦Q偶q常跟q样的表打交道,遂自Z个函敎ͼGET_NUMQ?/p> <p>CREATE OR REPLACE FUNCTION GET_NUM(IN_TXT in VARCHAR2) RETURN NUMBER IS<br />RETRUN_VALUE NUMBER;<br />BEGIN<br /> select to_number(IN_TXT) into RETRUN_VALUE from dual;<br /> RETURN RETRUN_VALUE;<br /> <br /> EXCEPTION<br /> WHEN others<br /> THEN<br /> RETURN null;<br />END GET_NUM;<br />/<br />q样无效数字全{换成 Null,U错Ҏ多了?/p> <p>写个存储q程试一下:<br />CREATE OR REPLACE PROCEDURE TestFun IS<br />    v_name varchar2(10);/***** 存放cursor_para中的name *****/<br />    CURSOR cursor_name IS select name from test;<br />    cursor cursor_para(p_num number) is select name from test where num = p_num;<br />begin<br />  /******* t_name为@环的临时变量******/<br />  FOR t_name IN cursor_name LOOP<br />  <br />    if (get_num(t_name.name) is not null) then<br />    <br />   open cursor_para(get_num(t_name.name));<br />   <br />   fetch cursor_para into v_name;<br />   <br />   DBMS_OUTPUT.PUT_LINE('Name:'|| v_name);<br />   <br />   close cursor_para;<br />       <br />   end if;<br />   <br />  END LOOP;<br />END TestFun;<br />/<br />存储q程也用C带参数的游标和游标For循环,E后介绍.</p> <p>其中试表的创徏Q?br />create table test<br />(<br />     name varchar2(10),<br />    num number<br />)</p> <p>试数据: <br />insert into test(name) values ('12_');<br />insert into test(name) values ('123');<br /><br />2.带参数的游标</p> <p>  与存储过E和函数怼Q可以将参数传递给游标q在查询中用。这对于处理在某U条件下打开游标的情况非常有用。它的语法如下:</p> <p>CURSOR cursor_name[(parameter[,parameter],...)] IS select_statement; </p> <p>  定义参数的语法如下:</p> <p>Parameter_name [IN] data_type[{:=|DEFAULT} value] </p> <p>  与存储过E不同的是,游标只能接受传递的|而不能返回倹{参数只定义数据cdQ没有大?</p> <p>  另外可以l参数设定一个缺省|当没有参数g递给游标Ӟ׃用缺省倹{游标中定义的参数只是一个占位符Q在别处引用该参C</p> <p>一定可靠?/p> <p>  在打开游标时给参数赋|语法如下Q?/p> <p>OPEN cursor_name[value[,value]....]; </p> <p>3.游标FOR循环</p> <p>  在大多数时候我们在设计E序的时候都遵@下面的步骤:</p> <p>  1、打开游标</p> <p>  2、开始@?/p> <p>  3、从游标中取?/p> <p>  4、检查那一行被q回</p> <p>  5、处?/p> <p>  6、关闭@?/p> <p>  7、关闭游?/p> <p>  可以单的把这一cM码称为游标用于@环。但q有一U@环与q种cd不相同,q就是FOR循环Q用于FOR循环的游标按照正常的声明?/p> <p>式声明,它的优点在于不需要显式的打开、关闭、取数据Q测试数据的存在、定义存放数据的变量{等。游标FOR 循环的语法如下:</p> <p>FOR record_name IN<br />(corsor_name[(parameter[,parameter]...)]<br />| (query_difinition)<br />LOOP<br />statements<br />END LOOP; </p> <p>上面的这两个用法也在例子中提CQ?/p> <p>同理cLQ也可以TO_DATE()函数改进?br /></p> <p>下面的例子自<a >http://www.nikicn.com/bbs/dispbbs.asp?boardid=23&id=908</a><br />没有试Q留作备份之用:<br />4. Oracle 的Last_Day()函数改写到DB2上:<br />DROP SPECIFIC FUNCTION LAST_DAYDATE<br />;<br />CREATE FUNCTION LAST_DAY(D DATE)<br />RETURNS     DATE<br />    SPECIFIC LAST_DAYDATE<br />    LANGUAGE SQL<br />    DETERMINISTIC<br />    CONTAINS SQL<br />    CALLED ON NULL INPUT<br />    NO EXTERNAL ACTION<br />    RETURN <br />D + 1 month - day(D + 1 month) day</p> <p>;</p> <p>同理QDB2下的first day:<br />DROP SPECIFIC FUNCTION FIRST_DAYDATE<br />;<br />CREATE FUNCTION FIRST_DAY(D DATE)<br />RETURNS     DATE<br />    SPECIFIC FIRST_DAYDATE<br />    LANGUAGE SQL<br />    DETERMINISTIC<br />    CONTAINS SQL<br />    CALLED ON NULL INPUT<br />    NO EXTERNAL ACTION<br />    RETURN<br />D - day(D) day + 1 day</p> <img src ="http://www.tkk7.com/wangxq/aggbug/81084.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wangxq/" target="_blank">扭{乑֝</a> 2006-11-14 11:27 <a href="http://www.tkk7.com/wangxq/archive/2006/11/14/81084.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Jspq行环境的配|方?/title><link>http://www.tkk7.com/wangxq/archive/2006/08/24/65464.html</link><dc:creator>扭{乑֝</dc:creator><author>扭{乑֝</author><pubDate>Thu, 24 Aug 2006 02:54:00 GMT</pubDate><guid>http://www.tkk7.com/wangxq/archive/2006/08/24/65464.html</guid><wfw:comment>http://www.tkk7.com/wangxq/comments/65464.html</wfw:comment><comments>http://www.tkk7.com/wangxq/archive/2006/08/24/65464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/wangxq/comments/commentRss/65464.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/wangxq/services/trackbacks/65464.html</trackback:ping><description><![CDATA[ <p> <a >http://soft.etcell.com/topicView.aspx?Id=5692</a> <br />配置server.xml ------ Tomcat的全局配置文g<br />当你打开Tomcatq个目录Ӟ你将可以看到在这个目录下有个conf文g夹,打开该目录下server.xml文g的源码,我们会看到里面有很多xml代码Q是用来描述Tomcat的全局配置Q在此我们只兛_跟我们有密切关系的部分?br /><1>讄路径映射<br />大概在第264?67行中你可以看?/p> <p><!-- Tomcat Root Context --><br />        <!--<br />          <Context path="" docBase="ROOT" debug="0"/><br />        --></p> <p>其中<!-- Tomcat Root Context -->是说明部分,没Q何作用,我们不理它?br />docBase="ROOT"是指定我们目的物理地址Q如果用上面所建的目htdocsQ那是docBase=" E:/Tomcat41/htdocs"?/p> <p>path=""是指定在URL的相对\径,如设|ؓpath="TEST",那么在URL中输?a >http://127.0.0.1:80/TEST</a> Q它能dE:/Tomcat41/htdocs下的文g?br />但一般我们设|ؓpath=""Q而且在安装Tomcat时端口设|ؓ80Q那?br />在URL中输?a >http://127.0.0.1/</a>可以读到E:/Tomcat41/htdocs下的文g了?/p> <p>Z每次|页h能有效的d最新的文gQ在此我们增加了一个设|,<br />reloadable=”true”?br />最后的l果是:</p> <p><!-- Tomcat Root Context --><br /><Context path="" docBase="E:/Tomcat41/htdocs" reloadable="true" debug="0"/></p> <p>web.xml -----在Tomcat中配|不同的关系环境<br />跟server.xml同一目录下还有一个web.xmlQ打开该文件的源码,我们看看一些常用的配置Ҏ<br />A.隐藏跟目录下的文件夹<br />Z安全的考虑Qؓ了不让客L能看到服务器端跟目录下的文gQ必Llistings从true改ؓfalse,具体如下Q?br /><servlet><br />        ………?br />        <init-param><br />            <param-name>listings</param-name><br />            <param-value>false</param-value><br />        </init-param><br />        …………?br />    </servlet><br />B.开放servlet和jsp<br />׃在应用程序中会用到servlet和jsp,Z在URL中检索ƈ处理servlet和jspQ必Lservlet和jsp开攑և来,是L ?lt;!—“和?-->?具体如下Q?br /><!-- The mapping for the invoker servlet --></p> <p>    <servlet-mapping><br />        <servlet-name>invoker</servlet-name><br />        <url-pattern>/servlet/*</url-pattern><br />    </servlet-mapping><br />    <!-- The mapping for the JSP servlet --><br />    <servlet-mapping><br />        <servlet-name>jsp</servlet-name><br />        <url-pattern>*.jsp</url-pattern><br /></servlet-mapping><br />C.讄默认文g<br />   ׃客户通常只知道网站的名称Q而不该知道网站的入口文g名称。ؓ了客户在输入|址时能够找到默认的入口文gQ必L文g名加入到<welcome-file-list>中,如:<br /><welcome-file-list><br />        <welcome-file>index.html</welcome-file><br />        <welcome-file>index.htm</welcome-file><br />        <welcome-file>index.jsp</welcome-file><br /></welcome-file-list><br />q时如果输入<a >http://127.0.0.1</a>q于输?a >http://127.0.0.1/index.html</a><br /><br /></p> <img src ="http://www.tkk7.com/wangxq/aggbug/65464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/wangxq/" target="_blank">扭{乑֝</a> 2006-08-24 10:54 <a href="http://www.tkk7.com/wangxq/archive/2006/08/24/65464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://lidajc.com" target="_blank">߹ۿһ</a>| <a href="http://266hd.com" target="_blank">йһëƬѿƵ</a>| <a href="http://cebeke.com" target="_blank">˾޾ƷӰԺ</a>| <a href="http://5g6z.com" target="_blank">ҹɫһ</a>| <a href="http://xvwenyue.com" target="_blank">һѹۿƵwww</a>| <a href="http://hongyue8.com" target="_blank">mv߹ۿ</a>| <a href="http://ztsf6688.com" target="_blank">ڵ߿ </a>| <a href="http://ivr69.com" target="_blank">㶮õ߹ۿƵ</a>| <a href="http://kdltuliao.com" target="_blank">ɫ͵͵ɫݺ99</a>| <a href="http://52ku6.com" target="_blank">޹Ů߹ۿ </a>| <a href="http://aabbcc567.com" target="_blank">һƬѿ</a>| <a href="http://chinaedubrand.com" target="_blank">˾Ʒþ޸岻</a>| <a href="http://szyxfhm.com" target="_blank">vavavaӰĻ</a>| <a href="http://miliwo.com" target="_blank">ŷ޹պƷ</a>| <a href="http://bdgxhome.com" target="_blank">ձƵ</a>| <a href="http://yy6636.com" target="_blank">ձvaҹĻþ</a>| <a href="http://5gg1.com" target="_blank">ѹۿaƬվ</a>| <a href="http://thegaybdsm.com" target="_blank">ŮſȵͰƵ</a>| <a href="http://dingdingduo.com" target="_blank">Ʒһʽֱ </a>| <a href="http://988938.com" target="_blank">ŷպĸwww777</a>| <a href="http://deyingwh.com" target="_blank">ŷ޹Ʒ㽶</a>| <a href="http://njyadi.com" target="_blank">ŷ߹ۿ</a>| <a href="http://600c81.com" target="_blank">һձþþ</a>| <a href="http://sh-shule.com" target="_blank">avƷʵ </a>| <a href="http://6711wan.com" target="_blank">ѻɫƵ</a>| <a href="http://074g8.com" target="_blank">һaȫƵëƬ</a>| <a href="http://ahzlgj.com" target="_blank">޴Ů߹ۿ</a>| <a href="http://huahui1866.com" target="_blank">츾ٸ߹ۿ</a>| <a href="http://6t23.com" target="_blank">޹ŮƵ</a>| <a href="http://7778tv.com" target="_blank">ɫϰƵ߹</a>| <a href="http://youweidianqi.com" target="_blank">91͵߹ۿ</a>| <a href="http://147v.com" target="_blank">޹ƷۺϾþþ </a>| <a href="http://www8x5188x.com" target="_blank">ֻ߿avƬ</a>| <a href="http://gs168sz.com" target="_blank">67194츾ѹۿ </a>| <a href="http://fkg675.com" target="_blank">Ļ߹ۿ</a>| <a href="http://jastrelax.com" target="_blank">޹ղ뾫Ʒ</a>| <a href="http://hubmba.com" target="_blank">˾þô߽ӰԺ</a>| <a href="http://hwafarda.com" target="_blank">¶ۺ</a>| <a href="http://bz600.com" target="_blank">޾ƷþþþþͼƬ </a>| <a href="http://http99.com" target="_blank">ĻһӰԺַ </a>| <a href="http://ax445.com" target="_blank">޾Ʒ뼤AV</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>