Eclipse中的快捷键
本文档从Eclipse软件上整理,是列出了标准的快捷键,未列出Emacs快捷键。
<如果忘记如下快捷键,可以使用Eclipse3.1中查看快捷键的使用方式:>CTRL+SHIFT+L
编辑
作用域 功能 快捷键
全局 查找并替换 Ctrl+F
文本编辑器 查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 内容辅助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信息 Alt+?
Java编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文本编辑器 增量逆向查找 Ctrl+Shift+J
全局 粘贴 Ctrl+V
全局 重做 Ctrl+Y
查看
作用域 功能 快捷键
全局 放大 Ctrl+=
全局 缩小 Ctrl+-
窗口
作用域 功能 快捷键
全局 激活编辑器 F12
全局 切换编辑器 Ctrl+Shift+W
全局 上一个编辑器 Ctrl+Shift+F6
全局 上一个视图 Ctrl+Shift+F7
全局 上一个透视图 Ctrl+Shift+F8
全局 下一个编辑器 Ctrl+F6
全局 下一个视图 Ctrl+F7
全局 下一个透视图 Ctrl+F8
文本编辑器 显示标尺上下文菜单 Ctrl+W
全局 显示视图菜单 Ctrl+F10
全局 显示系统菜单 Alt+-
导航
作用域 功能 快捷键
Java编辑器 打开结构 Ctrl+F3
全局 打开类型 Ctrl+Shift+T
全局 打开类型层次结构 F4
全局 打开声明 F3
全局 打开外部javadoc Shift+F2
全局 打开资源 Ctrl+Shift+R
全局 后退历史记录 Alt+←
全局 前进历史记录 Alt+→
全局 上一个 Ctrl+,
全局 下一个 Ctrl+.
Java编辑器 显示大纲 Ctrl+O
全局 在层次结构中打开类型 Ctrl+Shift+H
全局 转至匹配的括号 Ctrl+Shift+P
全局 转至上一个编辑位置 Ctrl+Q
Java编辑器 转至上一个成员 Ctrl+Shift+↑
Java编辑器 转至下一个成员 Ctrl+Shift+↓
文本编辑器 转至行 Ctrl+L
搜索
作用域 功能 快捷键
全局 出现在文件中 Ctrl+Shift+U
全局 打开搜索对话框 Ctrl+H
全局 工作区中的声明 Ctrl+G
全局 工作区中的引用 Ctrl+Shift+G
文本编辑
作用域 功能 快捷键
文本编辑器 改写切换 Insert
文本编辑器 上滚行 Ctrl+↑
文本编辑器 下滚行 Ctrl+↓
文件
作用域 功能 快捷键
全局 保存 Ctrl+S
全局 打印 Ctrl+P
全局 关闭 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部关闭 Ctrl+Shift+F4
全局 属性 Alt+Enter
全局 新建 Ctrl+N
项目
作用域 功能 快捷键
全局 全部构建 Ctrl+B
源代码
作用域 功能 快捷键
Java编辑器 格式化 Ctrl+Shift+F
Java编辑器 取消注释 Ctrl+\
Java编辑器 注释 Ctrl+/
Java编辑器 添加导入 Ctrl+Shift+M
Java编辑器 组织导入 Ctrl+Shift+O
运行
作用域 功能 快捷键
全局 单步返回 F7
全局 单步跳过 F6
全局 单步跳入 F5
全局 单步跳入选择 Ctrl+F5
全局 调试上次启动 F11
全局 继续 F8
全局 使用过滤器单步执行 Shift+F5
全局 添加/去除断点 Ctrl+Shift+B
全局 显示 Ctrl+D
全局 运行上次启动 Ctrl+F11
全局 运行至行 Ctrl+R
全局 执行 Ctrl+U
重构
作用域 功能 快捷键
全局 撤销重构 Alt+Shift+Z
全局 抽取方法 Alt+Shift+M
全局 抽取局部变量 Alt+Shift+L
全局 内联 Alt+Shift+I
全局 移动 Alt+Shift+V
全局 重命名 Alt+Shift+R
全局 重做 Alt+Shift+Y
I. 第一章 目录及文件操作命令
A. 1.1 ls
[语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]
[说明]: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出顺序为纵向按字符顺序排列。
-R 递归地列出每个子目录的内容
-a 列出所有文件,包括第一个字符为“.”的隐藏文件
-d 若后面参数是目录,则只列出目录名而不列出目录内容,常与-l选项连
用以显示目录状态。
-C 输出时多列显示
-x 横向按字符顺序排列
-m 输出按流式格式横向排列,文件名之间用逗号(,)分隔
-l 长列表输出,显示文件详细信息,每行一个文件,从左至右依次是:
文件存取模式 链接数 文件主 文件组 文件字节数 上次修改时间
其中文件存取模式用10个字母表示,从左至右的意义如下:
第一个字母表示文件种类,可以是以下几种情况:
d 为目录文件
l 为链接
b 为块文件
c 为字符型文件
p 为命名管道(FIFO)
- 为普通文件
后面9个字母分别表示文件主、同组用户、其他用户对文件的权力,用r表示可读,w 表示可写,x 表示可执行。如果是设备文件,则在文件字节数处显示:主设备 从设备。
-n 与-l选项相同,只是文件主用数字(即UID)显示,文件组用数字
(即GID)表示
-o 与-l选项相同,只是不显示文件组
-g 与-l选项相同,只是不显示文件主
-r 逆序排列
-t 按时间顺序排列而非按名字
-u 显示时间时使用上次访问时间而非上次修改时间
-c 显示时间时使用上次修改i节点时间而非上次修改时间
-p 若所列文件是目录文件,则在其后显示斜杠(/)
-F 在目录文件后加’/’,在可执行文件后加’*’
-b 文件名中若有非打印字符,则用八进制显示该字符
-q 文件名中的打印字符用’?’表示
-i 显示节点号
-s 显示文件长度时使用块长度而非字节长度
-f 将后面的参数解释为目录并列出其中的每一项
-1 每行仅列一项
[例子]:
ls 列出当前目录下的文件
ls -al /bin 以长列表的形式列出目录 /bin 下的所有文件,包括隐藏文件
B. 1.2 pwd
[语法]: pwd
[说明]: 本命令用于显示当前的工作目录
[例子]:
pwd 显示出当前的工作目录
C. 1.3 cd
[语法]: cd [目录]
[说明]:本命令用于改变当前的工作目录,无参数时使用环境变量$HOME 作为其参数,$HOME 一般为注册时进入的路径。
[例子]:
cd 回到注册进入时的目录
cd /tmp 进入 /tmp 目录
cd ../ 进入上级目录
D. 1.4 mkdir
[语法]: mkdir [-m 模式] [-p] 目录名
[说明]: 本命令用于建立目录,目录的存取模式由掩码(umask)决定,要求对其父目录具有写权限,目录的UID和GID为实际UID和GID
-m 按指定存取模式建立目录
-p 建立目录时建立其所有不存在的父目录
[例子]:
mkdir tmp 在当前目录下建立子目录 tmp
mkdir -m 777 /tmp/abc 用所有用户可读可写可执行的存取模式
建立目录 /tmp/aaa ,存取模式参看命令 chmod
mkdir -p /tmp/a/b/c 建立目录 /tmp/a/b/c ,若不存在目录 /tmp/a
及/tmp/a/b 则建立之
E. 1.5 rmdir
[语法]: rmdir [-p] [-s] 目录名
[说明]: 本命令用于删除目录
-p 删除所有已经为空的父目录
-s 当使用-p 选项时,出现错误不提示
[例子]:
rmdir /tmp/abc 删除目录 /tmp/abc
rmdir -p /tmp/a/b/c 删除目录 /tmp/a/b/c ,若目录 /tmp/a /b
及/tmp/a 空,则删除
F. 1.6 cat
[语法]: cat [-u] [-s] [-v[-t] [-e]] 文件...
[说明]: 显示和连接一个或多个文件至标准输出
-u 无缓冲的输出(缺省为有缓冲输出)
-s 对不存在的文件不作提示
-v 显示出文件中的非打印字符,控制字符显示成^n ,n为八进制数字,
其他非打印字符显示成M-x , x 为该字符低7位的8进制数值
-t 在使用-v 选项时,将制表符(tab) 显示成 ^I,将换页符
(formfeed)显示成 ^ L
-e 在使用-v 选项时,在每一行的行尾显示 $
[例子]:
cat file 显示文件
cat -s -v -e file1 file2 file3 逐个显示文件 file1 file2 file3
G. 1.7 head
[语法]: head [-n] [文件 ...]
[说明]: 将文件的头n 行显示输出,缺省值为 10 行,显示多个文件时,在每个文件的前面加上 ==> 文件名 <==
[例子]:
head -9999 file1 file2 显示文件 file1 和 file2 的头 9999 行
H. 1.8 more
[语法]: more [-cdflrsuw] [- 行数] [+ 行数] [+ / 模式 ] [ 文件 ... ]
[说明]: 将文件显示在终端上,每次一屏,在左下部显示 --more--,若是从文件读出而非从管道,则在后面显示百分比,表示已显示的部分,按回车键则上滚一行,按空格键则上滚一屏,未显示完时可以使用more 命令中的子命令。
-c 显示文件之前先清屏
-d 当输错命令时显示错误信息而不是响铃(bell)
-f 不折叠显示长的行
-l 不将分页控制符(CTRL D)当作页结束
-r 一般情况下,more 不显示控制符,本选项使more 显示控制符,
例如,将 (CTRL C) 显示成 ^ C
-s 将多个空行转换成一个空行显示
-u 禁止产生下划线序列
-w 一般情况下 more 显示完后立即推出,本选项在显示完后作提
示,敲任意键后推出
-n 行数 指定每屏显示的行数
+ 行号 从指定行号开始显示
+/模式 在文件中搜索指定模式,从模式出现行的上两行开始显示 文件未显示完时,可以使用more 命令中的子命令,命令中除了! 和 / 以外均不回显,也不用敲回车,当命令破坏 more 提示行时,可用退格键恢复提示行。在以下子命令操作中,i 表示数字,缺省值为 1。
i 空格 上滚一屏多 i 行
i 回车 上滚 i 行
i CTRL+D i 缺省时上滚 11 行,否则上滚 i 行
id i 缺省时上滚 11 行,否则上滚 i 行
iz i 缺省时上滚一屏,否则定义每屏为 i 行
is 跳过 i 行后显示一屏
if 跳过 i 屏后显示一屏
i CTRL+B 跳回 i 屏后显示一屏
b 跳回 一屏后显示一屏
q 或 Q 推出 more
= 显示当前行号
v 从当前行开始编辑当前文件编辑器由环境变量
$EDITOR定义
h 显示帮助信息
i / 模式 向前搜索,直至模式的第 i 次出现 , 从该行的上 两行开始显示一屏
in 向前搜索,直至上一模式的第 i 次出现 , 从该行 的上两行开始显示一屏
单引号 回到上次搜索的出发点,若无搜索则回到开始位置
! 命令 激活一个sh 去执行指定的命令
i : n 跳到后面第 i 个文件,若不存在则跳到最后一个文件
:f 显示当前文件名和行号
:q 或 :Q 推出 more
. (点) 重复上次命令
[ 例子]:
more -c +50 file 清屏后,从第50行开始显示文件 file
more -s -w file1 file2 file3 显示文件 file1 file2 file3
I. 1.9 cp
[语法]: cp [ -p ] [ -r ] 文件 1 [ 文件 2 ...] 目标
[说明]: 将文件1(文件2 ...)拷贝到目标上,目标不能与文件同名, 若目标是文件名,则拷贝的文件只能有一个,若目标是目录, 则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。
- i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
- p 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表, 但不拷贝
UID 及 GID
- r 若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时
目标必须为目录
[例子]:
cp file1 file2 将文件 file1 拷贝到文件 file2
cp file1 file2 /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下
cp -r /tmp /mytmp 将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp
J. 1.10 mv
[语法]: mv [-f] [-i] 文件1 [文件2...] 目标
[说明]: 将文件移动至目标,若目标是文件名,则相当于文件改名
- i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
- f 覆盖前不作任何提示
[例子]:
mv file1 file2 将文件 file1 改名为 file2
mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录 /tmp 下
K. 1.11 rm
[语法]: rm [-f] [-i] 文件...
或 rm -r [-f] [-i] 目录名... [文件]
[说明]: 用来删除文件或目录
- f 删除文件时不作提示
- r 递归地删除目录及其所有子目录
- i 删除文件之前先作提示
[例子]:
rm file1 删除文件 file1
rm -i /tmp/* 删除目录 /tmp 下的所有文件
rm -r /mytmp 递归地删除目录 /mytmp
L. 1.12 chmod
[语法]: chmod [-R] 模式 文件...
或 chmod [ugoa] {+|-|=} [rwxst] 文件...
[说明]: 改变文件的存取模式,存取模式可表示为数字或符号串,例如:
chmod nnnn file , n为0-7的数字,意义如下:
4000 运行时可改变UID
2000 运行时可改变GID
1000 置粘着位
0400 文件主可读
0200 文件主可写
0100 文件主可执行
0040 同组用户可读
0020 同组用户可写
0010 同组用户可执行
0004 其他用户可读
0002 其他用户可写
0001 其他用户可执行
nnnn 就是上列数字相加得到的,例如 chmod 0777 file 是指将文件 file 存取权限置为所有用户可读可写可执行。
-R 递归地改变所有子目录下所有文件的存取模式
u 文件主
g 同组用户
o 其他用户
a 所有用户
+ 增加后列权限
- 取消后列权限
= 置成后列权限
r 可读
w 可写
x 可执行
s 运行时可置UID
t 运行时可置GID
[例子]:
chmod 0666 file1 file2 将文件 file1 及 file2 置为所有用户可读可写
chmod u+x file 对文件 file 增加文件主可执行权限
chmod o-rwx 对文件file 取消其他用户的所有权限
M. 1.13 chown
[语法]: chown [-R] 文件主 文件...
[说明]: 文件的UID表示文件的文件主,文件主可用数字表示, 也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。
-R 递归地改变所有子目录下所有文件的存取模式
[例子]:
chown mary file 将文件 file 的文件主改为 mary
chown 150 file 将文件 file 的UID改为150
N. 1.14 chgrp
[语法]: chgrp [-R] 文件组 文件...
[说明]: 文件的GID表示文件的文件组,文件组可用数字表示, 也可用一个有效的组名表示,此命令改变一个文件的GID,可参看chown。
-R 递归地改变所有子目录下所有文件的存取模式
[例子]:
chgrp group file 将文件 file 的文件组改为 group
1.15 cmp
[语法]: cmp [-l] [-s] 文件1 文件2
[说明]: 比较两个文件,若文件1 为 "-" ,则使用标准输入, 两个文件相同则无提示,不同则显示出现第一个不同时的字符数和行号。
-l 显示每个不同处的字节数(10进制)和不同的字节(8进制)
-s 不作任何提示,只返回码
[例子]:
cmp file1 file2 比较文件 file1 和 file2
cmp -l file1 file2 比较文件file1 和 file2 的每处不同
O. 1.16 diff
[语法]: diff [-be] 文件1 文件2
[说明]: 本命令比较两个文本文件,将不同的行列出来
-b 将一串空格或TAB转换成一个空格或TAB
-e 生成一个编辑角本,作为ex或ed的输入可将文件1转换成文件2
[例子]:
diff file1 file2
diff -b file1 file2
diff -e file1 file2 >edscript
P. 1.17 wc
[语法]: wc [-lwc] 文件...
[说明]: 统计文件的行、字、字符数,若无指定文件,则统计标准输入
-l 只统计行数
-w 只统计字数
-c 只统计字符数
[例子]:
wc -l file1 file2 统计文件file1和file2 的行数
Q. 1.18 split
[语法]: split [-n] [ 文件 [名字]]
[说明]: split 将指定大文件分解为若干个小文件,每个文件长度为n行(n 缺省时为1000),第一个小文件名为指定的名字后跟aa,直至zz,名字缺省值为x,若未指定大文件名,则使用标准输入
[例子]:
split -500 largefile little
将文件largefile 每500行写入一个文件,第一个文件名为littleaa
R. 1.19 touch
[语法]: touch [-amc] [mmddhhmm[yy]] 文件...
[说明]: 将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建的文件。
-a 只改变访问时间
-m 只改变修改时间
-c 若文件不存在,不创建它且不作提示
mmddhhmm[yy] 两位表示 月日时分[年]
[例子]:
touch file
更新文件file的时间
touch 0701000097 HongKong
将文件HongKong的时间改为97年7月1日0时0分
S. 1.20 file
[语法]: file [-f 文件名文件] 文件...
[说明]: file 对指定文件进行测试,尽量猜测出文件类型并显示出来
-f 文件名文件 文件名文件是一个包含了文件名的文本文件, -f 选项测试
文件名文件中所列出的文件
[例子]:
file * 显示当前目录下所有文件的类型
T. 1.21 pack
[语法]: pack 文件...
[说明]: pack 将指定文件转储为压缩格式,文件名后加 ".z ", 文件存取模式,访问时间,修改时间等均不变
[例子]:
pack largefile 将largefile 压缩后转储为largefile.z
U. 1.22 pcat 显示压缩文件
[语法]: pcat 文件...
[说明]: pcat 显示输出压缩文件
[例子]:
pcat largefile.z 显示压缩前的largefile
pcat largefile.z > oldfile 显示压缩前的laregfile,并将其重定向到
文件oldfile中
V. 1.23 unpack
[语法]: unpack 文件...
[说明]: 将压缩后的文件解压后转储为压缩前的格式
[例子]:
unpack largefile.z 将压缩文件largefile.z解压后转储为largefile
W. 1.24 find
[语法]: find 路径名... 表达式
[说明]: find 命令递归地遍历指定路径下的每个文件和子目录,看该文件是否能使表达式值为真,以下 n 代表一个十进制整数,+n 代表打印 n , -n 代表小于 n ,下面是合法表达式说明:
-name 模式 文件名与模式匹配则为真,(\ 为转意符)
-perm [-]八进制数 文件存取模式与八进制数相同则为真若有- 选项,则文件存
取模式含有八进制数规定模式即为真
-size n[c] 文件块长度为 n 则真(一块为512字节),若
有c 选项,则文件字节长度为 n 则真
-atime n 若文件的最近访问时间为 n 天前则为真,
find 命令将改变其访问的目录的访问时间
-mtime n 若文件的最近修改时间为 n 天前则为真
-ctime n 若文件状态为 n 天前改变则为真
-exec 命令 { }\; 若命令返回值为0则真,{ }内为命令参数,
此命令必须以 \; 为结束
-ok 命令 { }\; 与 exec 相同,只是在命令执行前先提示,若
回答 y 则执行命令
-print 显示输出使表达式为真的文件名
-newer 文件 若文件的访问时间比newer 指定的文件新则真
-depth 先下降到搜索目录的子目录,然后才至其自身
-mount 仅查找包含指定目录的文件系统
-local 文件在当前文件系统时为真
-type c 文件类型为 c 则真,c 取值可为 b(块文件) c (字符文件)
d(目录) l (符号链接) p (命名管道) f (普通文件)
\( 表达式 \) 表达式为真则真
-links n 文件链接数为 n 时为真
-user 用户 当文件属于用户时为真,用户可用数字表示UID
-nouser 当文件不属于 /etc/passwd 中的一个用户时为真
-group 文件组 当文件属于文件组时为真,文件组可用数字表示GID
-nogroup 当文件不属于 /etc/group 中的一个组时为真
-fstype 类型 当文件所属文件系统类型为指定类型时真
-inum n 当文件 i 节点号为 n 时为真
-prune 当目录名与模式匹配时,不再搜索其子目录
可以用逻辑操作符将简单表达式连接成复杂表达式
逻辑操作符有 ! 表示非操作, -o 表示或操作,两个表达式并列则表示
与操作
[例子]:
find / -name find* -print
从根目录开始搜索文件名如 find* 的文件并显示之
find ./ -exec sleep{1}\; -print
每秒显示一个当前目录下的文件
find $HOME \(-name a.out -o -name '*.o' \) -atime +7 -exec rm {} \;
从$HOME目录开始搜索,删除所有文件名为a.out 或 *.o 且访问时间在7天前的文件
X. 1.25 grep
[语法]: grep [选项] 模式 [文件...]
[说明]: 在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号(') 中,若指定文件为缺省,则使用标准输入,正规表达式可以是:
. 匹配任意一个字符
* 匹配0个或多个*前的字符
^ 匹配行开头
$ 匹配行结尾
[] 匹配[ ]中的任意一个字符,[]中可用 - 表示范围,
例如[a-z]表示字母a 至z 中的任意一个
\ 转意字符
命令中的选项为:
-b 显示块号
-c 仅显示各指定文件中包含模式的总行数
-i 模式中字母不区分大小写
-h 不将包含模式的文件名显示在该行上
-l 仅显示包含模式的文件名
-n 显示模式所在行的行号
-s 指定文件若不存在或不可读,不提示错误信息
-v 显示所有不包含模式的行
[例子]:
grep 'good' * 在所有文件中搜索含有字符串 good 的行
grep '^myline' mytext 在文件mytext中搜索行首出现myline字符串的行
摘要: 一个叫随时问的流程,写个总结.相当长,相信你有耐心看完!哈哈嘻嘻!先画个流程图吧:
web端ajax,java,jsp流程图
先来写个.js,叫webask.js/** * Send the data to server */function XmlHttpSend(url, method, params, asyn){ var headers = ne...
阅读全文
别让爱成为一种伤害 [转]
如果你不爱一个人,请放手,好让别人有机会爱她;如果你爱的人放弃了你,请放开自己,好让自己有机会爱别人。
有的东西你再喜欢也不会属于你的,有的东西你再留恋也注定要放弃的,人生中有许多种爱,但别让爱成为一种伤害。
有些缘分是注定要失去的,有些缘分是永远都不会有好结果的,爱一个人不一定要拥有,但拥有一个人就一定要好好的去爱他。
如果真诚是一种伤害,我选择谎言;如果谎言是一种伤害,我选则沉默;如果沉默是一种伤害,我选择离开;如果失去是苦,你怕不怕付出;如果迷乱是苦,你会不会选择结束;如果追求是苦,你会不会选择执迷不悟;如果分离是苦,你要向谁倾诉,好多事情都是后来才看清楚,好多事情当时一点也不觉得苦,然而我已经找不到来时的路。
有一种爱,明明是深爱,却说不出来。有一种爱,明明想放弃,却无法放弃。有一种爱,明知是煎熬,却又躱不开。有一种爱,明知无前路,心却早已收不回来
爱不是游戏是真心的付出,要忘记真的做不到。不管归处是哪里,我想都应该在心底留一份纯真的美好。从来没有轻易对别人动心,突然发现自己深深爱上了,那种滋味真是难以用言语表达,是喜悦?是悲哀?怎能忘记,难道爱说收救收的回吗?可以的话也不叫爱了。
我常常有如此的感慨,也许爱情只是因为寂寞需要找一个人来爱,即使没有任何结局。可是爱为什么如此脆弱?有时它易碎的程度比玻璃还容易。它又如此的坚强,坚强到即使把自己弄到遍体鳞伤,依然痴痴的爱着,从不后悔。爱可以是一瞬间的事情也可以是一辈子的事情。每个人都可以在不同的时间爱上不同的人。为什么我的爱就这么难了?我也不知道谁离开了谁就无法生活,可是要真正的遗忘是一件忘难的事情,也许正因为如此我才不够坚强。
世事难料,其实凡事都是在它适当的时候降临,只是我们没有适当的心情去迎接它或是没在意。因为爱所以放弃。听起来这句话很伟大,很洒脱,可是有谁为了爱真正的能够离开了?也许你能,我却不能真正做到轻易的放弃。尽管有些感情如此直接残酷,容不下任何迂回曲折的温暖。有些东西你再喜欢也不会属于你的,有的东西你再留意也注定要放弃的。爱是人生中一道永远唱不完的歌。人生中也许会经历许多种爱,但千万别让爱成为一种伤害
看完后,感觉怎样?
呵呵
忽然想起,看过这样的一段话:
人的一生有三次恋爱:
一次:你喜欢的人,而那人不喜欢你;
一次:喜欢你的人,而你不喜欢;
一次,彼此都喜欢
当然得相信可以找到彼此喜欢的人,呵呵!
以上纯属因为感觉有点内容,并不代表我个人此时的心情,呵
最近测试环境的imformix数据库换了个demo,经常出现:
java.sql.SQLException: Cannot create an user thread. On NT check username, and IXUSERS group.
只要有二个连接:dbaccess就会抛出:
java.sql.SQLException: Cannot create an user thread. On NT check username, and IXUSERS group.
共用测试环境技术总监配,真不知道他为啥要用这个demo!
当出现抛出异常时只好重启tomcat,再不行,把有相关的线程kill再重启了
(有点无耐)
顺便记下:
informix表被锁定时,解决方法
(在informix用户下)
onstat -g ses(查看哪些占了表进程)
onmode -z session id (杀session id)
若还不能解决问题,那你得看下日志文件是否满了.(曾经就有碰过,还浪费了很长时间去检查
程序....)
1. ORACLE
Select * FROM TABLE1 Where ROWNUM<=N
2. INFORMIX
Select FIRST N * FROM TABLE1 where 1=1
3. MYSQL
Select * FROM TABLE1 where 1=1 LIMIT N
(以上三种是俺工作中用到的数据库)
4. DB2
Select * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM Where ROWNUM<=N
或者
Select COLUMN FROM TABLE where 1=1 FETCH FIRST N ROWS ONLY
5. SQL SERVER
Select TOP N * FROM TABLE1 where 1=1
or
SET ROWCOUNT N Select * FROM TABLE1 where 1=1 SET ROWCOUNT N1
6. SYBASE
SET ROWCOUNT N Select * FROM TABLE1 where 1=1 SET ROWCOUNT N1
7. FOXPRO
Select * TOP N FROM TABLE orDER BY COLUMN
8. ACCESS
Select TOP N * FROM TABLE1 where 1=1
遇到TOMCAT出错:java.lang.OutOfMemoryError: Java heap space,于是查了资料,找到了解决方法:
If Java runs out of memory, the following error occurs:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Java heap size can be increased as follows:
java -Xms<initial heap size> -Xmx<maximum heap size>
Defaults are:
java -Xms32m -Xmx128m
如果你用win
/tomcat/bin/catalina.bat 加上下面的命令:
set JAVA_OPTS=-Xms32m -Xmx256m
如果你用unix/linux
/tomcat/bin/catalina.sh 加上下面的命令:
JAVA_OPTS="-Xms32m -Xmx256m"
发现现在每次考试都是临时抱佛脚了!
21号下午考操作系统:书本都没翻开过,想着就凭在学校有学过瞒去试下,打开试卷才知道错了:看过去,没有一题有把握的,呵!
还是赶紧签上了大名,说明有报到过了,呵!
这一幕也让我知道,22号早上的概率论与数理统计,还得回去好好准备,决定22号晚上通宵(有可能吗,能读到凌晨2点就很不错了,因为知道自己是受不了通宵的,呵)!
就凭这样能行吗,赶紧到厦大西村下车,买点吃的东东回去,晚上想睡觉了就吃点零食可能会抵挡下!
到安德鲁生店去吧,选了个切片面包,还有个小东东,不知叫什么.(买单时那收银员的服务态度,让我深感悲哀!)
因为中午没休息,到12点时就觉得很困了,真糟糕!
面包,面包,在哪?塞了几口,喝水!(哇!这两天很没味口,有可能天气的原因吧,人也感觉不大舒服.)
休息会,走动走动.....(床头,床尾;床尾,床头.绕了几圈.宿舍太小了,没办法,呵呵:) )
还是赶紧把最后两章再复习下,就可以睡...........觉................啦
当然看完课本,还把二份试卷浏览浏览!
1点20几分了,考试工具整理完,洗牙刷脸(记得当时就是先拿了脸盆的,呵呵!)
oh,my gad!我又迟到了!(虽然上班,迟到是我的专利(目前好多了!), 可这考试可万万迟到不得!
紧张过后,赶紧把试卷浏览一下,感觉没什么,都有了思路了!松了口气!
begin 埋头苦干解答题目...........
suddenly 有人要交差了...哇!不会时间要到了吧?
老师回答:还有一个多钟头.
检查再检查一遍,不能再出现:1/4 * 1/2 = 1/4哟!
总的感觉还不错,就怕加减算法结果错了,发现现在口算那真的笨得要命咯......
期待结果ing
忽然收到阿甘的mail:收工,做事去.............
Char Dec Oct Hex | Char Dec Oct Hex | Char Dec Oct Hex | Char Dec Oct Hex
-----------------------------------------------------------------------------------
(nul) 0 0000 0x00 | (sp) 32 0040 0x20 | @ 64 0100 0x40 | ` 96 0140 0x60
(soh) 1 0001 0x01 | ! 33 0041 0x21 | A 65 0101 0x41 | a 97 0141 0x61
(stx) 2 0002 0x02 | " 34 0042 0x22 | B 66 0102 0x42 | b 98 0142 0x62
(etx) 3 0003 0x03 | # 35 0043 0x23 | C 67 0103 0x43 | c 99 0143 0x63
(eot) 4 0004 0x04 | $ 36 0044 0x24 | D 68 0104 0x44 | d 100 0144 0x64
(enq) 5 0005 0x05 | % 37 0045 0x25 | E 69 0105 0x45 | e 101 0145 0x65
(ack) 6 0006 0x06 | & 38 0046 0x26 | F 70 0106 0x46 | f 102 0146 0x66
(bel) 7 0007 0x07 | ' 39 0047 0x27 | G 71 0107 0x47 | g 103 0147 0x67
(bs) 8 0010 0x08 | ( 40 0050 0x28 | H 72 0110 0x48 | h 104 0150 0x68
(ht) 9 0011 0x09 | ) 41 0051 0x29 | I 73 0111 0x49 | i 105 0151 0x69
(nl) 10 0012 0x0a | * 42 0052 0x2a | J 74 0112 0x4a | j 106 0152 0x6a
(vt) 11 0013 0x0b | + 43 0053 0x2b | K 75 0113 0x4b | k 107 0153 0x6b
(np) 12 0014 0x0c | , 44 0054 0x2c | L 76 0114 0x4c | l 108 0154 0x6c
(cr) 13 0015 0x0d | - 45 0055 0x2d | M 77 0115 0x4d | m 109 0155 0x6d
(so) 14 0016 0x0e | . 46 0056 0x2e | N 78 0116 0x4e | n 110 0156 0x6e
(si) 15 0017 0x0f | / 47 0057 0x2f | O 79 0117 0x4f | o 111 0157 0x6f
(dle) 16 0020 0x10 | 0 48 0060 0x30 | P 80 0120 0x50 | p 112 0160 0x70
(dc1) 17 0021 0x11 | 1 49 0061 0x31 | Q 81 0121 0x51 | q 113 0161 0x71
(dc2) 18 0022 0x12 | 2 50 0062 0x32 | R 82 0122 0x52 | r 114 0162 0x72
(dc3) 19 0023 0x13 | 3 51 0063 0x33 | S 83 0123 0x53 | s 115 0163 0x73
(dc4) 20 0024 0x14 | 4 52 0064 0x34 | T 84 0124 0x54 | t 116 0164 0x74
(nak) 21 0025 0x15 | 5 53 0065 0x35 | U 85 0125 0x55 | u 117 0165 0x75
(syn) 22 0026 0x16 | 6 54 0066 0x36 | V 86 0126 0x56 | v 118 0166 0x76
(etb) 23 0027 0x17 | 7 55 0067 0x37 | W 87 0127 0x57 | w 119 0167 0x77
(can) 24 0030 0x18 | 8 56 0070 0x38 | X 88 0130 0x58 | x 120 0170 0x78
(em) 25 0031 0x19 | 9 57 0071 0x39 | Y 89 0131 0x59 | y 121 0171 0x79
(sub) 26 0032 0x1a | : 58 0072 0x3a | Z 90 0132 0x5a | z 122 0172 0x7a
(esc) 27 0033 0x1b | ; 59 0073 0x3b | [ 91 0133 0x5b | { 123 0173 0x7b
(fs) 28 0034 0x1c | < 60 0074 0x3c | \ 92 0134 0x5c | | 124 0174 0x7c
(gs) 29 0035 0x1d | = 61 0075 0x3d | ] 93 0135 0x5d | } 125 0175 0x7d
(rs) 30 0036 0x1e | > 62 0076 0x3e | ^ 94 0136 0x5e | ~ 126 0176 0x7e
(us) 31 0037 0x1f | ? 63 0077 0x3f | _ 95 0137 0x5f | (del) 127 0177 0x7f
ASCII Name | Description | C Escape Sequence |
nul |
null byte |
\0 |
bel |
bell character |
\a |
bs |
backspace |
\b |
ht |
horizontal tab |
\t |
np |
formfeed |
\f |
nl |
newline |
\n |
cr |
carriage return |
\r |
vt |
vertical tab |
|
esc |
escape |
|
sp |
space |
用java程序写
char c = '\r';
int iAscii = c;//强制类型转换
System.out.println("iAscii:"+iAscii);
曾经有写过一:会议通让我欢喜让我忧!
那会也是经过百般磨练才把问题搞定了!
昨天产品部提了个BUG说:创建临时会议时,一直提示会议还没开始!
做程序的,首先就想到是程序哪出错了,开始打开久违的VC.NET工作区
很值得幸运的是:工作区可以正常编译运行!(真怕出现刚刚的错误:无缘无故编译出错,编译不了!)
开始了程序的BUG跟踪,跟出了是一个view查不到对应的meetid记录
(数据库是sqlserver2k的,在一台虚拟机上,只好请网管的帮我先view记录值,导出记录里是有对应meetid记录的,可为啥就是得不到呢?)
想到了:执行完sql没有commit()??
看完了程序:有commit呀!
怪了怪了!
决定在自己机子上安装sqlsever2k(之前都是用oracle,mysql)
sqlserver2k那个大呀,等安装完了,一天过去了,下班回家了!
回到宿舍,还想着怎么就搞不明白为啥呢???
忽然想到,时间不一致,因为在程序里是MeetStartTime= DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + " " + DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second;
而在view时是取得数据库的当前时间:GETDATE()
今早来了,让网管同事到数据库和web端服务器确认下时间是否一致
结果知道了:还真的是数据库慢了2分钟..........................
赶紧把时间调一致,试下,可以了..............
无语...................
(在此得谢谢那网管同事,感觉他很是害羞,搞得我很是不好意思麻烦他了,呵呵!谢谢啦:) )
最后决定把在insert meet时直接取GETDATE()时间,加个方法,以免原有程序还有调用这个方法
写完,编译,啊.............怎么出这么多错.............
编译不过,晕!
请了下班网同事(他们是用VC.NET做的,而俺都是用eclipse)帮忙看看
30分钟过去了,还是不行..........
也有点为难他了...........
算了,先不管了....................
(这样的事,昨天也是有碰到的,后来关了开了编译了;不行,再重复,忽然可以了,呵呵,喜从天降的感觉!呵!)
现在可以用就行了.
明天再试试,能否编译通过............
若你有碰到过忽然编译不了,用了什么解决办法,麻烦告之!先谢了!
<script language="javascript">
function CopyCode(key)
{
var divElements = document.getElementsByTagName("div");
var i;
occur = 0;
for(i = 0; i < divElements.length; ++i)
{
if(key.parentElement.parentElement.parentElement == divElements[i].parentElement)
{
if(occur == 1)
{
if(navigator.appName.indexOf('Microsoft') != -1)
copyToClipboard(divElements[i].innerText);
else
copyToClipboard(Html2Txt(divElements[i].innerHTML));
}
occur++;
}
}
}
function Html2Txt(htmlText)
{
str = htmlText.replace(/\r\n/g, " ");
str = str.replace(/\r/g, " ");
str = str.replace(/\n/g, " ");
str = str.replace(/\t/g, "");
str = str.replace(/<BR>/gi,"\r\n");
str = str.replace(/<[^>]+?>/g,"");
str = str.replace(/ /g, " ");
str = str.replace(/>/g, ">");
str = str.replace(/</g, "<");
str = str.replace(/&/g, "&");
return str;
}
function copyToClipboard(txt)
{
if(window.clipboardData)
{
window.clipboardData.clearData();
window.clipboardData.setData("Text", txt);
}
else if(navigator.userAgent.indexOf("Opera") != -1)
{
window.location = txt;
}
else if (window.netscape)
{
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e)
{
alert("您的firefox安全限制限制您进行剪贴板操作,请在地址栏中输入“about:config”将“signed.applets.codebase_principal_support”设置为“true”之后重试");
return false;
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = txt;
str.data = copytext;
trans.setTransferData("text/unicode",str,copytext.length*2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans,null,clipid.kGlobalClipboard);
}
}
</script>
转载:
数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先
在每个数据库服务器上设置链接字符串。
1、 链接字符串即服务名,首先在本地配置一个服务名,地址指向远程的数据库地址,服务名取为将来你要使用的数据库链名:
2、创建数据库链接,
进入系统管理员SQL>操作符下,运行命令:
SQL>create public database link beijing connect to scott identified by tiger
using 'tobeijing';
则创建了一个以scott用户和北京数据库的链接beijing,我们查询北京的scott数据:
SQL>select * from emp@beijing;
这样就可以把深圳和北京scott用户的数据做成一个整体来处理。
3、建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym
SQL>create synonym bjscottemp for emp@beijing;
于是就可以用bjscottemp来替代带@符号的分布式链接操作emp@beijing。
4、查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';
刚好用到, 取消dblink
3、查看数据库连接
sql> select owner, db_link from dba_db_links;
ower db_link
public TEST.US.ORACLE.COM
4、删除数据库连接
先从第三步中查看数据库连接,取得其db_link的名称
sql>drop public database link TEST.US.ORACLE.COM
数据库连接巳丢弃
比如:在一个数据库B中访问数据库A中的表:
1.在数据库B中创建数据库链:
CREATE PUBLIC DATABASE LINK 数据库链接名 CONNECT TO 用户名 identified by 密码 using '连接说明'
其中,连接说明必须为如下格式:
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.10.201)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME=ORCL)
)
)
2.访问链接数据库中的对象的语法:
用户名.数据库对象@数据库链接名
3.查看所有的数据库链接:
select owner,object_name from dba_objects where object_type='DATABASE LINK';
4.例子:
创建一个数据库链接:
CREATE PUBLIC DATABASE LINK DBL_ORCL CONNECT TO province identified by province_pwd
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.10.201)(PORT = 1521))
)
(CONNECT_DATA =
(service_name=ORCL)
)
)';
在B库中执行下面的语句,访问A库中的province.tj_ryxx 表:
select * from province.tj_ryxx@DBL_ORCL;
域名转移流程:
request命令
在转入商家提转入request,等待在原注册商确认同意
approve命令
在原注册商同意转出,等待转入注册商info信息
reject命令
在原注册商不同意转出,则停止转移,转移不成功,完成
cancel命令
在原注册商中取消转出,则停止转移,转移不成功,完成
info命令
在转入注册商中读取域名的info信息,保存,转移成功,完成
真想今天是2月16号:刚刚到家,呵呵!
春节很快也就过完了(DD同学的作为很是让我感动,相信我已经可以接受我们成为好朋友!谢了!),今天是第一天上班,还想着今天应该是可以愉懒愉懒,没想到还是接了上堆的任务.
一年之际在于春,新的一年,新的开始,好好准备已有的感想;好好理理今年的计划;
相信2007不会像是2006毫无收获的一年!
光阴似箭,一年就剩几天了....
每当这时心灵很是孤独,失落...
人在此地心已回家...
昨晚梦里又梦见了妈妈,思念您
思念是一种让人莫名落泪的力量!
http://www-128.ibm.com/developerworks/cn/java/l-jsp-eclipse/index.html?n-j-04241#1
theserverside.com
infoq.com
javalobby.com
c2.com
javaworld.com
dev2dev.com
dev2dev.com.cn
http://www-128.ibm.com/developerworks
www.hibernate.org
www.spingframework.org
www.opensymphony.com
apache.org
http://joelonsoftware.com/
fixdown.com
7622.com
转:UNIX常用命令
http://topic.csdn.net/t/20050115/17/3728514.html I. 第一章 目录及文件操作命令 3 A. 1.1 ls 3
B. 1.2 pwd 4
C. 1.3 cd 4
D. 1.4 mkdir 5
E. 1.5 rmdir 5
F. 1.6 cat 6
G. 1.7 head 6
H. 1.8 more 6
I. 1.9 cp 8
J. 1.10 mv 9
K. 1.11 rm 9
L. 1.12 chmod 9
M. 1.13 chown 11
N. 1.14 chgrp 11
O. 1.16 diff 12
P. 1.17 wc 12
Q. 1.18 split 13
R. 1.19 touch 13
S. 1.20 file 14
T. 1.21 pack 14
U. 1.22 pcat 显示压缩文件 14
V. 1.23 unpack 15
W. 1.24 find 15
X. 1.25 grep 16
Y. 1.26 vi 17
II. 第二章 设备管理 23
A. 2.1 stty 23
B. 2.2 tty 24
C. 2.3 lp 24
D. 2.4 lpstat 24
E. 2.5 cancel 25
F. 2.6 enable 25
G. 2.7 disable 25
H. 2.8 sync 26
I. 2.9 mount 26
J. 2.10 umount 26
K. 2.11 tar 26
L. 2.12 df 27
M. 2.13 du 27
III. 第三章 进程管理 28
A. 3.1 sleep 28
B. 3.2 ps 28
C. 3.3 at 28
D. 3.4 kill 29
IV. 第四章 系统管理和用户管理 30
A. 4.1 who 30
B. 4.2 whodo 30
C. 4.3 passwd 30
D. 4.4 logname 30
E. 4.5 su 31
F. 4.6 time 31
G. 4.7 date 31
H. 4.8 shutdown 31
I. 4.9 fsck 32
V. 第五章 通信和邮件 33
A. 5.1 wall 33
B. 5.2 mesg 33
C. 5.3 write 33
D. 5.4 mailx 33
VI. 第六章 Shell 编程 36
VII. 第七章 数学计算命令 39
VIII. 附录 UNIX 常用命令简单说明 40
引用例子:
http://topic.csdn.net/t/20050404/20/3908503.html
转:
在JSP中访问数据库大全
现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。
一、jsp连接Oracle8/8i/9i数据库(用thin模式)
testoracle.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为你的数据库的SID
String user="scott";
String password="tiger";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
二、jsp连接Sql Server7.0/2000数据库
testsqlserver.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
三、jsp连接DB2数据库
testdb2.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
四、jsp连接Informix数据库
testinformix.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
五、jsp连接Access数据库
<%@page import="java.sql.*"
import ="java.util.*"
import ="java.io.*"
import="java.text.*"
contentType="text/html; charset=gb2312"
buffer="20kb"
%><%! int all,i,m_count;
String odbcQuery;
Connection odbcconn;
Statement odbcstmt;
ResultSet odbcrs;
String username,title,content,work,email,url,time,date;
String datetime;
%>
<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch (ClassNotFoundException e)
{ out.print ("驱动程序不存在");
}
try{
odbcconn = DriverManager.getConnection("jdbc:odbc:db1");
odbcstmt = odbcconn.createStatement();
odbcQuery="Select * From book where datetime>2001-4-26 Order By datetime DESC";
odbcrs=odbcstmt.executeQuery(odbcQuery);
int i=0;
while (i<130) odbcrs.next();
while (odbcrs.next())
{
//*/////////////////////////显示数据库的内容用于调试程序是用//
int ii;
try{
try{
for (ii=1;;ii++)
out.print ("<br>Cloumn "+ii+" is: "+odbcrs.getString(ii));
}catch (NullPointerException e) {
out.print ("有空的指针");
}
}catch (SQLException e){
}
}
odbcrs.close();
odbcstmt.close();
odbcconn.close();
}catch (SQLException e)
{ out.print (e);
}
%>
Enumeration enuParaName = null;
try
{
enuParaName = oRequest.getParameterNames();
}
catch(Exception e)
{
}
while(enuParaName != null && enuParaName.hasMoreElements())
{
String name = enuParaName.nextElement().toString();
if(name.equalsIgnoreCase("module") || name.equalsIgnoreCase("submitmyform"))
{
continue;
}
String[] values = oRequest.getParameterValues(name);
// System.out.println("name:"+name+" valuestr:"+values[0]);
htDomain.put(name, values[0]);
}
if(!htDomain.isEmpty())
{
for(Enumeration enum = htDomain.keys(); enum.hasMoreElements();)
{
String strDomain = (String)enum.nextElement();
String stPassword = (String)htDomain.get(strDomain);
}
}
jdk1.4
Map params = new HashMap();
//获得POST 过来参数设置到新的params中
Enumeration enuParaName = null;
try
{
enuParaName = oRequest.getParameterNames();
}
catch(Exception e)
{
}
while(enuParaName != null && enuParaName.hasMoreElements())
{
String name = enuParaName.nextElement().toString();
String[] values = oRequest.getParameterValues(name);
String valueStr = "";
for(int i = 0; i < values.length; i ++)
{
valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";
}
if(BaseBean._DEBUG)System.out.println("name:"+name+" valuestr:"+valueStr);
params.put(name, valueStr);
}
jdk1.5
Map params = new HashMap();
//获得POST 过来参数设置到新的params中
Map reqParams = oRequest.getParameterMap();
for (Iterator iter = reqParams.keySet().iterator(); iter.hasNext();)
{
String name = (String) iter.next();
String[] values = (String[]) reqParams.get(name);
String valueStr = "";
for (int i = 0; i < values.length; i++)
{
valueStr = (i == values.length - 1) ? valueStr + values[i]
: valueStr + values[i] + ",";
}
if(BaseBean._DEBUG)System.out.println("name:"+name+" valuestr:"+valueStr);
params.put(name, valueStr);
}