??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲一区二区,亚洲av永久无码天堂网,亚洲日本乱码卡2卡3卡新区http://m.tkk7.com/zhukuanglong/矿矿 的编E生z?/description>zh-cnFri, 16 May 2025 04:45:10 GMTFri, 16 May 2025 04:45:10 GMT60巧用ps提高求职成功率[转]http://m.tkk7.com/zhukuanglong/archive/2008/11/21/241891.html矿矿矿矿Fri, 21 Nov 2008 12:01:00 GMThttp://m.tkk7.com/zhukuanglong/archive/2008/11/21/241891.htmlhttp://m.tkk7.com/zhukuanglong/comments/241891.htmlhttp://m.tkk7.com/zhukuanglong/archive/2008/11/21/241891.html#Feedback1http://m.tkk7.com/zhukuanglong/comments/commentRss/241891.htmlhttp://m.tkk7.com/zhukuanglong/services/trackbacks/241891.html

  ?#8220;补充说明”中填写的最佳信息因异Q这取决于求职者的职业目标和背景。请CQ求职简历是自我营销的手D,其中的信息应当有助于向用人单位推销自己Q以实现自己的职业目标。可以这栯虑问题Q如果这是向潜在的用人单位推销自己的最会机会,你会说些什么?

  以下是一些填?#8220;补充说明”的思\Q供大家参考:

  能力或业lȝ

  在补充说明对自己的能力和职业生Әq行ȝ。在能力或业lȝ中要H出自己主要?#8220;卖点”和成功案例——这一切都应当与你惌应聘的职位有关系?

  获奖情况

  用列举自q获奖情况作ؓ求职历的l束Q会l用人单位留下深d象?

  证明书或推荐?/strong>

  你是否收到过对于你的工作情况表示满意的推荐信或业l评估证明?如果有,可以摘选其中的_N部分作ؓ“补充说明”?

  发表作品

  如果在报刊、杂志上发表q作品,可以考虑?#8220;补充说明”里罗列出来?

  专利

  如果拥有专利Q包括正在申LQ,请在“补充说明”中列出?

  演讲能力

  许多职位要有演讲能力才能胜Q。列举自己参加过的演讌Ӏ主题发a会给用h单位留下好印象?

  计算用技?/strong>

  ?#8220;补充说明”中列举自己在计算机操作系l、网l和g{方面的技能,多多益善?

  培训情况

  ?#8220;补充说明”中列己参加过的专?span>培训和l教肌Ӏ?

  再次工作地点

  ?#8220;补充说明”中再ơ强调工作地点不׃ؓl束求职历的好办法?

  说明自己愿意出差

  如果愿意出差Q可以在补充说明中加以说明,用h单位或许会因一点而看上你?

  应该省略的内?/strong>

  补充说明不要涉及婚姻状况、年龄、有多少个孩子等情况Q如果兴爱好与工作无关Q最好也不要提及?br />
 来源:中华英才|?/a> 

矿矿 2008-11-21 20:01 发表评论
]]>
正则表达式元字符列表http://m.tkk7.com/zhukuanglong/archive/2008/11/21/241888.html矿矿矿矿Fri, 21 Nov 2008 11:35:00 GMThttp://m.tkk7.com/zhukuanglong/archive/2008/11/21/241888.htmlhttp://m.tkk7.com/zhukuanglong/comments/241888.htmlhttp://m.tkk7.com/zhukuanglong/archive/2008/11/21/241888.html#Feedback0http://m.tkk7.com/zhukuanglong/comments/commentRss/241888.htmlhttp://m.tkk7.com/zhukuanglong/services/trackbacks/241888.html

下表是元字符及其在正则表辑ּ上下文中的行为的一个完整列表:

字符 描述
下一个字W标Cؓ一个特D字W、或一个原义字W、或一个后向引用、或一个八q制转义W。例如,'n' 匚w字符 "n"?\n' 匚w一个换行符。序?nbsp;'\' 匚w "" ?nbsp;"\(" 则匹?nbsp;"("?/font>
^
匚w输入字符串的开始位|。如果设|了 RegExp 对象?nbsp;Multiline 属性,^ 也匹?nbsp;'\n' ?nbsp;'\r' 之后的位|?/font>
$
匚w输入字符串的l束位置。如果设|了RegExp 对象?nbsp;Multiline 属性,$ 也匹?nbsp;'\n' ?nbsp;'\r' 之前的位|?/font>
*
匚w前面的子表达式零ơ或多次。例如,zo* 能匹?nbsp;"z" 以及 "zoo"?nbsp;* {h(hun)于{0,}。[/size]
+
匚w前面的子表达式一ơ或多次。例如,'zo+' 能匹?nbsp;"zo" 以及 "zoo"Q但不能匚w "z"? {h(hun)?nbsp;{1,}?/font>
?
匚w前面的子表达式零ơ或一ơ。例如,"do(es)?" 可以匚w "do" ?nbsp;"does" 中的"do" ? {h(hun)?nbsp;{0,1}?/font>
{n}
是一个非负整数。匹配确定的 n ơ。例如,'o{2}' 不能匚w "Bob" 中的 'o'Q但是能匚w "food" 中的两个 o?/font>
{n,}
是一个非负整数。至匹配n ơ。例如,'o{2,}' 不能匚w "Bob" 中的 'o'Q但能匹?nbsp;"foooood" 中的所?nbsp;o?o{1,}' {h(hun)?nbsp;'o+'?o{0,}' 则等价于 'o*'?/font>
{n,m}
?nbsp;n 均ؓ非负整数Q其中n <= m。最匹?nbsp;n ơ且最多匹?nbsp;m ơ。刘Q?nbsp;"o{1,3}" 匹?nbsp;"fooooood" 中的前三?nbsp;o?o{0,1}' {h(hun)?nbsp;'o?'。请注意在逗号和两个数之间不能有空根{?/font>
?
当该字符紧跟在Q何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面Ӟ匚w模式是非贪婪的。非贪婪模式可能少的匹配所搜烦的字W串Q而默认的贪婪模式则尽可能多的匚w所搜烦的字W串。例如,对于字符?nbsp;"oooo"Q?o+?' 匹配单?nbsp;"o"Q?nbsp;'o+' 匹配所?nbsp;'o'?/font>
.
匚w?nbsp;"\n" 之外的Q何单个字W。要匚w包括 '\n' 在内的Q何字W,请用象 '[.\n]' 的模式?/font>
(pattern)
匚wpattern q获取这一匚w。所获取的匹配可以从产生?nbsp;Matches 集合得到Q在VBScript 中?nbsp;SubMatches 集合Q在JScript 中则使用 {CONTENT}… 属性。要匚w圆括号字W,请?nbsp;'\(' ?nbsp;'\)'?/font>
(?:pattern)
匚w pattern 但不获取匚wl果Q也是说这是一个非获取匚wQ不q行存储供以后用。这在?nbsp;"? 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 是一个比 'industry|industries' 更简略的表达式?/font>
(?=pattern)
正向预查Q在M匚w pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹?nbsp;"Windows 2000" 中的 "Windows" Q但不能匚w "Windows 3.1" 中的 "Windows"。预查不消耗字W,也就是说Q在一个匹配发生后Q在最后一ơ匹配之后立卛_始下一ơ匹配的搜烦Q而不是从包含预查的字W之后开始?/font>
(?!pattern)
负向预查Q在M不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字W串开始处匚w查找字符丌Ӏ这是一个非获取匚wQ也是_该匹配不需要获取供以后使用。例?Windows (?!95|98|NT|2000)' 能匹?nbsp;"Windows 3.1" 中的 "Windows"Q但不能匚w "Windows 2000" 中的 "Windows"。预查不消耗字W,也就是说Q在一个匹配发生后Q在最后一ơ匹配之后立卛_始下一ơ匹配的搜烦Q而不是从包含预查的字W之后开?/font>
x|y
匚w x ?nbsp;y。例如,'z|food' 能匹?nbsp;"z" ?nbsp;"food"?(z|f)ood' 则匹?nbsp;"zood" ?nbsp;"food"?/font>
[xyz]
字符集合。匹配所包含的Q意一个字W。例如, '[abc]' 可以匚w "plain" 中的 'a'?/font>
[^xyz]
负值字W集合。匹配未包含的Q意字W。例如, '[^abc]' 可以匚w "plain" 中的'p'?/font>
[a-z]
字符范围。匹配指定范围内的Q意字W。例如,'[a-z]' 可以匚w 'a' ?nbsp;'z' 范围内的L写字母字符?/font>
[^a-z]
负值字W范围。匹配Q何不在指定范围内的Q意字W。例如,'[^a-z]' 可以匚wM不在 'a' ?nbsp;'z' 范围内的L字符?/font>
\b
匚w一个单词边界,也就是指单词和空格间的位|。例如, 'er\b' 可以匚w"never" 中的 'er'Q但不能匚w "verb" 中的 'er'?/font>
\B
匚w非单词边界?er\B' 能匹?nbsp;"verb" 中的 'er'Q但不能匚w "never" 中的 'er'?/font>
\cx
匚w由x指明的控制字W。例如, \cM 匚w一?nbsp;Control-M 或回车符?nbsp;x 的值必Mؓ A-Z ?nbsp;a-z 之一。否则,?nbsp;c 视ؓ一个原义的 'c' 字符?/font>
\d
匚w一个数字字W。等价于 [0-9]?/font>
\D
匚w一个非数字字符。等价于 [^0-9]?/font>
\f
匚w一个换늬。等价于 \x0c ?nbsp;\cL?/font>
\n
匚w一个换行符。等价于 \x0a ?nbsp;\cJ?/font>
\r
匚w一个回车符。等价于 \x0d ?nbsp;\cM?/font>
\s
匚wMI白字符Q包括空根{制表符、换늬{等。等价于 [ \f\n\r\t\v]?/font>
\S
匚wM非空白字W。等价于 [^ \f\n\r\t\v]?/font>
\t
匚w一个制表符。等价于 \x09 ?nbsp;\cI?/font>
\v
匚w一个垂直制表符。等价于 \x0b ?nbsp;\cK?/font>
\w
匚w包括下划U的M单词字符。等价于'[A-Za-z0-9_]'?/font>
\W
匚wM非单词字W。等价于 '[^A-Za-z0-9_]'?/font>
\xn
匚w nQ其?nbsp;n 为十六进制{义倹{十六进制{义值必Mؓ定的两个数字长。例如, '\x41' 匚w "A"?\x041' 则等价于 '\x04' & "1"。正则表辑ּ中可以?nbsp;ASCII ~码?
\num
匚w numQ其?nbsp;num 是一个正整数。对所获取的匹配的引用。例如,'(.)' 匚w两个q箋的相同字W?/font>
\n
标识一个八q制转义值或一个后向引用。如?nbsp;\n 之前臛_ n 个获取的子表辑ּQ则 n 为后向引用。否则,如果 n 为八q制数字 (0-7)Q则 n Z个八q制转义倹{?/font>
\nm
标识一个八q制转义值或一个后向引用。如?nbsp;\nm 之前臛_有is preceded by at least nm 个获取得子表辑ּQ则 nm 为后向引用。如?nbsp;\nm 之前臛_?nbsp;n 个获取,?nbsp;n Z个后跟文?nbsp;m 的后向引用。如果前面的条g都不满Q若 n ?nbsp;m 均ؓ八进制数?nbsp;(0-7)Q则 \nm 匹配八q制转义?nbsp;nm?/font>
\nml
如果 n 为八q制数字 (0-3)Q且 m ?nbsp;l 均ؓ八进制数?nbsp;(0-7)Q则匚w八进制{义?nbsp;nml?/font>
\un
匚w nQ其?nbsp;n 是一个用四个十六q制数字表示?nbsp;Unicode 字符。例如,\u00A9 匚w版权W号 (?)?/font>



矿矿 2008-11-21 19:35 发表评论
]]>
常用正则表达?/title><link>http://m.tkk7.com/zhukuanglong/archive/2008/11/21/241814.html</link><dc:creator>矿矿</dc:creator><author>矿矿</author><pubDate>Fri, 21 Nov 2008 02:58:00 GMT</pubDate><guid>http://m.tkk7.com/zhukuanglong/archive/2008/11/21/241814.html</guid><wfw:comment>http://m.tkk7.com/zhukuanglong/comments/241814.html</wfw:comment><comments>http://m.tkk7.com/zhukuanglong/archive/2008/11/21/241814.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/zhukuanglong/comments/commentRss/241814.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhukuanglong/services/trackbacks/241814.html</trackback:ping><description><![CDATA[<div id="hcjbckw" class="Section0" style="layout-grid: 15.6pt none"> <p class="p0" style="margin-top: 0pt; background: rgb(255,255,255); margin-bottom: 7.5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w中文字符的正则表辑ּQ?nbsp;[u4e00-u9fa5]</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q匹配中文还真是个头疼的事,有了q个表达式就好办?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w双字节字W?包括汉字在内)Q[^x00-xff]</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q可以用来计字W串的长度(一个双字节字符长度?QASCII字符?Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚wI白行的正则表达式:ns*r</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q可以用来删除空白行</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚wHTML标记的正则表辑ּQ?lt;(S*?)[^>]*>.*?|<.*? /></font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q网上流传的版本太糟p,上面q个也仅仅能匚w部分Q对于复杂的嵌套标记依旧无能为力</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w首尾I白字符的正则表辑ּQ^s*|s*$</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q可以用来删除行首行I白字符(包括I格、制表符、换늬{等)Q非常有用的表达?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚wEmail地址的正则表辑ּQw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q表单验证时很实?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w|址URL的正则表辑ּQ[a-zA-z]+://[^s]*</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q网上流传的版本功能很有限,上面q个基本可以满需?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w帐号是否合法(字母开_允许5-16字节Q允许字母数字下划线)Q^[a-zA-Z][a-zA-Z0-9_]{4,15}$</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q表单验证时很实?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w国内?sh)话LQd{3}-d{8}|d{4}-d{7}</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q匹配Ş式如 0511-4405222 ?nbsp;021-87888822</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w腾讯QQP[1-9][0-9]{4,}</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q腾讯QQ号从10000开?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w中国邮政~码Q[1-9]d{5}(?!d)</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q中国邮政编码ؓ6位数?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚ww䆾证:d{15}|d{18}</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q中国的w䆾证ؓ15位或18?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚wip地址Qd+.d+.d+.d+</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q提取ip地址时有?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w特定数字Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^[1-9]d*$<font face="宋体">    //匚w正整?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^-[1-9]d*$ <font face="宋体">  //匚w负整?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^-?[1-9]d*$<font face="宋体">   //匚w整数</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^[1-9]d*|0$<font face="宋体">  //匚w非负整数Q正整数 + 0Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^-[1-9]d*|0$<font face="宋体">   //匚w非正整数Q负整数 + 0Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^[1-9]d*.d*|0.d*[1-9]d*$<font face="宋体">   //匚w正QҎ(gu)</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^-([1-9]d*.d*|0.d*[1-9]d*)$<font face="宋体">  //匚w负QҎ(gu)</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$<font face="宋体">  //匚w点?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$<font face="宋体">   //匚w非负点敎ͼ正QҎ(gu) + 0Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$<font face="宋体">  //匚w非正点敎ͼ负QҎ(gu) + 0Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">评注Q处理大量数据时有用Q具体应用时注意修正</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w特定字符Ԍ</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^[A-Za-z]+$<font face="宋体">  //匚w?6个英文字母组成的字符?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^[A-Z]+$<font face="宋体">  //匚w?6个英文字母的大写l成的字W串</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^[a-z]+$<font face="宋体">  //匚w?6个英文字母的写l成的字W串</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^[A-Za-z0-9]+$<font face="宋体">  //匚w由数字和26个英文字母组成的字符?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">^w+$<font face="宋体">  //匚w由数字?6个英文字母或者下划线l成的字W串</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">在用RegularExpressionValidator验证控g时的验证功能及其验证表达式介l如?</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入数字Q?#8220;^[0-9]*$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入n位的数字Q?#8220;^d{n}$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入臛_n位数字:“^d{n,}$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入m-n位的数字Q?#8220;^d{m,n}$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入零和非零开头的数字Q?#8220;^(0|[1-9][0-9]*)$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入有两位小数的正实敎ͼ“^[0-9]+(.[0-9]{2})?$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入?-3位小数的正实敎ͼ“^[0-9]+(.[0-9]{1,3})?$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入非零的正整数Q?#8220;^+?[1-9][0-9]*$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入非零的负整数Q?#8220;^-[1-9][0-9]*$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入长度?的字W:“^.{3}$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入?6个英文字母组成的字符Ԍ“^[A-Za-z]+$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入?6个大写英文字母组成的字符Ԍ“^[A-Z]+$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入?6个小写英文字母组成的字符Ԍ“^[a-z]+$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入由数字和26个英文字母组成的字符Ԍ“^[A-Za-z0-9]+$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入由数字?6个英文字母或者下划线l成的字W串Q?#8220;^w+$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开_长度?-18之间Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能包含字符、数字和下划Uѝ?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">验证是否含有^%&',;=?$"{字W:“[^%&',;=?$x22]+”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">只能输入汉字Q?#8220;^[u4e00-u9fa5],{0,}$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">验证Email地址Q?#8220;^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">验证InternetURLQ?#8220;^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">验证?sh)话LQ?#8220;^((d{3,4})|d{3,4}-)?d{7,8}$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">正确格式为:“XXXX-XXXXXXX”Q?#8220;XXXX-XXXXXXXX”Q?#8220;XXX-XXXXXXX”Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">“XXX-XXXXXXXX”<font face="宋体">Q?#8220;XXXXXXX”Q?#8220;XXXXXXXX”?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">验证w䆾证号Q?5位或18位数字)Q?#8220;^d{15}|d{}18$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">验证一q的12个月Q?#8220;^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”?#8220;1”“12”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">验证一个月?1天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">正确格式为:“01”“09”?#8220;1”“31”?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w中文字符的正则表辑ּQ?nbsp;[u4e00-u9fa5]</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w双字节字W?包括汉字在内)Q[^x00-xff]</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚wI的正则表辑ּQn[s| ]*r</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚wHTML标记的正则表辑ּQ?<(.*)>.*</1>|<(.*) />/</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w首尾I格的正则表辑ּQ?^s*)|(s*$)</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚wEmail地址的正则表辑ּQw+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">匚w|址URL的正则表辑ּQ?/font></span><span><a href="http://([w-]+.)+[w-]+(/[w"><span style="font-size: 8pt; background: rgb(255,255,255); color: rgb(51,102,153); font-family: 'Verdana'; mso-spacerun: 'yes'">http://([w-]+.)+[w-]+(/[w</span></a></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">- ./?%&=]*)?</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">(1)<font face="宋体">应用Q计字W串的长度(一个双字节字符长度?QASCII字符?Q?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">String.prototype.len=function(){return this.replace([^x00-xff]/g,"aa").length;}</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 5pt; background: rgb(255,255,255); margin-bottom: 5pt; line-height: 150%"><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">(2)<font face="宋体">应用Qjavascript中没有像vbscript那样的trim函数Q我们就可以利用q个表达式来实现</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">String.prototype.trim = function()</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">{</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">return this.replace(/(^s*)|(s*$)/g, "");</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">}</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">(3)<font face="宋体">应用Q利用正则表辑ּ分解和{换IP地址</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">function IP2V(ip) //IP<font face="宋体">地址转换成对应数?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">{</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">re=/(d+).(d+).(d+).(d+)/g //<font face="宋体">匚wIP地址的正则表辑ּ</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">if(re.test(ip))</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">{</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">}</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">else</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">{</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">throw new Error("Not a valid IP address!")</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">}</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">}</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">(4)<font face="宋体">应用Q从URL地址中提取文件名的javascriptE序</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">s="</span><span><a ><span style="font-size: 8pt; background: rgb(255,255,255); color: rgb(51,102,153); font-family: 'Verdana'; mso-spacerun: 'yes'">http://www.9499.net/page1.htm</span></a></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">";</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2") ; //Page1.htm</span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'">(5)<font face="宋体">应用Q利用正则表辑ּ限制|页表单里的文本框输入内?/font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">用正则表辑ּ限制只能输入中文Qonkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">用正则表辑ּ限制只能输入全角字符Q?nbsp;onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">用正则表辑ּ限制只能输入数字Qonkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste= "clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><br /> </span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><font face="宋体">用正则表辑ּ限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''</font></span><span style="font-size: 8pt; background: rgb(255,255,255); font-family: 'Verdana'; mso-spacerun: 'yes'"><o:p></o:p></span></p> <p class="p0" style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p> </div> <!--endfragment--> <img src ="http://m.tkk7.com/zhukuanglong/aggbug/241814.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhukuanglong/" target="_blank">矿矿</a> 2008-11-21 10:58 <a href="http://m.tkk7.com/zhukuanglong/archive/2008/11/21/241814.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java调用SQL Server的存储过E详解[转]http://m.tkk7.com/zhukuanglong/archive/2008/11/07/239337.html矿矿矿矿Fri, 07 Nov 2008 14:21:00 GMThttp://m.tkk7.com/zhukuanglong/archive/2008/11/07/239337.htmlhttp://m.tkk7.com/zhukuanglong/comments/239337.htmlhttp://m.tkk7.com/zhukuanglong/archive/2008/11/07/239337.html#Feedback0http://m.tkk7.com/zhukuanglong/comments/commentRss/239337.htmlhttp://m.tkk7.com/zhukuanglong/services/trackbacks/239337.html[转]自天极网

1使用不带参数的存储过E?/strong>

  使用 JDBC 驱动E序调用不带参数的存储过E时Q必M?call SQL 转义序列。不带参数的 call 转义序列的语法如下所C:

  

以下是引用片D:
{call procedure-name}

  作ؓ实例Q在 SQL Server 2005 AdventureWorks CZ数据库中创徏以下存储q程Q?/p>

  

以下是引用片D:
CREATE PROCEDURE GetContactFormalNames
  AS
  BEGIN
   SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName
   FROM Person.Contact
  END
此存储过E返回单个结果集Q其中包含一列数??Person.Contact 表中前十个联pMh的称呹{名U和姓氏l成)?

  在下面的实例中,向此函C?AdventureWorks CZ数据库的打开q接Q然后?executeQuery Ҏ(gu)调用 GetContactFormalNames 存储q程?/p>

 

以下是引用片D:
  public static void executeSprocNoParams(Connection con) ...{
   try ...{
   Statement stmt = con.createStatement();
  ResultSet rs = stmt.executeQuery("{call dbo.GetContactFormalNames}");
  
   while (rs.next()) ...{
 System.out.println(rs.getString("FormalName"));
  }
  rs.close();
  stmt.close();
  }
  catch (Exception e) ...{
  e.printStackTrace();
  }
  }

  2使用带有输入参数的存储过E?/strong>

  使用 JDBC 驱动E序调用带参数的存储q程Ӟ必须l合 SQLServerConnection cȝ prepareCall Ҏ(gu)使用 call SQL 转义序列。带?IN 参数?call 转义序列的语法如下所C:

  

以下是引用片D:
{call procedure-name[([parameter][,[parameter]]...)]}

  构?call 转义序列Ӟ请??(问号)字符来指?IN 参数。此字符充当要传递给该存储过E的参数值的占位W。可以?SQLServerPreparedStatement cȝ setter Ҏ(gu)之一为参数指定倹{可使用?setter Ҏ(gu)?IN 参数的数据类型决定?/p>

  ?setter Ҏ(gu)传递值时Q不仅需要指定要在参C使用的实际|q必L定参数在存储q程中的序数位置。例如,如果存储q程包含单个 IN 参数Q则其序数gؓ 1。如果存储过E包含两个参敎ͼ则第一个序数gؓ 1Q第二个序数gؓ 2?/p>

  作ؓ如何调用包含 IN 参数的存储过E的实例Q?SQL Server 2005 AdventureWorks CZ数据库中?uspGetEmployeeManagers 存储q程。此存储q程接受名ؓ EmployeeID 的单个输入参?它是一个整数?Q然后基于指定的 EmployeeID q回雇员及其l理的递归列表。下面是调用此存储过E的 Java 代码Q?/p>

  

 

以下是引用片D:
  public static void executeSprocInParams(Connection con) ...{
   try ...{
   PreparedStatement pstmt = con.prepareStatement("{call dbo.uspGetEmployeeManagers(?)}");
   pstmt.setInt(1, 50);
   ResultSet rs = pstmt.executeQuery();
   while (rs.next()) ...{
   System.out.println("EMPLOYEE:");
   System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
   System.out.println("MANAGER:");
   System.out.println(rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName"));
   System.out.println();
   }
   rs.close();
   pstmt.close();
   }
   catch (Exception e) ...{
   e.printStackTrace();
   }
  }

  3使用带有输出参数的存储过E?/strong>

  使用 JDBC 驱动E序调用此类存储q程Ӟ必须l合 SQLServerConnection cȝ prepareCall Ҏ(gu)使用 call SQL 转义序列。带?OUT 参数?call 转义序列的语法如下所C:

  

以下是引用片D:
{call procedure-name[([parameter][,[parameter]]...)]}

  构?call 转义序列Ӟ请??(问号)字符来指?OUT 参数。此字符充当要从该存储过E返回的参数值的占位W。要?OUT 参数指定|必须在运行存储过E前使用 SQLServerCallableStatement cȝ registerOutParameter Ҏ(gu)指定各参数的数据cd?/p>

  使用 registerOutParameter Ҏ(gu)?OUT 参数指定的值必L java.sql.Types 所包含?JDBC 数据cd之一Q而它又被映射成本?SQL Server 数据cd之一。有?JDBC ?SQL Server 数据cd的详l信息,请参阅了?JDBC 驱动E序数据cd?/p>

  当?zhn)对?OUT 参数?registerOutParameter Ҏ(gu)传递一个值时Q不仅必L定要用于此参数的数据cdQ而且必须在存储过E中指定此参数的序号位置或此参数的名U。例如,如果存储q程包含单个 OUT 参数Q则其序数gؓ 1;如果存储q程包含两个参数Q则W一个序数gؓ 1Q第二个序数gؓ 2?/p>

  作ؓ实例Q在 SQL Server 2005 AdventureWorks CZ数据库中创徏以下存储q程Q?Ҏ(gu)指定的整?IN 参数 (employeeID)Q该存储q程也返回单个整?OUT 参数 (managerID)。根?HumanResources.Employee 表中包含?EmployeeIDQOUT 参数中返回的gؓ ManagerID?/p>

  在下面的实例中,向此函C?AdventureWorks CZ数据库的打开q接Q然后?execute Ҏ(gu)调用 GetImmediateManager 存储q程Q?/p>

 

以下是引用片D:
  public static void executeStoredProcedure(Connection con) ...{
   try ...{
   CallableStatement cstmt = con.prepareCall("{call dbo.GetImmediateManager(?, ?)}");
   cstmt.setInt(1, 5);
   cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
   cstmt.execute();
   System.out.println("MANAGER ID: " + cstmt.getInt(2));
   }
   catch (Exception e) ...{
   e.printStackTrace();
   }
  } 

本示例用序号位|来标识参数。或者,也可以用参数的名称(而非其序号位|?来标识此参数。下面的代码CZ修改了上一个示例,以说明如何在 Java 应用E序中用命名参数。请注意Q这些参数名U对应于存储q程的定义中的参数名Uͼ CREATE PROCEDURE GetImmediateManager

 
以下是引用片D:
 @employeeID INT,
   @managerID INT OUTPUT
  AS
  BEGIN
   SELECT @managerID = ManagerID
   FROM HumanResources.Employee
   WHERE EmployeeID = @employeeID
  END
  存储q程可能q回更新计数和多个结果集。Microsoft SQL Server 2005 JDBC Driver 遵@ JDBC 3.0 规范Q此规范规定在检?OUT 参数之前应检索多个结果集和更新计数。也是_应用E序应先索所?ResultSet 对象和更新计敎ͼ然后使用 CallableStatement.getter Ҏ(gu)?OUT 参数。否则,当检?OUT 参数Ӟ未索的 ResultSet 对象和更新计数将丢失?

  4 使用带有q回状态的存储q程

  使用 JDBC 驱动E序调用q种存储q程Ӟ必须l合 SQLServerConnection cȝ prepareCall Ҏ(gu)使用 call SQL 转义序列。返回状态参数的 call 转义序列的语法如下所C:

 

以下是引用片D:
 {[?=]call procedure-name[([parameter][,[parameter]]...)]}
  构?call 转义序列Ӟ请??(问号)字符来指定返回状态参数。此字符充当要从该存储过E返回的参数值的占位W。要回状态参数指定|必须在执行存储过E前使用 SQLServerCallableStatement cȝ registerOutParameter Ҏ(gu)指定参数的数据类型?

  此外Q向 registerOutParameter Ҏ(gu)传递返回状态参数值时Q不仅需要指定要使用的参数的数据cdQ还必须指定参数在存储过E中的序C|。对于返回状态参敎ͼ其序C|始lؓ 1Q这是因为它始终是调用存储过E时的第一个参数。尽?SQLServerCallableStatement cL持用参数的名称来指C特定参敎ͼ但?zhn)只能对返回状态参C用参数的序号位置~号?/p>

  作ؓ实例Q在 SQL Server 2005 AdventureWorks CZ数据库中创徏以下存储q程Q?/p>

  

以下是引用片D:
CREATE PROCEDURE CheckContactCity
   (@cityName CHAR(50))
  AS
  BEGIN
   IF ((SELECT COUNT(*)
   FROM Person.Address
   WHERE City = @cityName) > 1)
   RETURN 1
  ELSE
   RETURN 0
  END
  该存储过E返回状态?1 ?0Q这取决于是否能在表 Person.Address 中找?cityName 参数指定的城市?

  在下面的实例中,向此函C?AdventureWorks CZ数据库的打开q接Q然后?execute Ҏ(gu)调用 CheckContactCity 存储q程Q?/p>

 

以下是引用片D:
 public static void executeStoredProcedure(Connection con) ...{
   try ...{
   CallableStatement cstmt = con.prepareCall("{? = call dbo.CheckContactCity(?)}");
   cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
   cstmt.setString(2, "Atlanta");
   cstmt.execute();
   System.out.println("RETURN STATUS: " + cstmt.getInt(1));
   }
   cstmt.close();
   catch (Exception e) ...{
   e.printStackTrace();
   }
  }
  5 使用带有更新计数的存储过E?/strong>

  使用 SQLServerCallableStatement cL建对存储q程的调用之后,可以使用 execute ?executeUpdate Ҏ(gu)中的L一个来调用此存储过E。executeUpdate Ҏ(gu)返回一?int |该值包含受此存储过E媄响的行数Q但 execute Ҏ(gu)不返回此倹{如果?execute Ҏ(gu)Qƈ且希望获得受影响的行数计敎ͼ则可以在q行存储q程后调?getUpdateCount Ҏ(gu)?/p>

  作ؓ实例Q在 SQL Server 2005 AdventureWorks CZ数据库中创徏以下表和存储q程Q?/p>

  

以下是引用片D:
CREATE TABLE TestTable
   (Col1 int IDENTITY,
   Col2 varchar(50),
   Col3 int);
  
  CREATE PROCEDURE UpdateTestTable
   @Col2 varchar(50),
   @Col3 int
  AS
  BEGIN
   UPDATE TestTable
   SET Col2 = @Col2, Col3 = @Col3
  END;
在下面的实例中,向此函C?AdventureWorks CZ数据库的打开q接Qƈ使用 execute Ҏ(gu)调用 UpdateTestTable 存储q程Q然后?getUpdateCount Ҏ(gu)q回受存储过E媄响的行计数?
以下是引用片D:
public static void executeUpdateStoredProcedure(Connection con) ...{
   try ...{
   CallableStatement cstmt = con.prepareCall("{call dbo.UpdateTestTable(?, ?)}");
   cstmt.setString(1, "A");
   cstmt.setInt(2, 100);
   cstmt.execute();
   int count = cstmt.getUpdateCount();
   cstmt.close();
  
   System.out.println("ROWS AFFECTED: " + count);
   }
   catch (Exception e) ...{
   e.printStackTrace();
   }
  }


矿矿 2008-11-07 22:21 发表评论
]]>
Java调用SQL Server的存储过E详解[转]http://m.tkk7.com/zhukuanglong/archive/2008/11/07/239335.html矿矿矿矿Fri, 07 Nov 2008 14:16:00 GMThttp://m.tkk7.com/zhukuanglong/archive/2008/11/07/239335.htmlhttp://m.tkk7.com/zhukuanglong/comments/239335.htmlhttp://m.tkk7.com/zhukuanglong/archive/2008/11/07/239335.html#Feedback0http://m.tkk7.com/zhukuanglong/comments/commentRss/239335.htmlhttp://m.tkk7.com/zhukuanglong/services/trackbacks/239335.html[转]自天极网

1使用不带参数的存储过E?/strong>

  使用 JDBC 驱动E序调用不带参数的存储过E时Q必M?call SQL 转义序列。不带参数的 call 转义序列的语法如下所C:

  

以下是引用片D:
{call procedure-name}

  作ؓ实例Q在 SQL Server 2005 AdventureWorks CZ数据库中创徏以下存储q程Q?/p>

  

以下是引用片D:
CREATE PROCEDURE GetContactFormalNames
  AS
  BEGIN
   SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName
   FROM Person.Contact
  END
此存储过E返回单个结果集Q其中包含一列数??Person.Contact 表中前十个联pMh的称呹{名U和姓氏l成)?

  在下面的实例中,向此函C?AdventureWorks CZ数据库的打开q接Q然后?executeQuery Ҏ(gu)调用 GetContactFormalNames 存储q程?/p>

 

以下是引用片D:
  public static void executeSprocNoParams(Connection con) ...{
   try ...{
   Statement stmt = con.createStatement();
  ResultSet rs = stmt.executeQuery("{call dbo.GetContactFormalNames}");
  
   while (rs.next()) ...{
 System.out.println(rs.getString("FormalName"));
  }
  rs.close();
  stmt.close();
  }
  catch (Exception e) ...{
  e.printStackTrace();
  }
  }

  2使用带有输入参数的存储过E?/strong>

  使用 JDBC 驱动E序调用带参数的存储q程Ӟ必须l合 SQLServerConnection cȝ prepareCall Ҏ(gu)使用 call SQL 转义序列。带?IN 参数?call 转义序列的语法如下所C:

  

以下是引用片D:
{call procedure-name[([parameter][,[parameter]]...)]}

  构?call 转义序列Ӟ请??(问号)字符来指?IN 参数。此字符充当要传递给该存储过E的参数值的占位W。可以?SQLServerPreparedStatement cȝ setter Ҏ(gu)之一为参数指定倹{可使用?setter Ҏ(gu)?IN 参数的数据类型决定?/p>

  ?setter Ҏ(gu)传递值时Q不仅需要指定要在参C使用的实际|q必L定参数在存储q程中的序数位置。例如,如果存储q程包含单个 IN 参数Q则其序数gؓ 1。如果存储过E包含两个参敎ͼ则第一个序数gؓ 1Q第二个序数gؓ 2?/p>

  作ؓ如何调用包含 IN 参数的存储过E的实例Q?SQL Server 2005 AdventureWorks CZ数据库中?uspGetEmployeeManagers 存储q程。此存储q程接受名ؓ EmployeeID 的单个输入参?它是一个整数?Q然后基于指定的 EmployeeID q回雇员及其l理的递归列表。下面是调用此存储过E的 Java 代码Q?/p>

  

 

以下是引用片D:
  public static void executeSprocInParams(Connection con) ...{
   try ...{
   PreparedStatement pstmt = con.prepareStatement("{call dbo.uspGetEmployeeManagers(?)}");
   pstmt.setInt(1, 50);
   ResultSet rs = pstmt.executeQuery();
   while (rs.next()) ...{
   System.out.println("EMPLOYEE:");
   System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
   System.out.println("MANAGER:");
   System.out.println(rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName"));
   System.out.println();
   }
   rs.close();
   pstmt.close();
   }
   catch (Exception e) ...{
   e.printStackTrace();
   }
  }

  3使用带有输出参数的存储过E?/strong>

  使用 JDBC 驱动E序调用此类存储q程Ӟ必须l合 SQLServerConnection cȝ prepareCall Ҏ(gu)使用 call SQL 转义序列。带?OUT 参数?call 转义序列的语法如下所C:

  

以下是引用片D:
{call procedure-name[([parameter][,[parameter]]...)]}

  构?call 转义序列Ӟ请??(问号)字符来指?OUT 参数。此字符充当要从该存储过E返回的参数值的占位W。要?OUT 参数指定|必须在运行存储过E前使用 SQLServerCallableStatement cȝ registerOutParameter Ҏ(gu)指定各参数的数据cd?/p>

  使用 registerOutParameter Ҏ(gu)?OUT 参数指定的值必L java.sql.Types 所包含?JDBC 数据cd之一Q而它又被映射成本?SQL Server 数据cd之一。有?JDBC ?SQL Server 数据cd的详l信息,请参阅了?JDBC 驱动E序数据cd?/p>

  当?zhn)对?OUT 参数?registerOutParameter Ҏ(gu)传递一个值时Q不仅必L定要用于此参数的数据cdQ而且必须在存储过E中指定此参数的序号位置或此参数的名U。例如,如果存储q程包含单个 OUT 参数Q则其序数gؓ 1;如果存储q程包含两个参数Q则W一个序数gؓ 1Q第二个序数gؓ 2?/p>

  作ؓ实例Q在 SQL Server 2005 AdventureWorks CZ数据库中创徏以下存储q程Q?Ҏ(gu)指定的整?IN 参数 (employeeID)Q该存储q程也返回单个整?OUT 参数 (managerID)。根?HumanResources.Employee 表中包含?EmployeeIDQOUT 参数中返回的gؓ ManagerID?/p>

  在下面的实例中,向此函C?AdventureWorks CZ数据库的打开q接Q然后?execute Ҏ(gu)调用 GetImmediateManager 存储q程Q?/p>

 

以下是引用片D:
  public static void executeStoredProcedure(Connection con) ...{
   try ...{
   CallableStatement cstmt = con.prepareCall("{call dbo.GetImmediateManager(?, ?)}");
   cstmt.setInt(1, 5);
   cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
   cstmt.execute();
   System.out.println("MANAGER ID: " + cstmt.getInt(2));
   }
   catch (Exception e) ...{
   e.printStackTrace();
   }
  } 

本示例用序号位|来标识参数。或者,也可以用参数的名称(而非其序号位|?来标识此参数。下面的代码CZ修改了上一个示例,以说明如何在 Java 应用E序中用命名参数。请注意Q这些参数名U对应于存储q程的定义中的参数名Uͼ CREATE PROCEDURE GetImmediateManager

 
以下是引用片D:
 @employeeID INT,
   @managerID INT OUTPUT
  AS
  BEGIN
   SELECT @managerID = ManagerID
   FROM HumanResources.Employee
   WHERE EmployeeID = @employeeID
  END
  存储q程可能q回更新计数和多个结果集。Microsoft SQL Server 2005 JDBC Driver 遵@ JDBC 3.0 规范Q此规范规定在检?OUT 参数之前应检索多个结果集和更新计数。也是_应用E序应先索所?ResultSet 对象和更新计敎ͼ然后使用 CallableStatement.getter Ҏ(gu)?OUT 参数。否则,当检?OUT 参数Ӟ未索的 ResultSet 对象和更新计数将丢失?

  4 使用带有q回状态的存储q程

  使用 JDBC 驱动E序调用q种存储q程Ӟ必须l合 SQLServerConnection cȝ prepareCall Ҏ(gu)使用 call SQL 转义序列。返回状态参数的 call 转义序列的语法如下所C:

 

以下是引用片D:
 {[?=]call procedure-name[([parameter][,[parameter]]...)]}
  构?call 转义序列Ӟ请??(问号)字符来指定返回状态参数。此字符充当要从该存储过E返回的参数值的占位W。要回状态参数指定|必须在执行存储过E前使用 SQLServerCallableStatement cȝ registerOutParameter Ҏ(gu)指定参数的数据类型?

  此外Q向 registerOutParameter Ҏ(gu)传递返回状态参数值时Q不仅需要指定要使用的参数的数据cdQ还必须指定参数在存储过E中的序C|。对于返回状态参敎ͼ其序C|始lؓ 1Q这是因为它始终是调用存储过E时的第一个参数。尽?SQLServerCallableStatement cL持用参数的名称来指C特定参敎ͼ但?zhn)只能对返回状态参C用参数的序号位置~号?/p>

  作ؓ实例Q在 SQL Server 2005 AdventureWorks CZ数据库中创徏以下存储q程Q?/p>

  

以下是引用片D:
CREATE PROCEDURE CheckContactCity
   (@cityName CHAR(50))
  AS
  BEGIN
   IF ((SELECT COUNT(*)
   FROM Person.Address
   WHERE City = @cityName) > 1)
   RETURN 1
  ELSE
   RETURN 0
  END
  该存储过E返回状态?1 ?0Q这取决于是否能在表 Person.Address 中找?cityName 参数指定的城市?

  在下面的实例中,向此函C?AdventureWorks CZ数据库的打开q接Q然后?execute Ҏ(gu)调用 CheckContactCity 存储q程Q?/p>

 

以下是引用片D:
 public static void executeStoredProcedure(Connection con) ...{
   try ...{
   CallableStatement cstmt = con.prepareCall("{? = call dbo.CheckContactCity(?)}");
   cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
   cstmt.setString(2, "Atlanta");
   cstmt.execute();
   System.out.println("RETURN STATUS: " + cstmt.getInt(1));
   }
   cstmt.close();
   catch (Exception e) ...{
   e.printStackTrace();
   }
  }
  5 使用带有更新计数的存储过E?/strong>

  使用 SQLServerCallableStatement cL建对存储q程的调用之后,可以使用 execute ?executeUpdate Ҏ(gu)中的L一个来调用此存储过E。executeUpdate Ҏ(gu)返回一?int |该值包含受此存储过E媄响的行数Q但 execute Ҏ(gu)不返回此倹{如果?execute Ҏ(gu)Qƈ且希望获得受影响的行数计敎ͼ则可以在q行存储q程后调?getUpdateCount Ҏ(gu)?/p>

  作ؓ实例Q在 SQL Server 2005 AdventureWorks CZ数据库中创徏以下表和存储q程Q?/p>

  

以下是引用片D:
CREATE TABLE TestTable
   (Col1 int IDENTITY,
   Col2 varchar(50),
   Col3 int);
  
  CREATE PROCEDURE UpdateTestTable
   @Col2 varchar(50),
   @Col3 int
  AS
  BEGIN
   UPDATE TestTable
   SET Col2 = @Col2, Col3 = @Col3
  END;
在下面的实例中,向此函C?AdventureWorks CZ数据库的打开q接Qƈ使用 execute Ҏ(gu)调用 UpdateTestTable 存储q程Q然后?getUpdateCount Ҏ(gu)q回受存储过E媄响的行计数?
以下是引用片D:
public static void executeUpdateStoredProcedure(Connection con) ...{
   try ...{
   CallableStatement cstmt = con.prepareCall("{call dbo.UpdateTestTable(?, ?)}");
   cstmt.setString(1, "A");
   cstmt.setInt(2, 100);
   cstmt.execute();
   int count = cstmt.getUpdateCount();
   cstmt.close();
  
   System.out.println("ROWS AFFECTED: " + count);
   }
   catch (Exception e) ...{
   e.printStackTrace();
   }
  }


矿矿 2008-11-07 22:16 发表评论
]]>
SQL高之简易银行系l?/title><link>http://m.tkk7.com/zhukuanglong/archive/2008/10/31/237873.html</link><dc:creator>矿矿</dc:creator><author>矿矿</author><pubDate>Fri, 31 Oct 2008 11:31:00 GMT</pubDate><guid>http://m.tkk7.com/zhukuanglong/archive/2008/10/31/237873.html</guid><wfw:comment>http://m.tkk7.com/zhukuanglong/comments/237873.html</wfw:comment><comments>http://m.tkk7.com/zhukuanglong/archive/2008/10/31/237873.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/zhukuanglong/comments/commentRss/237873.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/zhukuanglong/services/trackbacks/237873.html</trackback:ping><description><![CDATA[<p>--创徏数据?br /> use master <br /> go<br /> if exists(select * from sysdatabases where name = 'BankDB')<br /> drop database BankDB<br /> go<br /> exec xp_cmdshell 'md E:\q?,NO_OUTPUT<br /> create database BankDB<br /> go<br /> use BankDB<br /> --创徏帐户信息表AccountInfo<br /> if exists(select * from sysobjects where name = 'AccountInfo')<br /> drop table AccountInfo<br /> go<br /> create table AccountInfo<br /> (<br /> CustID int identity(1,1) primary key,<br /> CustName varchar(20) not null,<br /> IDCard varchar(18) check(len(IDCard) = 15 or len(IDCard) = 18),<br /> TelePhone varchar(13) check(len(TelePhone)=11 or len(TelePhone) like'[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or len(TelePhone) like'[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') ,<br /> Address varchar(50) default '地址不详'<br /> )<br /> go<br /> --创徏信用卡信息表CardInfo<br /> if exists(select * from sysobjects where name = 'CardInfo')<br /> drop table CardInfo<br /> go<br /> create table CardInfo<br /> (<br /> CardID varchar(19) check(len(CardID)=19) primary key,<br /> CardPassWord varchar(6) default'888888',<br /> CustID int references AccountInfo(CustID),<br /> SaveType varchar(10) not null check(SaveType in('zL','定期')),<br /> OpenDate datetime not null default(getdate()),<br /> OpenMoney money not null check(OpenMoney >= 1),<br /> LeftMoney money not null check(LeftMoney >= 1),<br /> IsLoss varchar(2) not null check(IsLoss in('?,'?)) default '?<br /> )<br /> go<br /> --创徏交易信息表TransInfo<br /> if exists(select * from sysobjects where name = 'TransInfo')<br /> drop table TransInfo<br /> go<br /> create table TransInfo<br /> (<br /> CardID varchar(19) not null,<br /> TransType varchar(4) not null check(TransType in('存入','支取')),<br /> TransMoney money not null check(TransMoney > 0),<br /> TransDate datetime default(getdate())<br /> )<br /> go</p> <p><br /> -------------------------------插入试数据-------------------------------------<br /> ---为AccountInfo表插入测试数?br /> insert into AccountInfo values('孙?zhn)I?,'422322123902140019','027-8888988','花果?)<br /> insert into AccountInfo values('唐僧','422322001902140019','027-8536896','大唐')<br /> insert into AccountInfo values('沙和?,'410334020157144719','13295654665','通天?)<br /> ---为CardInfo表插入测试数?br /> insert into CardInfo values('1027 3726 1536 1135',default,1,'定期',default,500.00,500.00,default)<br /> insert into CardInfo values('1029 3526 1235 1235',default,2,'zL',default,1500.00,1500.00,default)<br /> insert into CardInfo values('1324 7532 1536 1935',default,3,'zL',default,4500.00,4500.00,default)</p> <p><br /> ---表的查看<br /> select * from AccountInfo</p> <p>select * from CardInfo</p> <p>select * from TransInfo</p> <p>-----------------T-SQL----------------------------<br /> --孙?zhn)IZ改密?br /> update CardInfo set CardPassWord = 611234 where CustID = 1</p> <p>--孙?zhn)I取?br /> --事务开?br /> begin transaction tran_Qu<br /> --定义一个用于记录错误的变量<br /> declare @tran_error int<br /> set @tran_error = 0;<br /> --孙(zhn)空交易q行记录<br /> insert into TransInfo values('1027 3726 1536 1135','支取',200.00,getdate())<br /> set @tran_error = @tran_error + @@error<br /> --从孙(zhn)空的帐户中减去200.00<br /> update CardInfo set LeftMoney = LeftMoney - 200<br /> where CardID = '1027 3726 1536 1135'<br /> set @tran_error = @tran_error + @@error<br /> if @tran_error <> 0<br />    begin<br />       --执行错误Q回滚事?br />       rollback transaction<br />       print '支取p|Q交易已取消'<br />    end<br /> else<br />   begin<br />     --没有发现错误Q提交事?br />     commit transaction<br />     print'交易成功Q已保存新数?<br />   end<br /> go<br /> select * from CardInfo where CustID = 1</p> <p>--沙和存?br /> begin transaction tran_bring<br /> declare @tran_error int<br /> set @tran_error = 0;<br /> insert into TransInfo values('1324 7532 1536 1935','存入',1200.00,getdate())<br /> set @tran_error = @tran_error + @@error<br /> update CardInfo set LeftMoney = LeftMoney + 1200<br /> where CardID = '1324 7532 1536 1935'<br /> set @tran_error = @tran_error + @@error<br /> if @tran_error <> 0<br />    begin<br />       rollback transaction<br />       print '存入p|Q交易已取消'<br />    end<br /> else<br />   begin<br />     commit transaction<br />     print'交易成功Q已保存新数?<br />   end<br /> go<br /> select * from CardInfo where CustID = 3</p> <p>--唐僧卡丢?br /> update CardInfo set IsLoss='? where CustID = 2</p> <p>--查询最q?0开L银行卡信?br /> select * from CardInfo where datediff(dd,OpenDate,getdate()) <= 10</p> <p>--查询最大交易的卡信?br /> declare @maxMoney money<br /> select @maxMoney = max(TransMoney) from TransInfo<br /> select * from CardInfo where CardID in(select CardID from TransInfo where TransMoney = @maxMoney)</p> <p>--查询交易信息表中ȝ交易<br /> declare @allMoney money<br /> declare @QuMoney money<br /> declare @CunMoney money<br /> select @allMoney = sum(TransMoney) from TransInfo<br /> select @QuMoney = sum(TransMoney) from TransInfo where TransType = '支取'<br /> select @CunMoney = sum(TransMoney) from TransInfo where TransType = '存入'<br /> print 'M易金额:' + convert(varchar(10),@allMoney)<br /> print '支取交易金额Q? + convert(varchar(10),@QuMoney)<br /> print '存入交易金额Q? + convert(varchar(10),@CunMoney)</p> <p>--l交易信息表加上非聚集烦引,q利用非聚集索引查询数据<br /> if exists(select * from sysobjects where name = 'IX_CardID')<br /> drop index BankDB.IX_CardID<br /> go<br /> create nonclustered index IX_CardID<br /> on TransInfo(CardID)<br /> with fillfactor = 30<br /> go<br /> select * from TransInfo with(index = IX_CardID) where CardID = '1324 7532 1536 1935'</p> <p>--查询挂失的̎户信?br /> select * from AccountInfo where CustID in(select CustID from CardInfo where IsLoss = '?)</p> <p><br /> --账户信息视图<br /> if exists(select * from sysobjects where name = 'view_AccountCardInfo')<br /> drop view view_AccountCardInfo<br /> go<br /> create view view_AccountCardInfo<br /> as<br /> select AccountInfo.CustID '帐户~号',CustName '帐户姓名',IDCard'w䆾证号?,TelePhone'客户?sh)?,Address'客户地址',<br />         CardID'信用卡编?,SaveType'储蓄cd',OpenDate'开h?,OpenMoney'开户金?,IsLoss'是否挂失'<br /> from AccountInfo join CardInfo<br /> on AccountInfo.CustID = CardInfo.CustID<br /> go<br /> select * from view_AccountCardInfo</p> <p>--交易信息视图<br /> if exists(select * from sysobjects where name = 'view_TransInfo')<br /> drop view view_TransInfo<br /> go<br /> create view view_TransInfo<br /> as<br /> select CardID '卡号',TransType '交易cd',TransMoney '交易金额',TransDate '交易旉'<br /> from TransInfo<br /> go<br /> go<br /> select * from view_TransInfo</p> <p>---------------W三阶段----------------<br /> --------T-SQL-------------<br /> if exists(select name from sysobjects where name = 'Tri_TransInfo_Insert')<br /> drop trigger Tri_TransInfo_Insert<br /> go<br /> create trigger Tri_TransInfo_Insert on TransInfo for insert<br /> as<br />  declare @TempTransType varchar(10)     --定义临时的变量存放交易类?br />  declare @TempTransMoney money          --定义临时的变量存放交易金?br />  declare @TempCardID varchar(19)        --定义临时的变量存攑֍?br />  declare @TempLeftMoney money           --定义临时的变量存攑֮L余额<br />  <br /> --从inserted临时表中取出数据赋?br /> select @TempTransType = TransType,@TempTransMoney = TransMoney,@TempCardID = CardID<br /> from inserted<br /> select @TempLeftMoney = LeftMoney from CardInfo where CardID = @TempCardID</p> <p>if(@TempTransType = '支取')       <br />   begin<br />     if(@TempLeftMoney - @TempTransMoney >=1)   <br />        begin<br />           update CardInfo set LeftMoney = @TempLeftMoney - @TempTransMoney where CardID = @TempCardID<br />           print '交易成功Q?<br />        end<br />      else<br />        begin<br />           rollback transaction<br />           print '余额不Q交易失败!'<br />        end<br />   end<br /> else<br />   begin<br />     update CardInfo set LeftMoney = @TempLeftMoney + @TempTransMoney where CardID = @TempCardID<br />     print '交易成功Q?<br />   end<br /> select @TempLeftMoney = LeftMoney from CardInfo where CardID = @TempCardID   <br /> print '卡号Q? + convert(varchar(19),@TempCardID) + '  余额Q? + convert(varchar(10),@TempLeftMoney)<br /> go<br /> set nocount on   --不显C句媄响记录行?br /> --试触发?沙和支?br /> insert into TransInfo(CardID,TransType,TransMoney) values('9645 9087 9371 4492','支取',500)<br /> go</p> <p>select * from TransInfo<br /> select * from accountinfo<br /> select * from CardInfo</p> <p>--利用存储q程实现备䆾交易信息的业?br /> if exists(select *from sysobjects where name = 'Proc_Backup_TransInfo')<br />     drop procedure Proc_Backup_TransInfo<br /> go<br /> create procedure Proc_Backup_TransInfo<br /> @BackupDate datetime<br /> as<br /> declare @MyError int<br /> set @MyError = 0<br /> print '开始备?.....'<br /> if exists(select * from sysobjects where name ='Back_TransInfo')<br /> begin<br />  begin tran  <br />  insert into Back_TransInfo select * from TransInfo where datediff(dd,TransDate,getdate()) >=0<br /> set @MyError = @MyError + @@error<br /> if @MyError != 0<br />    begin<br />        rollback transaction<br />       print '备䆾p|'<br />    end<br /> else<br />   begin<br />       commit transaction<br />        print'备䆾成功'<br />    end<br />   end<br /> else <br />   begin<br />     begin tran  <br />     select * into Back_TransInfo from TransInfo where datediff(dd,TransDate,getdate()) >=0<br />     set @MyError = @MyError + @@error<br /> if @MyError != 0<br />    begin<br />       rollback transaction<br />       print '备䆾p|!'<br />    end<br /> else<br />    begin<br />       commit transaction<br />       print '备䆾成功!'<br />    end<br /> end<br /> go<br /> insert into TransInfo values('1324 7532 1536 1935','支取',500.00,getdate())  <br /> insert into TransInfo values('1324 7532 1536 1935','支取',500.00,getdate())<br /> insert into TransInfo values('1324 7532 1536 1935','支取',500.00,getdate())<br /> declare @BackDate datetime<br /> set @BackDate = getDate()<br /> exec Proc_Backup_TransInfo '2008-10-31'<br /> go<br /> select * from Back_TransInfo</p> <p>--实现银行卡的存储q程<br /> if exists(select * from sysobjects where name = 'Proc_GetCardID')<br />     drop procedure Proc_GetCardID<br /> go<br /> create procedure Proc_GetCardID<br /> @CardID varchar(19) output<br /> as<br /> declare @TempRand numeric(18,16)<br /> declare @TempStr varchar(18)<br /> set @TempRand = rand(datepart(ms,getdate())*10000)<br /> set @TempStr = convert(varchar(18),@TempRand)<br /> set @CardID = substring(@TempStr,3,4)+' '+substring(@TempStr,7,4)+' '+substring(@TempStr,11,4)+' '+substring(@TempStr,15,4)<br /> go<br /> declare @MyCardID varchar(19)<br /> exec Proc_GetCardID @MyCardID output<br /> print '产生的随卛_hQ? + @MyCardID<br /> go</p> <p>--实现开L存储q程<br /> if exists(select * from sysobjects where name = 'Proc_OpenAcount')<br />     drop procedure Proc_OpenAcount<br /> go<br /> create procedure Proc_OpenAcount<br /> @CustName varchar(20),<br /> @IDCard varchar(18),<br /> @Telephone varchar(13),<br /> @OpenMoney money = 1,<br /> @SaveType varchar(10) = 'zL',<br /> @Address varchar(50)= '地址不详'<br /> as<br />  declare @MyCardID varchar(19)<br />  declare @MyCustID int<br />  exec Proc_GetCardID @MyCardID output<br /> while(1=1)<br />  begin<br />  if exists(select * from CardInfo where CardID = @MyCardID)<br />  exec Proc_GetCardID @MyCardID output<br /> else<br />  break<br />  end<br /> insert into AccountInfo values(@CustName,@IDCard,@TelePhone,@Address)   <br /> select @MyCustID = CustID from AccountInfo where IDCard = @IDCard       <br /> insert into CardInfo values(@MyCardID,default,@MyCustID,@SaveType,default,@OpenMoney,@OpenMoney,default)<br /> print '敬的客P' +@CustName +'开h功,卡号为:'+@MyCardId</p> <p>print '产生的随机卡号ؓQ? + @MyCardID<br /> exec Proc_OpenAcount '白骨_?,'245687556977812345','12478964568'<br /> exec Proc_OpenAcount '嫦娥公主','745687476912812335','14796653141',@Address = '月亮'</p> <p>----销?br /> if exists(select * from sysobjects where name = 'Proc_DropAcount')<br />     drop procedure Proc_DropAcount<br /> go<br /> create procedure Proc_DropAcount<br />  --@CardID varchar(19)<br /> @IDCard varchar(18) --w䆾证号<br /> as<br /> declare @TempCustID int<br /> declare @TempLeftMoney money<br /> --select @TempCustID = CustID from CardInfo where CardID = @CardID  <br /> --select @TempLeftMoney = LeftMoney from CardInfo where CardID = @CardID <br /> print '该帐户余额:' +convert(varchar(10),@TempLeftMoney)+'正在取出。。?<br /> delete from CardInfo where custid in(select custid from accountinfo where IDCard=@IDCard)<br /> delete from  AccountInfo where IDCard=@IDCard<br /> go<br /> declare @CardID varchar(19)<br /> select @CardID = CardID from CardInfo where CustID in(select CustID from AccountInfo where CustName = '唐僧')<br /> exec Proc_DropAcount '422322001902140019'--Ҏ(gu)w䆾证号删除<br /> go<br /> ---表的查看<br /> select * from AccountInfo<br /> select * from CardInfo</p> <img src ="http://m.tkk7.com/zhukuanglong/aggbug/237873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/zhukuanglong/" target="_blank">矿矿</a> 2008-10-31 19:31 <a href="http://m.tkk7.com/zhukuanglong/archive/2008/10/31/237873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA 新手学习Q?3Q[q蝲]http://m.tkk7.com/zhukuanglong/archive/2008/10/26/236752.html矿矿矿矿Sun, 26 Oct 2008 13:04:00 GMThttp://m.tkk7.com/zhukuanglong/archive/2008/10/26/236752.htmlhttp://m.tkk7.com/zhukuanglong/comments/236752.htmlhttp://m.tkk7.com/zhukuanglong/archive/2008/10/26/236752.html#Feedback0http://m.tkk7.com/zhukuanglong/comments/commentRss/236752.htmlhttp://m.tkk7.com/zhukuanglong/services/trackbacks/236752.htmlcd对象Q?br />  c:主观抽象Q是对象的模板,可以实例化对?br />   习惯上类的定义格式:
   package xxx;  
   import xxx;  
   public class Xxxx{
    属?······;
    
    构造器 ······;
    
    Ҏ(gu) ······;
   }

  定义属性:实例变量
   格式Q[ 修饰W?]  cd 变量?nbsp; [ = ? ]
   实例变量定义在类中但在Q何方法之外?br />    实例变量有默认|各种各样??同数l?
   实例变量的作用域臛_在本cd部,受访问控制符的限制?br />    在重合作用域Q实例变量和局部变量允许有命名冲突Q?#8220;局部优?#8221;?br />    
  定义Ҏ(gu)Q?br />    格式Q?[ 修饰W?]  q回cd Ҏ(gu)? 参数列表 ) [ throws  异常 ] { ······ }
   java中所有参数都是g递?br />       当没有D回时Q返回类型必被定义为void?
   q回cd必须与方法名盔RQ其他修饰符可以调换位置?br />    
  构造器Q?br />    在创建对象的q程中调用的Ҏ(gu)?br />    构造器没有q回cd?br />    构造器的名字与cd相同?br />    格式为:[ 修饰W?]  cd( 参数列表 ){  }Q修饰符可以是private?protected?default、private
   在一个对象的生成周期中构造器只用一ơ,ql自动调用,不允许手工调用?br />    E序员没有提供一个构造器Q系l会自动提供一个无参的构造器?br />    获得对象的方式:
    通过newQ在堆空间中甌分配I间Q,new cd()Q可以通过q种形式或的一个对象,q时的对象是无法使用Q必L他的地址存放q一个对象变量才能够使用?br />     例如 Q?br />      Car c=new Car();
   注意Q?br />     最好在写类时提供一个无参的构造器?br />       
  this关键字:
   this是个隐式参数Q代表当前对?
    publie class Student{
     private String name;
     public void setName(String name){
      this.name=name;  //this.name为当前对象的成员变量
     }
    }
    
   如果某个构造方法的W一个语句具有Ş式this( ··· )Q那么这个构造方法将调用同一cM的其他构造方法?br />    
          注意Q?br />            在构造器中this(...)必须攑֜该构造器的第一行?br />     this不能出现在静态方法里?nbsp; 
 
 cR对象、实例三者的关系Q?br />   c:是对象的模板Q可以实例化对象
  对象Q类的个?br />   实例Q实现的对象
  student s; 
  s=new student();
   其中 Student为类Qs为对象,new Student()为实例,s赋值后也是实例了?/p>

Ҏ(gu)重蝲Q?br />  Ҏ(gu)名相同,参数表不同,不考虑q回值类?但最好还是ɘq回cd一??br />  ~译器根据参敎ͼ选择一个方法,如果没有完全匚w的,对于参数表采?#8220;向上p匚w原则”Q但不允许模׃可?br />  Ҏ(gu)重蝲屏蔽了一个对象的同一cL法由于参C同所造成的差异?br />    
装Q?br />  cȝ属性加private修饰W,来限制只能够在类的内部进行访问,有效的保护数据?br />  对于cM的私有属性,要对其给ZҎ(gu)法getXxx()QsetXxx()讉KU有属性,保证对私有属性的操作的安全性?br />  Ҏ(gu)公开的是Ҏ(gu)的声明,卛_ȝ道参数和q回值就可以调用该方法,隐藏Ҏ(gu)的实现的l节?br />  一个对象和外界的联pd当通过一个统一的接口,应当公开的公开Q应当隐藏的隐藏?br />   
l承Q?br />  父类到子cL从一般到Ҏ(gu)的关pR?br />   泛化Q将不同子类中的共性抽象成父类的过E?br />   特化Q在原有父类的基上加入一些个性的q程?br />   原则Q父cL共性,子类放个性?br />  l承的关键字Qextends
 Java只支持单l承Q一个类最多只有一个直接的父类?/p>

      Ҏ(gu)覆盖Q?br />   Ҏ(gu)名:相同
  参数表:相同
  讉K限制W:相同或者更?br />   q回值类型:相同或者子c返回的cd是父c返回的cd的子c(在JDK5.0以后Q?br />   抛出的异常:不能比父cL宽?br />     
      super关键字:
  super()表示调用父类的构造器
  super()也和this()一样必L在方法的W一?br />   super()和this()不能同时出现        
  super可以屏蔽子类属性和父类属性重名时带来的属性遮盖,super. 表示调用父类的方法或属?br />   在子cȝ构造器中如果没有指定调用父cȝ哪一个构造器Q那么就会调用父cȝ无参构造器Q即super()
  
 注意Q?br />   父类的构造器不能被子cȝ?br />   Ҏ(gu)和属性可以被l承Q权限不限制能否l承q来Q限制的是能否直接访?br />   先构造父c,后构造子c,先this后super
  
多态:
 多态分ZU:~译时多态和q行时多态?br />   ~译时类型:主观概念Q把它看作什么?br />   q行时类型:客观概念Q实际它是什么?br />     例:Animal a=new Dog();
         指着狗问Q这个动物是什么?
         
      q行时多态的三原则:
  对象cd不变?br />   只能对对象调用编译时cd中定义的Ҏ(gu)?br />   在程序的q行ӞҎ(gu)对象的运行时cdQ找覆盖后的Ҏ(gu)来调用。(q行时动态类型绑定)
  
      强制cd转换Q?一定没有新对象生成?父类的引用赋值给子类的引用需要进行强制类型{?
      关键字:instanceof
           用法Q引?nbsp; instanceof  cd    判断q个引用所指向的对象是否属于这个类?br />     用在强制转换之前Q避免类型{换异常?br />    if(a instanceof Dog){
    Dog d=(Dog)a;
   }
   
 多态的作用Q把不同的子cd象都当作父类来看Q可以屏蔽不同子cd象之间的差异Q写出通用的代码,做出通用的编E,以适应需求的不断变化?/p>

矿矿 2008-10-26 21:04 发表评论
]]>
变量--新手学习Q?2Q[q蝲]http://m.tkk7.com/zhukuanglong/archive/2008/10/20/235555.html矿矿矿矿Mon, 20 Oct 2008 14:43:00 GMThttp://m.tkk7.com/zhukuanglong/archive/2008/10/20/235555.htmlhttp://m.tkk7.com/zhukuanglong/comments/235555.htmlhttp://m.tkk7.com/zhukuanglong/archive/2008/10/20/235555.html#Feedback0http://m.tkk7.com/zhukuanglong/comments/commentRss/235555.htmlhttp://m.tkk7.com/zhukuanglong/services/trackbacks/235555.html局部变量:不是声明在类体括号里面的变量
 (1)必须要先赋|后用,否则通不q编译,局部变量没有默认初始化?br />  (2)作用范围Q定义开始到定义它的代码块结?br />  (3)同一范围内,不允?个局部变量命名冲H?/p>

 参数传递时Q简单类型进行D{?nbsp;(参数q行传递时都会先去栈中生成一个副本的Q用结束后释放)
 
自动cd提升Q?br />  byte a = 1;
 byte b = 2;
 a = a+b;          //~译出错自动cd提升成int
 a += b;       //自加没有自动cd提升问题
 cd自动提升规则Q?br />   a和b作某U运?br />   a和b中有doubleQ结果就是double
  a和b中有floatQ结果就是float
  a和b中有longQ结果就是long
  除此之外Q结果都是int
 把高字节转成低字?需要作强制cd转换. byte c=(byte)a+b;
 
UMq算W:效率最?br />  >>   有符号右U,补符号位
  U负CQ则该数值加32后再q行UM
  数值的2q制是按照补码保存的
 >>>  右移后高位都?
 
逻辑q算W:
 &/|也可以作为逻辑q算W?br />  && 先判断前面一个条Ӟ如果为假Q则不用计算后一个条?br />  || 先判断前面一个条Ӟ如果为真Q则不用计算后一个条?br />  
" + "q算W:
 两个操作的对象是数值时Q是加法
 如果有一个是字符串时Q则是字W串的连?br />  
程控制语句Q?br />  同Core C++
 switch中的变量cd只能是byte?short、int、char四种cd
 
数组Q?br />  声明数组Q?nbsp; 
  数组能以下列形式声明Q?br />    cd[] array;
   cd array[]; 
  注:
   JAVA中推荐用Q类型[] array;
   一个数l是一个对?br />    声明一个数l没有创Z个对?br />    声明时不用指定长?br />    
 创徏数组Q?br />   创徏基本数据cd数组Qint[] i = new int[2];
  创徏引用数据cd数组QStudent[] s = new Student[100];
  数组创徏后其中的元素有初始?br />    cd                     黙认?
   byte                      0
   short                     0
   int                       0
   long                      0l
   float                     0.0f
   double                   0.0d
   char                      \u0000
   boolean                 false
   reference types     null
  注:
   创徏时一定要指定长度
   int[] i2=new int[];            //error
   
 初始化数l:
  声明、创建、初始化分开Q?
   int[] i;   //定义数组
   i = new int[2];  //分配I间
   i[0] = 0;    //初始?br />    i[1] = 1;
   
  声明、创建、初始化在同一旉 Q?br />    int[] i = {0,1};   //昄初始?nbsp; {}中有几个?则数l长度ؓ?br />    Student[] s = {new Student(),new Student()};
   
  注: int[] i=new int[]{1,2,3};      //后面[]中不可以写数?br />    int[] i1=new int[3]{1,2,3};    //error
   
 二维数组Q?其实是一个一l数l,它的每一个元素又是一个一l数l?
  int[][] i1 = new int[2][3];
  int[][] i4 = {{1,1,1},{2,2,2},{3,3,3}};
  int[][] i3 = new int[][3];  //不允讔Rl没分配I间而先l低l分配空?br />   int[][] i2 = new int[2][];
  i2[0] = new int[2];
  i2[1] = new int[3];    
  
 数组长度Q?br />   数组的属性length
  数组长度一旦确?不可改变    
  int[] i = new int[5]; 则i.length= 5
  
 数组拯Q?br />   pȝcSystem提供?br />   static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
   srcQ?源数l?nbsp; 
   srcPosQ?从源数组哪个位置开始拷?位置指的是元素的下标)
   destQ?目标数组
   destPosQ?拯的元素放到目标数l的起始位置
   lengthQ?拯多少?br />    
 数组排序Q?br />   自己实现一个排序方法来q行排序
  或者调用java.util.Arrays.sort(Object o)



矿矿 2008-10-20 22:43 发表评论
]]>
配置java环境变量(新手学习01)http://m.tkk7.com/zhukuanglong/archive/2008/10/14/234298.html矿矿矿矿Tue, 14 Oct 2008 11:44:00 GMThttp://m.tkk7.com/zhukuanglong/archive/2008/10/14/234298.htmlhttp://m.tkk7.com/zhukuanglong/comments/234298.htmlhttp://m.tkk7.com/zhukuanglong/archive/2008/10/14/234298.html#Feedback0http://m.tkk7.com/zhukuanglong/comments/commentRss/234298.htmlhttp://m.tkk7.com/zhukuanglong/services/trackbacks/234298.htmlJAVA_HOMEQ配|JDK的目?br />  CLASSPATHQ指定到哪里Lq行旉要用到的cM码(字节码)
 PATHQ指定可执行E序的位|?br />  
 LINUXpȝQ在" .bash_profile "下的环境变量讄Q?br />   JAVA_HOME=/opt/jdk1.5.0_06
  CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
  PATH=$PATH:$JAVA_HOME/bin:.
  export JAVA_HOME CLASSPATH PATH     (指定的环境变量声明为全局?
   
 windowspȝQ?br />   叛_我的?sh)?->属?->高-->环境变量
  
Java的运行过E:
 ~译Q生成可执行文gQ如C++中利用g++生成a.outQ效率高Q但不跨q_
 解释Q解释器把源文g逐行解释Q跨q_但效率不?br />  
 在java中:先编译后解释Q把.java文g~译?class字节码文?br />   Java源代码文?.java文g)--->
  Java~译?javac)--->
  Java字节码文?.class文gQ^台无关的)--->
  Java解释?java)Q执行Java字节?/p>

Java的垃圑֛Ӟ
 ׃个后台线Egcq行垃圾回收
 虚拟机判定内存不够的时候会中断代码的运行,q时候gc才进行垃圑֛?br />  ~点Q不能够_的去回收内存
 java.lang.System.gc(); 回收内存Q但pȝ不一定回应,他会先去看内存是否够用,够用则不予理睬,不够用才会去q行垃圾回收
 内存中什么算是垃圾:
  不在被引用的对象(局部变量,没有指针指向?
  
java的安全性:
 沙箱机制Q只能做沙箱允许的操?br />  通过下面环节Q实现安?br />   加蝲有用的类文gQ不需要的不加?br />   校验字节码,查看允许的操?br />    查看代码和虚拟机的特性是否相W?br />    查看代码是否有破坏?br />    查看是否有违规操作,如越?br />    查看cd是否匚wQ类型{换是否能正确执行
   
源程序:
 package mypack;  //相当于一个目?br />  
 public class HelloWorld{
  public static void main(String[] args){
   System.out.println(“Hello World”);
  }
 }
 注:
  1、文件名必须和public修饰的类名一_?java作ؓ文g后缀Q如果定义的cM是public的,则文件名与类名可以不同?br />   2、一?java文g中可以有多个classQ但是只有一个public修饰的类?br />   3、java源代码文件编译后Q一个类对应生成一?class文g
  4、一个java应用E序应该包含一个main()Ҏ(gu)Q而且其签名是固定的,它是应用E序的入口方法,可以定义在Q意一个类中,不一定是public修饰的类
  ~译Qjavac -d . HelloWorld.java
   含有包的c,在编译的时候最好用上面的格式,-d指的是让该类生成的时候按照包l构ȝ成," . "指的是在当前路径下生?br />    如果不用上面的格式,也可以用javac HelloWorld.javaQ但是需要注意的是包l构pp己去建立Q然后将生成?class文g攑ֈ该目录下
  执行Qjava mypack.HelloWorld
   字节码文g交给Java虚拟机去解释执行
   需要注意的事,必须使用包名.cd去解释执?br />    
?package)Q把源文件放在目录下
 ׃工程的需要,不同的源文件放在不同的目录下,从而引入了包?br />  包可以看作就是一个存放java源文件的目录?br />  在源码中声明一个包名:package p;(只能攑֜W一行,且最多只能是一?
 如果指定多层包,那么在包名之间我们可以用.作ؓ分隔W:package p1.p2.p3.p4;
 ?#8220;javac HelloWorld.java –d l对路径”Q编译后生成的字节码文g׃攑֜指定的包l构?br />  执行该程序需要用" java 包名.cd "
 引进包中的某个类Qimport 包名.cd;
 引进包中的所有类Qimport 包名.*;
   
注释Q?br />  // 单行注释Q?到本行结束的所有字W会被编译器忽略
 /* */ 多行注释Q?nbsp; ?*  */之间的所有字W会被编译器忽略
 /**  */   文档注释Q?javaҎ(gu)的,?**  */之间的所有字W会被编译器忽略
 可以用javadoc把java源程序中q种注释抽取出来形成html面(只有写在包,c,属性,Ҏ(gu)Q构造器Q引入之前的注释才可以进行抽?
    
标识W:
 命名规则Q?br />   (1) 由字母、数字、下划线?l成Q不能以数字开?br />   (2) 大小写敏?br />   (3) 不得使用java中的关键字和保留?br />  
 关键字:都是写的,jdk1.2多了strictfp(l准点?Q关键字 jdk1.4多了assert(断言)关键字,  jdk1.5多了enum(枚D) 关键?br />   随着学习q度Q会慢慢接触到的
  true、false、null严格说不应该关键字Q应U其Z留字更合?br />  
 习惯Q?br />   (1) 标识W要W合语义信息
  (2) 包名所有字母小?br />   (3) cd每个单词首字母大写,其它?yu)?//TarenaStudent
  (4) 变量和方法:W一个单词小写,从第二个单词开始首字母大写 //tarenaStudent
  (5) 帔RQ所有字母大写,每个单词之间? _ "q接
  
基本数据cdQ?U?br />  1) 整型
  byte       1B  8?nbsp;      -128?27
  short      2B  16?nbsp;     -2^15?2^15)-1
  int          4B  32?nbsp;     -2^31?2^31)-1
  long        8B  64?nbsp;     -2^63?2^63)-1
 2) 点cd
  float        4B   32?nbsp;     
  double     8B   64?
 3) 字符cd
    char       2B 16? 
 4) 布尔? 1B
  boolean    false/true
  
 注:
  1、Java中的自动cd提升问题?br />    1)、正向过E:从低字节到高字节可以自动转换?br />     byte->short->int->long->float->double
   2)、逆向q程Q从高字节到低字节用强制cd转换?br />     例:int a = (int)4.562Q?br />     注:逆向转换丢q度?br />    2、booleanQ只有true和false?br />    3、charQJava中用" \u四位十六q制的数?(即在注释中出现\uQ后面如果跟的不?个数字,也会报错)"表示字W{换成对应的unicode~码Q字W类型要用单引号括v来?br />    4、黙认Q点类型ؓdoubleQfloat数据cd有一个后~? f "? F "?br />    5、longcd有一个后~Qؓ" l " 或? L "
 
引用数据cdQ?br />  cR接口、数l?br />  引用cd 变量?= new 引用cd?参数);  //new后面一般跟的都是类的构造器
 成员Q写在类体括号里面的
 
内存I间的分配:
 内存分ؓQ?br />   栈:存放单数据类型变?值和变量名都存在栈中)Q存攑ּ用数据类型的变量名以及它所指向的实例的首地址
  堆:存放引用数据cd的实?/p>

矿矿 2008-10-14 19:44 发表评论
]]>
中国软g商机的“金角银边草肚皮”[转]http://m.tkk7.com/zhukuanglong/archive/2008/10/09/233417.html矿矿矿矿Thu, 09 Oct 2008 11:01:00 GMThttp://m.tkk7.com/zhukuanglong/archive/2008/10/09/233417.htmlhttp://m.tkk7.com/zhukuanglong/comments/233417.htmlhttp://m.tkk7.com/zhukuanglong/archive/2008/10/09/233417.html#Feedback0http://m.tkk7.com/zhukuanglong/comments/commentRss/233417.htmlhttp://m.tkk7.com/zhukuanglong/services/trackbacks/233417.html 

在中国,做Y件是当今最旉的事情,但做软g早已不仅仅是商业Q而已l上升ؓ一门艺术;早已l不是真正搞软g的h独占的地盘,而是融入房地产商、硬件厂商、服务商、各cL等三教?ji)流无所不包的社会大局。  昄Q这是一ơ几十年不遇的政{机遇,其最大h(hun)g在于真正的Y件业本w,不在于Y件业务本w。因为真正的中国软g市场现在撑死也就200个亿Q而且大部?2Q?以上)由国外Y件公司所占有。但是,q次以Y件ؓ名义的热潮,其调动和转移的胦富和资源Q是千亿甚至万亿计的Q是软g业本w的1?个数量以上Q甚至也是几q前互联|热潮的2?个数量以上。这是所有试图把握Y件机遇的人,必须首先判明的方向性问题?
  我们借用围棋的术语,可以把商机划分ؓ“金角银边草肚?#8221;Q鲜明地分析如下Q?
  1、金角:最软的高科技和最土的房地产,鲜花插牛_也好,天造一双地配一对也好,反正今后今年他们都将如胶似漆Q以软g的名义,全国各省市,各区厉K有成千上万亩的土地UL成ؓ软g园,q无疑是房地产的大好机遇。因此,各地的Y件园和Y件学院,以及其他以Y件名义腾出的地皮Q是q场软g热潮的h(hun)值核心?
  2、银边:政策效应的最Ҏ(gu)特点是全国上下会争先恐后,一齐跟q。上上下下都会响应号召,出台各种扶持政策。包括税收减免、资金投入以及其他优先政{,都可以Ş成不菲的政策资源。这些资源利用得当也可以及时转化为真金白银。因此,如果几年之内Q全国的g公司、IT服务公司甚至其他行业的公司,全部或者大多都转变成Y件公司,你也不要大惊怪。只要真正有利益。Y件业全国上下大繁荣,也是可以期待的。当Ӟq是中国“特色”的Y件业Q是q远越了国际上一般标准的软g概念?
  3、草肚皮Q大获其利的很少是真正的软g公司。因为那些一门心思搞软g的hQ大多笨手笨脚。热潮之下,供需严重pQY件h才几q后很可能为青菜萝卜一栗不q,那些真正一头扎qYӞ真的做成软g公司Q也可能不错的。虽Ӟ随着软g公司q速繁衍,真的假的都来争夺有限的市场,竞争q一步激化,十分辛苦。但是,现在哪一行不辛苦Q如果定位准,真的能够一不留做成、做大,然后融资上市Q也是一步登天?
  由此Q所有赶潮Y件的人,从高CQ可以分Zc:最上等?#8220;为地皮而Y?#8221;Q中间是“为政{而Y?#8221;Q最下等?#8220;Y件而Y?#8221;Q构成了食物铄金字塔。与国内其他行业的政{造市的基本规律没有本质差异?
  面对软g热潮中的一些不和谐现象Q我们没有必要只从消极和负面的角度来评判。毕竟,在这股热潮中Q假作真时假也真QY件业之外的庞大资源肯定会有一部分要转化到Y件业。由于资源总量庞大Q有癑ֈ之一或者百分之几的转化Q对于Y件业来说Q就?#8220;久旱逢甘?#8221;Q就是极大的支持。比如以国内软g园圈地最为成功的托普ZQ它在全国的几十个Y件园都是不错的房C目Q运作得当,利润十分丰厚。拿Z部分利润来投入软gQ补贴YӞ几年以后一不留也?#8220;培育”出真正的软g业务。毕竟,大家打的都是“软g”的旗P完全没有软gQ这个美妙的游戏也是难以为的。这一切L那些Ua的房C商要好一些!
  因此Q吃着房地产的剩饭QY件也可能一点点长大成h。走门,走向世界Q挑战微软,打|印度Q也不是完全没有可能。市场就是一个追逐利益最大化的棋局Q消极的批评作用和意义不大。不如,我们正视现实Q承认积极、正面的效应Q坦然应对这场势不可当的大热潮?
  MQ政{已lؓ我们布好了巨大的盘Q至于如何布局和下子,那就是一个各昑օ能的时候。我们当然真诚希望,那些真正有心推动中国软g业发展的人士Q能够认清Ş势,攑ּ思\。在q场大规模的财富与资源{UMQ不要太固守成见Q应攑ּ手脚Q争取获得尽可能多的利益Q中国软g得到更好的推动?img id="paperPicArea1" style="display: none; position: relative" src="http://imgcache.qq.com/ac/b.gif" alt="" />

矿矿 2008-10-09 19:01 发表评论
]]>
վ֩ģ壺 һ| ëƬŮ-ٶ| AVŮһ| 99þ99ֻѷѾƷ| ԻȫƵۿ| ޾Һ | ŷɫƷƵ| Ļ| ؼؼŷһ | þþƷAV鶹| һ| | պaa߿| ɫˬŮС˵ѿ| ѵӰվ| 㻨ۿ| av޽վ| ձÿӰѿ| AVѿ| ѿƵ| 91Ƶ| ˸徫Ʒ| Ƶ| һ| ޹Ů޹| ĻһƷ| Ʒպһ91| ձ| þþŷղa | av뾫Ʒ | ޾ƷþþþAV鶹| þþþAVרվ| ޶ɫۺɫž| һƷ| AVƷһ| ޹Ʒۺ˳ۺվ| ͵ͼƬ| Ƶ| ĻȫѰƵ| ߹ۿ˳Ƶڵ| ݾ߹ۿվ|