杂记,主要是工作中遇到的问题及解决办法

来源:互联网 发布:迅捷手机数据恢复软件 编辑:程序博客网 时间:2024/05/21 15:39


 登陆as04 - oracle的命令:
   1.telnet as04.wh.wistronits.com    
   2.login:oracle
   3.chdb                          #选择数据库实例
     ORACLE_SID = iasdb         #默认的,可以直接输入回车
     ORACLE_HOME = /opt/app/oracle/product/10.1.0/db_1
   4.cd $ORACLE_HOME
   5.cd bin
   6.dbstart  #启动数据库
   7.lsnrctl start   #启动监听
   
 登陆251 - oracle的命令:
 cd /opt/ora9/product/9.2/bin
 
 lsnrctl start
 agentctl start
 
 export ORACLE_SID=essp
 sqlplus /nolog
 connect / as sysdba
 startup
 exit
 
 export ORACLE_SID=essptemp
 sqlplus /nolog
 connect / as sysdba
 startup 
 
2.卢亮?QQ: 17535856 
3.<自己动手些操作系统> 群号:7872966
 验证信息一定要写上:“自己动手写操作系统”,“操作系统”,“OS”之类的。
4.The C Puzzle Book :
 很不错的书,可以深入了解C的语法。
 我看过了,用处不大。就是一些语法的测试

3.数据库导入后注意这几个表:
 essp_hr_employee_main_t
 essp_upms_function
 essp_upms_user_fun
 最好重新导一遍。

5.cvs中导入一个文件夹可以用import命令:
 工作目录设为:D:/essp/essp2005
 在要导入的文件夹上点右键,选import。在接下来的设置里设modul名为:"根模块名/...(路径)/本文件夹",比如  essp2/pms,根目录为essp2,根到本文件夹的路径为essp2/pms.
 只需注意:是左斜杠/而不是右斜杠/。
6. hibernate的一个奇怪的错误:
 如果数据库中的字段类型为Date,而database bean中定义的是String ,而实际保存时的值为一个Date型的object转的字符串
 结果保存时抱错:值中含非数字字符,预期为numeric,

*****************************linux学习*****************************************************************
1. ls 列出文件和目录的命令:
  ls命令有很多的选项:
    -A 选项用来列出所有的文件,包括那些隐藏的文件(比如.bashrc)
    -l 这个选项用来显示一个列表,显示每个文件的大小,修改日期等
    -R 显示出所有文件(包括子目录的) recursive
    --help
2. cd 与windows的一样:
   cd /   -->进入根目录
   cd ..   -->上一级目录
   cd ~ 进入用户的个人目录,root用户就是/root目录,kris用户就是/home/kris目录 
   cd - 进入上一个提示符的目录

   cd命令不带任何参数,这样就可以回到自己的目录 /usr
3. pwd 打印当前的目录
4. mkdir 新目录名 
5. rm 待删除的文件名或目录名 (删除一个目录,如果一个目录里面已经有文件,rm是不让直接删除的)
   -rf  -->删除目录,既使里面有文件,也删除它
6. mv 老文件名 新文件名 
  mv 老目录名 新目录名
7. cp 老文件名 新文件名
8. man 命令名字,查看命令的手册
9. cat LoveLetter  显示文件的内容
10. 关机命令是halt
  重启动命令是reboot
  shutdown命令 
   shutdown 命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟;时间段由“+”和分钟数表示。系统执行该命令后,会自动进行数据同步的工作。该命令的一般格式为: 
   shutdown [选项] [时间] [警告信息] 
   命令中各选项的含义为:     
   - k 并不真正关机,而只是发出警告信息给所有用户。    
   - r 关机后立即重新启动。     
   - h 关机后不重新启动。     
   - f 快速关机,重启动时跳过fsck。     
   - n 快速关机,不经过init程序。     
   - c 取消一个已经运行的shutdown。     
   需要特别说明的是,该命令只能由超级用户使用。     
   例1:系统在十分钟后关机,并且马上重新启动。     
   # shutdown – r +10    
   
   例2:系统马上关机,并且不重新启动。
   # shutdown – h now 

11. mount -t iso9660 /dev/cdrom /mnt/cdrom 把光驱挂装到/mnt/cdrom目录 
     -t参数是指定光盘的文件系统类型,一般来说,光盘都是用的iso9660标准的格式
     /dev/cdrom即指光盘
     /mnt/cdrom为一个目录
  mount /dev/fd0 /mnt/floppy 挂载软盘
  umount /mnt/cdrom或umount /dev/cdrom  取消挂载。挂载光盘后,光盘将不能被“弹出”,即使按按钮也没用。
  umount /dev/fd0
12. more 管道命令
   more LoveLetter  --> LoveLetter的内容显示在屏幕上,没到一页就自动停下来,等待你的按键,然后才继续显示下面一页。 
  >
   一个大于符号的管道是用来创建一个新的文件filenames.txt,如果已经有了同名的文件就复盖掉以前的内容。
  >>
   两个大于符号的管道是用来在已经存在的文件后面追加新的内容,如果没有这个文件就创建它。
  cat >> friends << "EOF" 
   意思就是把我们输入内容保存到friends文件里面,当我们输入“EOF”的时候结束。“<<”的意思就是向前面的命令传送一个数据。 
13. free命令 
   free命令的功能是查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区。该命令的一般格式为: 
   free [-b | -k | -m] 
   命令中各选项的含义如下: 
    -b 以字节为单位显示。 
    -k 以K字节为单位显示。 
    -m 以兆字节为单位显示。 
   

21.高宁的电话:13970229725

任燕    13995603712

陈佳丽        13972158072

熊磊的        13971294793

余阳          027-62998772

肖斌          13330021260

肖斌          0792-8814227

李奕          13871270956
何志豪        13886152331
 

22.有意思的问题:在abstract class中定义一个无public/protected/private修饰的package scope的abstract方法,则该方法的实现类必须在同一个package中,
    ,在不同的package中的话,编译时会出错,认为没有实现该absctract方法。
    这是不是说:abstract class中的abstract方法不默认有public scope?
     
23.JBoss重起:点击JBoss窗口关闭按钮,不要关闭窗口,等待自己结束。再开启。 
  
24:oracle的查询树的语句:
    select count(*)
        from dept
        start with rid=?
        connect by prior rid=parentRid;

25: catalina run > D:/log.txt
    这个命令可以将tomcat的输出文字写到文件log.txt中去。


27: dos命令发声的方法:
    1. 用echo 命令: echo ^G
        由于特殊字符^G没法直接输入到文本中,用下面方法写到文本中:
        在dos控制台上输入: echo "echo ^G" > C:/a.bat
        在文件a.bat中删除前后的引号即可。(在控制台上输入^G的方法是:alt + 7 或者 ctrl + G)
    2.用choice命令: echo a^_ | choice /c^_ /n
        可用与1.相同的方法写入到文本中去。(在控制台上输入^_的方法是:alt + 255 ,实际上是一个无显示字符,但不是空字符)

28: cvs:
    1. 登陆命令:cvs -d:pserver:huaxiao:huaxiao@as04.wh.wistronits.com/home/cvsroot/essp login
    注意两个"huaxiao"为用户名和密码,如果省略了一个,则认为是用户名,如果该用户的密码不为空,则会提示输入密码;一般anonymous帐号不需要密码
 
 2. 命令 cvs history -c 打印出模块下(具体是哪个模块则好像根据当前模块有关)的每个文件的历史"提交"动作(M 修改,A 新增,R 删除,)
      与"-c"参数相同的是"-x"参数,它指定输出指定的动作,动作列表见3。
      如"cvs history -x A"打印出所有的"新增"动作
      "-c" 与 "-x MAR"等效
   cvs history -c -z +0800 参数"-z +0800"指定输出的信息中的时间的值,即比标准时间多8小时0分钟
   cvs history -c -z +0800 -f new.txt  打印参数"-f new.txt"指定文件的历史动作
   cvs history -c -l 参数"-l"表示只输出最新的一次历史动作,如果没有指定话,就输出历次动作
   
   典型例子:
   1. cvs -d :pserver:huaxiao:huaxiao@as04.wh.wistronits.com:/home/cvsroot/essp history -c >E:/essp/T/cvs.log
    /home/cvsroot/essp是一个cvs仓库,本命令会将其中的所有模块的history打印出来,比如模块essp和essp2。
   
   缺陷:当用import命令将文件导入到馆中时,这些文件将没有history,即history命令的输出不含这些文件的信息。
     log命令不会有这个问题。
    
   history命令在控制台上的输出形如:
    M 2006-01-16 13:49 +0000 huaxiao 1.4 build.xml essp2/attendance == <remote>
    A 2006-01-16 11:49 +0000 huaxiao 1.3 build.xml essp2/attendance == <remote>
 3。 记录类型:
  一些命令有一个单独的记录类型:
   F release
   O checkout
   E export   
   T rtag
  update 产生的记录类型:
  
   C 合并后有冲突发生(需要手动合并)。
   G 合并成功。   
   U 从仓库复制了工作文件。
   P 为工作文件打补丁,与仓库中相配。   
   W 更新期间删除了工作副本(因为在仓库里面已经删除)。
  commit 产生的三种记录类型:   
   A 首次增加文件。   
   M 修改了文件。   
   R 删除了文件。
 
 4. cvs log命令:
   cvs log 会打印出最详细的信息
   cvs log -l 参数"-l"表示不要遍历子目录,只当前目录
   cvs log -R 参数"-R"表示只输出每个文件对应的RCS文件(RCS文件就是每个文件的名字+",v")
  其输出形如:
   RCS file: /home/cvsroot/essp/essp2/crm/src/server/essp/crm/resources/application.properties,v
   Working file: src/server/essp/crm/resources/application.properties
   head: 1.1
   branch:
   locks: strict
   access list:
   symbolic names:
    V2_20060109: 1.1
    V1_6_0: 1.1
    V1_5_3: 1.1
    V1_5_2: 1.1
    V1_5_Branch: 1.1.0.2
    V1_5_1: 1.1
    V1_5_0: 1.1
    V1_4_0: 1.1
   keyword substitution: kv
   total revisions: 1; selected revisions: 1
   description:
   ----------------------------
   revision 1.1
   date: 2005/10/20 01:18:28;  author: rongxiao;  state: Exp;
   no message
   =============================================================================
   
  
  典型例子:cvs -d :pserver:huaxiao:huaxiao@as04.wh.wistronits.com:/home/cvsroot/essp log >E:/essp/T/cvs.log
  解释:
   在控制台上执行cvs log命令时 它会遍历当前目录的所有子目录,找出归cvs管辖的文件(实际是读取CVS/repository文件取得模块名),为其生成log
   所以,"当前目录"很重要(设想一下,如果同一个模块当前目录被checkout了2份,那么会生成2遍log)。
 
 4. 在wincvs中新增一个用户guest(也可以用于修改密码):
   cvs passwd -r administrator -a guest
  解释:cvs passwd  (passwd命令)
     -r administrator (administrator为已存在的"real"用户,注意是"real"用户,像用本命令生成的用户不是"real"用户。
           机器的管理员是一个"real"用户)
     -a guest (新增的用户)
  命令执行后会提示输入密码,输入:guest
  则新增成功。如果用户已存在,则相当于修改密码。
  
  本命令会在passwd文件中新增一行:
   guest:O0jupqWoOBDsU:administrator
  解释:用户名:加密后的密码:已存在的用户。  
  实际上直接操作passwd文件会有同样效果。
 5.为用户增加权限:
  (好像在4种新增的用户就有和已存在用户相同的权限了)
  修改writers和readers文件,将用户名新增进去即可。
 6.cvs馆中文件可以使用下面的keyword
   $Author$ 检入该版本的用户登录名。
   $Date$  该版本被检入的日期与时间(UTC)。
   $Header$ 标准的 header 包括 rcs 文件的全路径、版本号、日期(UTC)、作者、状态、加锁人(如果有锁)。在使用 cvs 中文件通常不用加锁。
   $Id$  除了 rcs 文件不包括路径,其余和 $Header$ 相同。
   $Name$  检出此文件所用的标签名。该关键字只在检出时显式加上标签时扩展。比如,运行 cvs co -r first 命令时,关键字扩展为 `Name: first'。
   $Locker$ 锁定版本的用户登录名(如果没有加锁此项为空,一般就如此,除非使用 cvs admin -l 加锁)。
   $Log$  日志信息在提交时提供,前面是一个 header 包括 rcs 文件名、版本号、作者、日期(UTC)。已有的日志信息不会被替换。相反,新日志信息将插在 $Log:...$之后。默认,每一新行前面使用同样的 $Log$ 关键字前的字符串, 除非在 CVSROOT/config 里面设置 MaxCommentLeaderLength。
      例如,文件文件包含:    
                  /* Here is what people have been up to:
                   *
                   * $Log: frob.c,v $
                   * Revision 1.1  1997/01/03 14:23:51  joe
                   * Add the superfrobnicate option
                   */
   $RCSfile$ 不带路径的 RCS 文件名。
   $Revision$ 该文件的修订版本号。
   $Source$ RCS 文件的完整路径。
   $State$
  在提交时,cvs会用实际值插入到keyword中比如:
   $Author$ 被替换成:$Author: administrator $
  无论keyword在哪,都会做替换。
  
    7. checkout命令:
            cvs -d :pserver:huaxiao:huaxiao@as04.wh.wistronits.com:/home/cvsroot/essp2 checkout -d essp2.2 -r HEAD
       命令会在当前目录下创建目录essp2.2(如果已存在,则会出现异常),然后将modul essp2的内容checkout到新建的essp2.2目录中去,注意在essp2.2下不会为modul essp2再创建essp2子目录。
    8. update命令:
            cvs update -P  参数‘-P’会清除空目录
            cvs update -d  参数'-d'会创建新目录
            cvs update -r 1.1 tc/build.xml     得到文件的1.1版本
    9. diff命令:
            cvs diff -r 1.6 -r 1.7 tc/build.xml    得到文件1.6和1.7版本的差异
        diff结果解读:
          1.修改时一般输出下面:
                236c237
                <     <jar destfile="${project.build}/applet/tc_client.jar">
                ---
                >     <jar destfile="${project.build}/applet/tc_client.jar" update="true" index="true">
            有多行不同时输出:
                238,240c239,240
                <         <include name="log4j.properties"/>
                <         <include name="c2s/essp/tc/**/*.*"/>
                <         <include name="client/essp/tc/**/*.*"/>
                ---
                >         <include name="c2s/**/*.*"/>
                >         <include name="client/**/*.*"/>
            "236c237" 即build.xml的1.6版本的236行与1.7版本的237行不同(注意顺序,一般是将高版本与低版本比较)
            "238,240c239,240" 即1.6版本的238行——240行于1.7版本的239行——240行不同
        2.新增时一般输出下面:
               233a234
                >
            注意尖括号的方向,'<'表示前一个比较文件(1.6版本),'<'表示后一个。这里是1.7版本的新增了行。
            上面输出表示1.7版本增加了一行234空行(相对1.6版本,从1.6版本的233行开始)。
        3.删除时一般输出下面
                247d246
                <     <copy todir="${project.web}/applet" file="${project.build}/applet/tc_client.jar" />
            注意尖括号的方向,这里是1.6版本的删除了行。
            表示1.6版本删除了一行247(相对1.7版本,从1.7版本的246行开始)。

29. 有意思的mail异常: 
 用mail.jar包发送邮件,然后用一个批处理来运行SendMail程序,发觉当所有jar(包括mail.jar, SendMail.class等所需的所有包)都打成一个jar时
    运行出错:javax.mail.NoSuchProviderException: No provider for smtp
    解决办法是将mail.jar单独出来,不和其他的打在一起。
    不知何故。

30. oracle
    1. orcale函数示例:
        将时间字段转字符串: to_char(b.datefrom,'yyyy')
        转为时间类型:      TO_DATE( '20060101', 'yyyyMMdd' )  ( to_date( to_char(b.datefrom,'yyyy'), 'yyyy') -->将时间字段的月日等去掉 )
        转为数字类型:      TO_NUMBER( , )
    2. insert into table1 ( rid ) select rid from table2
       将表table2的内容插入到table1中去,注意没有values关键字
    3. 导出数据: exp
essp/essp@essp_as04, 其中essp_as04为配置的服务名。
       导入数据: imp
essp/essp@essp_as04, 其中essp_as04为配置的服务名。
    4。删除表:drop table pms_ant;
       删除表及与它有外键关系的表: drop table pms_ant cascade constraints;
    5. exp命令参数:
        USERID: 运行导出命令的帐号的用户名/口令       
        BUFFEER: 用来取数据行的缓冲区的大小       
        FILE: 导出转储文件的名字       
        COMPRESS: 导出是否应该压缩有碎片的段成一个范围,这将会影响STORAGE子句       
        GRANTS: 导出时否要导出数据库对象上的授权
        INDEXES: 是否要导出表上的索引       
        ROWS: 是否应导出行。如它为‘N’,那么在导出文件中仅生成数据库对象的DDL       
        CONSSTRAINTS: 是否导出表旧的约定条件       
        FULL: 如设为‘Y’,那么将执行一个整个数据库导出操作       
        OWNER: 要导出的一系列数据库帐号,然后执行这些帐号的USER导出操作       
        TABLES: 要导出的一系列表;执行这些表的TABLE导出操作       
        RECORDLENGTH: 转储导出文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导出文件       
        INCTYPE: 正在执行的导出操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)       
        RECORD: 在增量导出类型中的一个标记,标明是否将日志存储到数据字典中日志导出的表中       
        PARFILE: 要传递给导出的参数文件的名字。这个文件将包含所有参数的入口项       
        ANALYZE: 标明是否将移对象的统计信息写入导出转储文件中       
        CONSISTENT: 标明是否保留所有导出对象的读取一致复制       
        LOG: 导出日志将要写入的文件的名字       
       
        实例: exp
essp/essp@essp_as04 file=essp_20060223_2.dmp log=essp_20060223.log tables=pms_ant,pms_activity

      imp命令参数:       
        USERID: 运行导入命令的帐号的用户名/口令       
        BUFFEER: 用来取数据行的缓冲区的大小       
        FILE: 导入转储文件的名字
        SHOW: 规定文件内容是否被显示,而不是被执行 (?不懂!)
        IGNORE: 标明在执行‘CREATE’命令时,是否忽略遇到的错误。如果正在导入的对象已经存在时,应使用这个参数
        FULL: 如设为‘Y’,那么将执行一个整个数据库导入操作       
        FROMUSER: 在FULL=N的情况下,才有参数。它是一系列的数据库帐号,其对象应从导出转储文件中读取       
        TOUSER: 一系列数据库帐号,导出转储文件扣的对象将要导入这些帐号
        GRANTS: 导入时否要导入数据库对象上的授权       
        INDEXES: 是否要导入表上的索引       
        ROWS: 是否应导入行。如它为‘N’,那么在导入文件中执行数据库对象的DDL       
        TABLES: 要导入的一系列表       
        RECORDLENGTH: 转储导入文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导入文件       
        INCTYPE: 正在执行的导入操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)       
        PARFILE: 要传递给导入的参数文件的名字。这个文件将包含所有参数的入口项
        ANALYZE: 标明是否将移对象的统计信息写入导入转储文件中       
        LOG: 导入日志将要写入的文件的名字       
        INDEXFILE: 不执行导入动作,只生成建索引的文本
    6.查出所有表: select table_name from user_tables
   
31: email :
        <mime-mapping>
              <extension>eml</extension>
              <mime-type>message/rfc822</mime-type>
            </mime-mapping>

32: visual studio's product id: 50021-111-1111111-54088
壹佰贰拾叁万肆仟伍佰陆拾柒元捌角玖分
 
http://ftp.sdshiyan.cn/soft/program/DN60ACHS2.rar

33:
    关于学C++, 我向你推荐一些书(当然能够结合课内项目实践更好):
        1。The C++ Programming Language(Bjarne Stroustrup)
        2。 Inside The C++ Object Model (Stanley B. Lippman) (这本书介绍一些C++的内部实现)
        3。 Advanced C++ Programming Styles And Idioms (James O. Coplien) (这本书介绍一些C++编程的习惯用法)
        4。 STL Tutorial and Reference Guide (David R. Musser) (Professor Musser 是我母校的教授,STL的创始人之一。这本书介绍Generic Programming 的思想和标准)。
        5。 Design Patterns (Erich Gamma) (很精典的面向对象设计的组件和实例)当然,看任何一本书的时候都要动手(试例程或做习题)。然后尝试着在课堂项目中把书中的方法试验一下,以加深印象。" 国外C++几乎所有的教材都被翻译为中文了,如果没有翻译的也已经有影印版出版。
        50  TCPL和D&E分别是《The C++ Programming Language》和《The Design and Evolution of C++》的简称,均出自Bjarne Stroustrup之手。说它们是C++语言圣经,并不为过。中文名称:《C++程序设计语言(特别版)》,机械工业出版社《C++语言的设计和演化》,机械工业出版社
        6. 入门教程 Stanley B.Lippman, Josee Lajoie, C++ Primer (3rd Edition) 《C++ Primer (3RD)中文版》,中国电力出版社
        7. Stanley B. Lippman, Essential C++ 《Essential C++中文版》,华中科技大学出版社
        8.《Essential C++(影印版)》,中国电力出版社
        9. 高效、健壮编程《Effective C++中文版》,华中科技大学出版社
        10.《More Effective C++中文版》,中国电力出版社
        11.《Exceptional C++中文版》,中国电力出版社
        12《More Exceptional C++中文版》,华中科技大学出版社模板和泛型编程
        13《C++ Templates全览(简体版)》,人民邮电出版社
        14《C++设计新思维:泛型编程与设计模式之应用》,华中科技大学出版社标准库
        15《C++标准程序库:自修教程与参考手册》,华中科技大学出版社
        16《Effective STL(影印版)》,中国电力出版社网络编程
        17《C++网络编程,卷1:运用ACE和模式消除复杂性》,华中科技大学出版社
        18《C++网络编程,卷2:基于 ACE 和框架的系统化复用》,电子工业出版社杂项
        19《C++编程思想(第2版)第1卷:标准C++导引》,机械工业出版社
        20《C++编程思想(英文版 第2版)》,机械工业出版社
        21《C++沉思录》,人民邮电出版社
        22《深度探索C++对象模型》,华中科技大学出版社
        23《深度探索C++对象模型(影印版)》,中国电力出版社
        24 C++工程领域的最高境界:《设计模式:可复用面向对象软件的基础》,机械工业出版社

34: 有意思的jbuilderX中设置tomcat4和tomcat5:
    在config server中,配置一个tomcat4.0时,一般情况下,只要指定一个tomcat的目录即可。其它的,比如启动jar(bootstrap.jar)/运行tomcat所需的jar(common/lib/serlet.jar)jbuilder都提供默认设置。
    配置server后,可以创建一个web module,使用tomcat4.0 server。运行此web时,jbuilder会做两件事:在工程目录下生成一个tomcat的临时目录,在其下生成config/server8080.xml和webapp/jb-test.xml两个文件。
    这两个文件即对应tomcat默认的server.xml和web.xml。
    对tomcat4.0来说,这一切都是对的,可以保证tomcat可以启起来。
    但对tomcat5.0却不行。如果配置的是tomcat5.0,jbuilder仍然认为它是一个tomcat4.0,这就会出现三个问题:
        1. serlet.jar在tomcat5.0中没有了,在jbuilder中不需要设置运行所需的Jar;
        2. 自动生成的server8080.xml中指定connect类为org.apache.coyote.tomcat4.CoyoteConnector,这个tomcat4没有了,要改成tomcat5
        3. jb-test.xml放在webapp下不起作用了。
    修改的办法是:1。将文件server8080.xml中的tomcat4该为tomcat5;2。将jb-test.xml的内容合并到server8080.xml中去。
    注意:修改server8080.xml时删除这一句话:"<!--This comment marks this file as generated, so it may be deleted and regenerated at any time. To preserve manual changes to this file, delete this comment.-->"


    jbuilder2005会正确识别tomcat4和tomcat5,并作正确的设置。