锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产成人精品日本亚洲18图,亚洲高清无码在线观看,亚洲av永久中文无码精品http://www.tkk7.com/nbtymm/category/12091.html</br><a ><b><font color=red>鍏辨湁<script src=http://fastonlineusers.com/online.php?d=bluedavy.blogjava.net></script>浜哄湪鍚屾椂闃呰姝log</font></b></a>zh-cnFri, 02 Mar 2007 02:03:33 GMTFri, 02 Mar 2007 02:03:33 GMT60Eclipse蹇熶笂鎵嬫寚鍗椾箣浣跨敤Ant http://www.tkk7.com/nbtymm/archive/2006/08/14/63398.htmlnbtnbtMon, 14 Aug 2006 01:34:00 GMThttp://www.tkk7.com/nbtymm/archive/2006/08/14/63398.htmlhttp://www.tkk7.com/nbtymm/comments/63398.htmlhttp://www.tkk7.com/nbtymm/archive/2006/08/14/63398.html#Feedback1http://www.tkk7.com/nbtymm/comments/commentRss/63398.htmlhttp://www.tkk7.com/nbtymm/services/trackbacks/63398.html
Ant鏄疛ava騫沖彴涓嬮潪甯告鐨勬壒澶勭悊鍛戒護鎵ц紼嬪簭錛岃兘鑷姩瀹屾垚緙栬瘧錛屾祴璇曪紝鎵撳寘錛岄儴緗茬瓑絳変竴緋誨垪浠誨姟銆?

銆銆Ant鏄疛ava騫沖彴涓嬮潪甯告鐨勬壒澶勭悊鍛戒護鎵ц紼嬪簭錛岃兘闈炲父鏂逛究鍦拌嚜鍔ㄥ畬鎴愮紪璇戯紝嫻嬭瘯錛屾墦鍖咃紝閮ㄧ講絳夌瓑涓緋誨垪浠誨姟錛屽ぇ澶ф彁楂樺紑鍙戞晥鐜囥傚鏋滀綘鐜板湪榪樻病鏈夊紑濮嬩嬌鐢ˋnt錛岄偅灝辮璧跺揩寮濮嬪涔犱嬌鐢紝浣胯嚜宸辯殑寮鍙戞按騫充笂涓涓柊鍙伴樁銆?/p>

銆銆Eclipse 涓凡緇忛泦鎴愪簡Ant錛屾垜浠彲浠ョ洿鎺ュ湪Eclipse涓繍琛孉nt銆?/p>

銆銆浠ュ墠闈㈠緩绔嬬殑Hello宸ョ▼涓轟緥錛屽垱寤轟互涓嬬洰褰曠粨鏋勶細

銆銆鏂板緩涓涓猙uild.xml錛屾斁鍦ㄥ伐紼嬫牴鐩綍涓嬨俠uild.xml瀹氫箟浜咥nt瑕佹墽琛岀殑鎵瑰鐞嗗懡浠ゃ傝櫧鐒禔nt涔熷彲浠ヤ嬌鐢ㄥ叾瀹冩枃浠跺悕錛屼絾鏄伒寰爣鍑嗚兘鏇翠嬌寮鍙戞洿瑙勮寖錛屽悓鏃舵槗浜庝笌鍒漢浜ゆ祦銆?/p>

銆銆閫氬父錛宻rc瀛樻斁Java婧愭枃浠訛紝classes瀛樻斁緙栬瘧鍚庣殑class鏂囦歡錛宭ib瀛樻斁緙栬瘧鍜岃繍琛岀敤鍒扮殑鎵鏈塲ar鏂囦歡錛寃eb瀛樻斁JSP絳墂eb鏂囦歡錛宒ist瀛樻斁鎵撳寘鍚庣殑jar鏂囦歡錛宒oc瀛樻斁API鏂囨。銆?/p>

銆銆鐒跺悗鍦ㄦ牴鐩綍涓嬪垱寤篵uild.xml鏂囦歡錛岃緭鍏ヤ互涓嬪唴瀹癸細

<xml version="1.0"?>
<project name="Hello world" default="doc">

<-- properies -->
<property name="src.dir" value="src" />
<property name="report.dir" value="report" />
<property name="classes.dir" value="classes" />
<property name="lib.dir" value="lib" />
<property name="dist.dir" value="dist" />
<property name="doc.dir" value="doc"/>

<-- 瀹氫箟classpath -->
<path id="master-classpath">
<fileset file="${lib.dir}/*.jar" />
<pathelement path="${classes.dir}"/>
<path>

<-- 鍒濆鍖栦換鍔?-->
<target name="init">
<target>

<-- 緙栬瘧 -->
<target name="compile" depends="init" description="compile the source files">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.4">
<classpath refid="master-classpath"/>
<javac>
<target>

<-- 嫻嬭瘯 -->
<target name="test" depends="compile" description="run junit test">
<mkdir dir="${report.dir}"/>
<junit printsummary="on"
haltonfailure="false"
failureproperty="tests.failed"
showoutput="true">
<classpath refid="master-classpath" />
<ormatter type="plain"/>
<batchtest todir="${report.dir}">
<fileset dir="${classes.dir}">
<include name="**/*Test.*"/>
<fileset>
<batchtest>
<junit>
<fail if="tests.failed">
***********************************************************
**** One or more tests failed! Check the output ... ****
***********************************************************
<fail/>
<target/>

<-- 鎵撳寘鎴恓ar -->
<target name="pack" depends="test" description="make .jar file">
<mkdir dir="${dist.dir}" />
<jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}">
<xclude name="**/*Test.*" />
<xclude name="**/Test*.*" />
<jar/>
<targe/t>

<-- 杈撳嚭api鏂囨。 -->
<target name="doc" depends="pack" description="create api doc">
<mkdir dir="${doc.dir}" />
<javadoc destdir="${doc.dir}"
author="true"
version="true"
use="true"
windowtitle="Test API">
<packageset dir="${src.dir}" defaultexcludes="yes">
<include name="example/**" />
<packageset/>
<doctitle>[CDATA[<1>ello, test<h1>]>doctitle>
<dottom>[CDATA[<>ll Rights Reserved.<i>]>bottom>
<tag name="todo" scope="all" description="To do:" />
<javadoc/>
<target/>
<project/>

銆銆浠ヤ笂xml渚濇瀹氫箟浜唅nit錛堝垵濮嬪寲錛夛紝compile錛堢紪璇戯級錛宼est錛堟祴璇曪級錛宒oc錛堢敓鎴愭枃妗o級錛宲ack錛堟墦鍖咃級浠誨姟錛屽彲浠ヤ綔涓烘ā鏉褲?/p>

銆銆閫変腑Hello宸ョ▼錛岀劧鍚庨夋嫨鈥淧roject鈥濓紝鈥淧roperties鈥濓紝鈥淏uilders鈥濓紝鈥淣ew鈥︹濓紝閫夋嫨鈥淎nt Build鈥濓細

銆銆濉叆Name錛欰nt_Builder錛汢uildfile錛歜uild.xml錛汢ase Directory錛?{workspace_loc:/Hello}錛堟寜鈥淏rowse Workspace鈥濋夋嫨宸ョ▼鏍圭洰褰曪級錛岀敱浜庣敤鍒頒簡junit.jar鍖咃紝鎼滅儲Eclipse鐩綍錛屾壘鍒癹unit.jar錛屾妸瀹冨鍒跺埌Hello/lib鐩綍涓嬶紝騫舵坊鍔犲埌Ant鐨凜lasspath涓細

銆銆鐒跺悗鍦˙uilder闈㈡澘涓挬涓夾nt_Build錛屽幓鎺塉ava Builder錛?/p>

銆銆鍐嶆緙栬瘧錛屽嵆鍙湪鎺у埗鍙扮湅鍒癆nt鐨勮緭鍑猴細

Buildfile: F:\eclipse-projects\Hello\build.xml

init:

compile:
[mkdir] Created dir: F:\eclipse-projects\Hello\classes
[javac] Compiling 2 source files to F:\eclipse-projects\Hello\classes

test:
[mkdir] Created dir: F:\eclipse-projects\Hello\report
[junit] Running example.HelloTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.02 sec

pack:
[mkdir] Created dir: F:\eclipse-projects\Hello\dist
[jar] Building jar: F:\eclipse-projects\Hello\dist\hello.jar

doc:
[mkdir] Created dir: F:\eclipse-projects\Hello\doc
[javadoc] Generating Javadoc
[javadoc] Javadoc execution
[javadoc] Loading source files for package example...
[javadoc] Constructing Javadoc information...
[javadoc] Standard Doclet version 1.4.2_04
[javadoc] Building tree for all the packages and classes...
[javadoc] Building index for all the packages and classes...
[javadoc] Building index for all classes...
[javadoc] Generating F:\eclipse-projects\Hello\doc\stylesheet.css...
[javadoc] Note: Custom tags that could override future standard tags: @todo. To avoid potential overrides, use at least one period character (.) in custom tag names.
[javadoc] Note: Custom tags that were not seen: @todo
BUILD SUCCESSFUL
Total time: 11 seconds

銆銆Ant渚濇鎵ц鍒濆鍖栵紝緙栬瘧錛屾祴璇曪紝鎵撳寘錛岀敓鎴怉PI鏂囨。涓緋誨垪浠誨姟錛屾瀬澶у湴鎻愰珮浜嗗紑鍙戞晥鐜囥傚皢鏉ュ紑鍙慗2EE欏圭洰鏃訛紝榪樺彲鍔犲叆閮ㄧ講絳変換鍔°傚茍涓旓紝鍗充嬌鑴辯浜咵clipse鐜錛屽彧瑕佹紜畨瑁呬簡Ant錛岄厤緗ソ鐜鍙橀噺ANT_HOME=<nt瑙e帇鐩綍>Path=鈥?%ANT_HOME%\bin錛屽湪鍛戒護琛屾彁紺虹涓嬪垏鎹㈠埌Hello鐩綍錛岀畝鍗曞湴閿叆ant鍗沖彲銆?/p>

nbt 2006-08-14 09:34 鍙戣〃璇勮
]]>
IIS 闆嗘垚 Tomcat http://www.tkk7.com/nbtymm/archive/2006/07/06/56887.htmlnbtnbtThu, 06 Jul 2006 00:46:00 GMThttp://www.tkk7.com/nbtymm/archive/2006/07/06/56887.htmlhttp://www.tkk7.com/nbtymm/comments/56887.htmlhttp://www.tkk7.com/nbtymm/archive/2006/07/06/56887.html#Feedback0http://www.tkk7.com/nbtymm/comments/commentRss/56887.htmlhttp://www.tkk7.com/nbtymm/services/trackbacks/56887.html闃呰鍏ㄦ枃

nbt 2006-07-06 08:46 鍙戣〃璇勮
]]>
鍩轟簬J2EE杞婚噺綰ф灦鏋勭殑澶氬眰搴旂敤鐨勭爺絀?(杞澆鑷猦ttp://www.tkk7.com/caoqingsong/archive/2006/06/16/53158.html)http://www.tkk7.com/nbtymm/archive/2006/06/16/53191.htmlnbtnbtFri, 16 Jun 2006 03:20:00 GMThttp://www.tkk7.com/nbtymm/archive/2006/06/16/53191.htmlhttp://www.tkk7.com/nbtymm/comments/53191.htmlhttp://www.tkk7.com/nbtymm/archive/2006/06/16/53191.html#Feedback0http://www.tkk7.com/nbtymm/comments/commentRss/53191.htmlhttp://www.tkk7.com/nbtymm/services/trackbacks/53191.html闃呰鍏ㄦ枃

nbt 2006-06-16 11:20 鍙戣〃璇勮
]]>
ant+cactus+tomcat5.5瀹瑰櫒鍐呭崟鍏冩祴璇曠畝鏄庢墜鍐?/title><link>http://www.tkk7.com/nbtymm/archive/2006/06/12/52167.html</link><dc:creator>nbt</dc:creator><author>nbt</author><pubDate>Mon, 12 Jun 2006 03:48:00 GMT</pubDate><guid>http://www.tkk7.com/nbtymm/archive/2006/06/12/52167.html</guid><wfw:comment>http://www.tkk7.com/nbtymm/comments/52167.html</wfw:comment><comments>http://www.tkk7.com/nbtymm/archive/2006/06/12/52167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/nbtymm/comments/commentRss/52167.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/nbtymm/services/trackbacks/52167.html</trackback:ping><description><![CDATA[ <div id="s6kyqgm" class="center"> <h4>鎽樿:</h4>鎶樿吘浜嗕竴涓槦鏈燂紝緇堜簬鎼炲畾ant+cactus+tomcat5.5瀹瑰櫒鍐呭崟鍏冩祴璇曪紝涓烘劅璋leverpig鏂戠鐨勭儹蹇冨洖璐達紝鐗歸鍙戜簬matrix apache鐗堛?</div> <div id="i4me6uy" class="right"> <div id="c2ucuse" class="help"> <h4>鏂囩珷宸ュ叿</h4> <a >鏀惰棌</a> <br /> <a >鎶曠エ璇勫垎</a> <br /> <a >鍙戣〃璇勮</a> <br /> <a onclick="copyLink('ant+cactus+tomcat5.5瀹瑰櫒鍐呭崟鍏冩祴璇曠畝鏄庢墜鍐?);" >澶嶅埗閾炬帴</a> <br /> </div> </div> <!-- end of summary line --> <div id="4w8qmak" class="overflow" id="text">鎶樿吘浜嗕竴涓槦鏈燂紝緇堜簬鎼炲畾ant+cactus+tomcat5.5瀹瑰櫒鍐呭崟鍏冩祴璇曪紝涓烘劅璋leverpig鏂戠(<a target="_new">http://blog.matrix.org.cn/page/cleverpig</a>)鐨勭儹蹇冨洖璐達紝鐗歸鍙戜簬matrix apache鐗堛傚叧浜巃nt鐨勪嬌鐢紝璇鋒悳绱nt鐨勪嬌鐢ㄦ墜鍐岋紝緗戜笂澶ф妸涓枃鐨勩?br /><br /><span style="COLOR: blue">涓銆佷笅杞藉茍瑙e帇緙ヽactus</span><br />涓嬭澆鍦板潃涓?a target="_new">http://apache.freelamp.com/jakarta/cactus/binaries/jakarta-cactus-12-1.7.1.zip</a>銆傚皢cactus鐨刲ib鐩綍涓嬬殑cactus-ant-1.7.1.jar澶嶅埗鍒癮nt鐨刲ib鐩綍銆?br /><br /><br /><span style="COLOR: blue">浜屻侀厤緗甤actus</span><br />cactus鐨勯厤緗緢綆鍗曪紝鏂板緩涓涓猚actus.properties鏂囦歡錛屽茍鎶婂畠鏀懼湪ant鑴氭湰涓殑cactus浠誨姟鐨刢lasspath涓嬶紝鏂囦歡涓寘鎷涓嬪唴瀹?br /><pre class="overflow">cactus.sysproperties=cactus.contextURL<br />#cactus-sample-servlet-cactified灝辨槸浣犵殑嫻嬭瘯搴旂敤鎵鍦ㄨ礬寰勶紝8080鏄鍙e彿<br />cactus.contextURL = http://localhost:8080/cactus-sample-servlet-cactified<br />cactus.servletRedirectorName = ServletRedirector<br />cactus.jspRedirectorName = JspRedirector<br />cactus.filterRedirectorName = FilterRedirector </pre><br />鍏蜂綋鐨勫仛娉曠粨鍚坅nt鑴氭湰鍐嶈繘涓姝ヨВ閲娿?br /><br /><span style="COLOR: blue">涓夈佽繍琛宎nt鑴氭湰</span><br />聽聽ant鑴氭湰涓昏鎵ц浠ヤ笅浠誨姟<br /><br /><span style="COLOR: green">1銆佽瀹歝lasspath</span><br />聽聽聽聽<pre class="overflow"><path id="project.classpath"><br />聽聽聽聽聽聽聽聽<fileset dir="${lib.dir}"><br />聽聽聽聽聽聽聽聽聽聽 <include name="*.jar"/><br />聽聽聽聽聽聽聽聽</fileset><br />聽聽聽聽聽聽聽聽<!-- cactus.properties鏂囦歡灝遍渶瑕佹斁鍦╨ib.dir鎵瀵瑰簲鐨勮礬寰勪腑 --><br />聽聽聽聽聽聽聽聽<pathelement location="${lib.dir}"/><br />聽聽聽聽聽聽聽聽<pathelement location="${tomcat.home}/common/lib/jsp-api.jar"/><br />聽聽聽聽聽聽聽聽<pathelement location="${tomcat.home}/common/lib/servlet-api.jar"/><br />聽聽聽聽</path></pre><br /><br /><span style="COLOR: green">2銆佸畾涔夌浉鍏充換鍔?/span><br />聽聽 <pre class="overflow"><taskdef resource="cactus.tasks" classpathref="project.classpath"/><br />聽聽 <taskdef name="runservertests" classname="org.apache.cactus.integration.ant.RunServerTestsTask"><br />聽聽聽聽聽聽聽聽聽聽聽聽<classpath><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<path refid="project.classpath"/><br />聽聽聽聽聽聽聽聽聽聽聽聽</classpath><br />聽聽聽聽聽聽聽聽</taskdef></pre><br /><br /><span style="COLOR: green">3銆佺紪璇戝簲鐢ㄧ殑綾繪枃浠跺拰嫻嬭瘯鐨勭被鏂囦歡</span><br /><br /><span style="COLOR: green">4銆佹墦鍖呮暣涓簲鐢ㄤ負war鏂囦歡</span><br />闇瑕佹敞鎰忕殑鏄紝涓嶄粎瑕佹墦鍖呭簲鐢ㄧ被錛屾祴璇曠被涔熻鎵撳寘<br />聽聽 <br />聽聽 <pre class="overflow"><target name="war" depends="compile.java"<br />聽聽聽聽聽聽聽聽聽聽聽聽description="Generate the runtime war"><br /><br />聽聽聽聽聽聽聽聽<war warfile="${target.dir}/${project.name}.war"<br />聽聽聽聽聽聽聽聽聽聽聽聽 webxml="${src.webapp.dir}/WEB-INF/web.xml"><br />聽聽聽聽聽聽聽聽聽聽聽聽<fileset dir="${src.webapp.dir}"><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<exclude name="cactus-report.xsl"/><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<exclude name="WEB-INF/cactus-web.xml"/><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<exclude name="WEB-INF/web.xml"/><br />聽聽聽聽聽聽聽聽聽聽聽聽</fileset><br />聽聽聽聽聽聽聽聽聽聽聽聽<classes dir="${target.classes.java.dir}"/><br />聽聽聽聽聽聽聽聽聽聽聽聽<!-- 鍒繕浜嗘墦鍖呮祴璇曠被 --><br />聽聽聽聽聽聽聽聽聽聽聽聽<classes dir="${target.classes.test.dir}"/><br />聽聽聽聽聽聽聽聽聽聽聽聽<!-- 鍒繕浜嗘墦鍖呭悇縐嶇浉鍏崇殑jar鏂囦歡 --><br />聽聽聽聽聽聽聽聽聽聽聽聽< lib dir="project.classpath"/><br />聽聽聽聽聽聽聽聽</war><br />聽聽聽聽</target></pre><br /><br /><span style="COLOR: green">5銆佸湪搴旂敤鐨剋eb.xml鏂囦歡涓坊鍔犳祴璇曟墍闇鐨勫悇縐嶆槧灝?/span><br />cactus鎻愪緵浜嗕袱涓猼ask鏉ュ畬鎴愯繖涓伐浣滐紝CactifyWar鍜學ebXmlMerge銆?br />CactifyWar鐨勫姛鑳芥槸鑷姩鍦ㄥ凡緇忔墦鍖呯殑搴旂敤鐨剋eb.xml鏂囦歡涓坊鍔犳墍闇鐨勬槧灝勩俉ebXmlMerge鏄彁渚涘悎騫朵袱涓獁eb.xml鏂囦歡鐨勫姛鑳姐?br /><pre class="overflow"><target name="test.prepare"<br />聽聽聽聽聽聽聽聽聽聽聽聽depends="war, compile.cactus, test.prepare.logging"><br /><br />聽聽聽聽聽聽聽聽<!-- Cactify the web-app archive --><br />聽聽聽聽聽聽聽聽<cactifywar srcfile="${target.dir}/${project.name}.war"<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽destfile="${tomcat.home}/webapps/${project.name}-cactified.war"<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽><br />聽聽聽聽聽聽聽聽聽聽聽聽<classes dir="${target.classes.java.dir}"/><br />聽聽聽聽聽聽聽聽聽聽聽聽<classes dir="${target.classes.test.dir}"/><br />聽聽聽聽聽聽聽聽聽聽聽聽<lib dir="project.classpath"/><br />聽聽聽聽聽聽 </cactifywar><br /></target></pre><br /><br /><span style="COLOR: green">6銆佽繍琛屾祴璇?/span><br />cactus鎻愪緵浜哻actus鍜孯unServerTests涓や釜task鏉ヨ繍琛屾祴璇曘?br />"cactus" task鏄氳繃澶嶅埗瀹瑰櫒鏈嶅姟鍣ㄧ殑鏈灝忔枃浠跺茍榪愯鏉ヨ繍琛屾祴璇曪紝鍥犳闇瑕佸埗瀹氬鍣ㄦ湇鍔″櫒鐨勭被鍨嬶紝鍚姩閫熷害紼嶅揩鐐癸紝鍙﹀閰嶇疆姣旇緝鏂逛究錛屼絾鏄棤娉曟祴璇曡薄tomcat榪炴帴姹犵瓑璧勬簮銆傚彟澶栧tomcat5.5鐨勬敮鎸佷篃涓嶅ソ銆?br />"RunServerTests"鏄氳繃鐩存帴鍚姩瀹瑰櫒鏈嶅姟璧鋒潵榪愯嫻嬭瘯錛屽洜姝ら熷害紼嶆參錛屼笖閰嶇疆杈冮夯鐑︼紝浣嗚兘嫻嬭瘯鍚勭璧勬簮銆?br />聽聽 <pre class="overflow"><target name="test" depends="test.prepare"<br />聽聽聽聽聽聽聽聽聽聽聽聽 description="Run tests on Tomcat "><br /><br />聽聽聽聽聽聽聽聽<!-- Start the servlet engine, wait for it to be started, run the<br />聽聽聽聽聽聽聽聽聽聽聽聽 unit tests, stop the servlet engine, wait for it to be stopped.<br />聽聽聽聽聽聽聽聽聽聽聽聽 The servlet engine is stopped if the tests fail for any reason --><br />聽聽聽聽聽聽聽聽<!-- 8080鏄湇鍔″櫒鐨勭鍙e彿錛?{project.name}-cactified鏄」鐩殑璺緞錛屽拰涓婁竴姝ョ殑cactifywar 鐨刣estfile鐩稿搴?--><br />聽聽聽聽聽聽聽聽<runservertests<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽testURL="http://localhost:8080/${project.name}-cactified/ServletRedirector?Cactus_Service=RUN_TEST"<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽startTarget="_StartTomcat"<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽stopTarget="_StopTomcat"<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽testTarget="_Test"/><br /><br />聽聽聽聽</target></pre><br />聽聽聽聽<br />聽聽聽聽<pre class="overflow"><!-- _Test灝辨槸涓涓櫘閫氱殑junit浠誨姟 --><br />聽聽聽聽<target name="_Test"><br />聽聽聽聽聽聽聽聽<junit printsummary="yes" fork="yes"><br />聽聽聽聽聽聽聽聽聽聽聽聽<classpath><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<path refid="project.classpath"/><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<pathelement location="${target.classes.java.dir}"/><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<pathelement location="${target.classes.test.dir}"/><br />聽聽聽聽聽聽聽聽聽聽聽聽</classpath><br />聽聽聽聽聽聽聽聽聽聽聽聽<formatter type="brief" usefile="false"/><br />聽聽聽聽聽聽聽聽聽聽聽聽<formatter type="xml"/><br /><br />聽聽聽聽聽聽聽聽聽聽聽聽<batchtest><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<fileset dir="${src.test.dir}"><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<!-- Due to some Cactus synchronization bug, the 'unit' tests need<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽to run before the 'sample' tests --><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<include name="**/Test*.java"/><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<exclude name="**/Test*All.java"/><br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</fileset><br />聽聽聽聽聽聽聽聽聽聽聽聽</batchtest><br />聽聽聽聽聽聽聽聽</junit><br />聽聽聽聽</target></pre></div> <img src ="http://www.tkk7.com/nbtymm/aggbug/52167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/nbtymm/" target="_blank">nbt</a> 2006-06-12 11:48 <a href="http://www.tkk7.com/nbtymm/archive/2006/06/12/52167.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>JUnit 鏈浣沖疄璺?杞澆)http://www.tkk7.com/nbtymm/archive/2006/06/12/52115.htmlnbtnbtMon, 12 Jun 2006 01:39:00 GMThttp://www.tkk7.com/nbtymm/archive/2006/06/12/52115.htmlhttp://www.tkk7.com/nbtymm/comments/52115.htmlhttp://www.tkk7.com/nbtymm/archive/2006/06/12/52115.html#Feedback0http://www.tkk7.com/nbtymm/comments/commentRss/52115.htmlhttp://www.tkk7.com/nbtymm/services/trackbacks/52115.html闃呰鍏ㄦ枃

nbt 2006-06-12 09:39 鍙戣〃璇勮
]]>
Cactus瀹炰緥璁茶В(杞澆)http://www.tkk7.com/nbtymm/archive/2006/06/12/52111.htmlnbtnbtMon, 12 Jun 2006 01:34:00 GMThttp://www.tkk7.com/nbtymm/archive/2006/06/12/52111.htmlhttp://www.tkk7.com/nbtymm/comments/52111.htmlhttp://www.tkk7.com/nbtymm/archive/2006/06/12/52111.html#Feedback0http://www.tkk7.com/nbtymm/comments/commentRss/52111.htmlhttp://www.tkk7.com/nbtymm/services/trackbacks/52111.html

Cactus綆浠?/p>

錛庛綆浠?

Cactus瀹炵幇浜嗗JUnit嫻嬭瘯妗嗘灦鐨勬棤緙濇墿灞曪紝鍙互鏂逛究鍦版祴璇曟湇鍔$搴旂敤紼嬪簭銆侰actus鍙互鍦ㄤ笅闈㈠嚑縐嶆儏鍐典笅浣跨敤錛?/p>

  • 嫻嬭瘯Servlet浠ュ強浠諱綍浣跨敤浜嗗儚HttpServletRequest錛孒ttpServletResponse錛屸︹﹁繖鏍風殑瀵硅薄鐨勪唬鐮併備嬌鐢⊿ervletTestCase銆?
  • 嫻嬭瘯Filter浠ュ強浠諱綍浣跨敤浜嗗儚FilterConfig錛屸︹﹁繖鏍風殑瀵硅薄鐨勪唬鐮併備嬌鐢‵ilterTestCase銆?
  • 嫻嬭瘯JSP 銆備嬌鐢⊿ervletTestCase鎴朖spTestCase銆?
  • 嫻嬭瘯Taglibs浠ュ強浠諱綍浣跨敤浜嗗儚PageContext錛屸︹﹁繖鏍風殑瀵硅薄鐨勪唬鐮併備嬌鐢↗spTestCase銆?
  • 嫻嬭瘯EJB銆係ervletTestCase鎴朖spTestCase鎴朏ilterTestCase銆?

Cactus鐨勪嬌鐢ㄤ篃鏄潪甯哥畝鍗曠殑錛屼綘鍐欑殑嫻嬭瘯綾誨彧闇緇ф壙ServletTestCase鎴栬匤spTestCase銆丗ilterTestCase錛堝畠浠兘緇ф壙浜咼Unit鐨凾estCase錛夈傚啓濂芥祴璇曚唬鐮佸悗闇瑕佸惎鍔╳eb瀹瑰櫒錛岀劧鍚庢墽琛屾祴璇曚唬鐮併傚湪涓嬮潰鐨勭珷鑺備腑鎴戜滑灝嗛氳繃渚嬪瓙鍚戜綘璇︾粏璁茶В銆?/p>

Cactus欏圭洰Apache Jakarta Commons鐨勪竴涓瓙欏圭洰錛岀綉鍧鏄細http://jakarta.apache.org/commons/cactus/銆?/p>

錛庛TestCase妗嗘灦

鍦–actus涓嬶紝鎴戜滑鍐欑殑TestCase涓嶫Unit鏈夋墍涓嶅悓錛屽厛鐪嬩竴孌典唬鐮侊紝濡備笅錛?/p>銆銆銆銆銆銆銆public class TestSample extendsServletTestCase/JspTestCase/FilterTestCase {
銆銆銆銆銆銆銆public TestSample (String testName) {
銆銆銆銆銆銆銆super(testName);
銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆public void setUp() {
銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆public void tearDown() {
銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆public void beginXXX(WebRequest theRequest) {
銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆public void testXXX() {
銆銆銆銆銆銆銆}
銆銆銆銆銆銆銆public void endXXX(WebResponse theResponse) {
銆銆銆銆銆銆銆}

涓婇潰鏄竴涓狢actus嫻嬭瘯綾葷殑瀹屾暣浠g爜妗嗘灦錛屽叾涓殑extends閮ㄥ垎闇瑕佹寜浣犳墍嫻嬭瘯鐨勪笉鍚岀洰鏍囨潵緇ф壙涓嶅悓鐨勭被錛堢畝浠嬩腑鏈夋墍鎻忚堪錛夈?/p>

鍙﹀鎴戜滑娉ㄦ剰鍒頒袱涓柊鐨勬柟娉昩eginXXX鍜宔ndXXX鐨勶紝榪欎袱涓柟娉曞垎鍒細鍦╰estXXX鎵ц鍓嶅拰鎵ц鍚庢墽琛岋紝瀹冧滑鍜宻etUp銆乼earDown涓嶅悓鐨勬槸beginXXX鍜宔ndXXX浼氬湪鐩稿簲鐨則estXXX鍓嶆墽琛岋紝鑰宻etUp鍜宼earDown鍒欏湪姣忎釜testXXX鏂規硶鍓嶉兘浼氭墽琛屻傚彟澶朾eginXXX鍜宔ndXXX鏄鎴風浠g爜錛屾墍浠ュ湪榪欎袱涓柟娉曢噷鏄棤娉曚嬌鐢╮equest榪欐牱鐨勬湇鍔$瀵硅薄鐨勩?/p>

瀵逛簬endXXX鏂規硶闇瑕佸彟鍔犺鏄庣殑鏄紝鍦–actus v1.1鍓嶏紙鍖呮嫭v1.1錛夛紝瀹冪殑褰㈠紡鏄繖鏍風殑public void endXXX(HttpURLConnection theConnection)錛岃屽湪Cactus v1.2寮濮嬪畠鐨勫艦寮忔湁涓ょ鍙兘錛?/p>

  • public void endXXX(org.apache.cactus.WebResponse theResponse)錛?
  • public void endXXX(com.meterware.httpunit.WebResponse theResponse)錛?

鍙互鐪嬪埌鍖哄埆鍦ㄤ簬寮曠敤鐨勫寘涓嶅悓錛屼負浠涔堜細榪欐牱鐨勫憿錛熷洜涓哄湪v1.2寮濮婥actus闆嗘垚浜咹ttpUnit榪欎釜緇勪歡銆傚鏋滀綘鐔熸倝HttpUnit榪欎釜緇勪歡錛屾垜鎯沖簲璇ユ槑鐧戒負浠涔堣闆嗘垚HttpUnit銆備笅闈㈡垜浠潵鐪嬩竴孌典唬鐮佸紑姣旇緝涓涓嬩袱鑰呯殑鍖哄埆錛?/p>

public void endXXX(org.apache.cactus.WebResponse theResponse) {

String content = theResponse.getText();

assertEquals(content, "<html><body><h1>Hello world!</h1></body></html>");

}

public void endXXX(com.meterware.httpunit.WebResponse theResponse) {

WebTable table = theResponse.getTables()[0];

assertEquals("rows", 4, table.getRowCount());

assertEquals("columns", 3, table.getColumnCount());

assertEquals("links", 1, table.getTableCell(0, 2).getLinks().length);

}

褰撶劧錛屽湪瀹為檯搴旂敤涓綘闇瑕佹牴鎹笉鍚岀殑闇瑕佹潵閫夋嫨涓嶅悓鐨別ndXXX銆備袱涓猈ebResponse鐨勫樊鍒彲浠ュ弬瑙佷袱鑰呭悇鑷殑API Doc錛岃繖閲屽氨涓嶅啀澶氳浜嗐?/p>

濡備綍鍦–actus閲屽啓嫻嬭瘯

錛庛鍐欐祴璇曚唬鐮?/strong>

棣栧厛錛屾垜浠粰鍑鴻嫻嬬被鐨勪唬鐮侊紝鏄竴涓猄ervlet錛?/p>

public class SampleServlet extends HttpServlet {

public void doGet(HttpServletRequest theRequest,

HttpServletResponse theResponse) throws IOException {

PrintWriter pw = theResponse.getWriter();

theResponse.setContentType("text/html");

pw.print("<html><head/><body>");

pw.print("A GET request");

pw.print("</body></html>");

}

public String checkMethod(HttpServletRequest theRequest) {

return theRequest.getMethod();

}

}

Cactus涓殑嫻嬭瘯綾繪鏋跺凡緇忓湪涓婇潰緇欏嚭銆備笅闈㈡潵鐪嬩竴涓嬩緥瀛愶紝渚嬪瓙鏄粠涓瑿actus鑷甫鐨勫疄渚嬩腑鎶藉彇鐨勪竴閮ㄥ垎錛屽涓嬶細

public class TestSampleServlet extends ServletTestCase {

public void testReadServletOutputStream() throws IOException {

SampleServlet servlet = new SampleServlet();

servlet.doGet(request, response);

}

public void endReadServletOutputStream(WebResponse theResponse)

throws IOException {

String expected = "<html><head/><body>A GET request</body></html>";

String result = theResponse.getText();

assertEquals(expected, result);

}

public void beginPostMethod(WebRequest theRequest) {

theRequest.addParameter("param", "value", WebRequest.POST_METHOD);

}

public void testPostMethod() {

SampleServlet servlet = new SampleServlet();

assertEquals("POST", servlet.checkMethod(request));

assertEquals("value", request.getParameter("param"));

}

}

絎竴涓柟娉晅estReadServletOutputStream錛岃皟鐢╠oGet錛岀浉褰撲簬鍦ㄥ鎴風鎻愪氦璇鋒眰錛岀劧鍚庡湪Servlet澶勭悊鍚庝細浜х敓涓涓洖棣堬紝鎵浠ワ紝鍦╡ndReadServletOutputStream鏂規硶閲岋紝鎴戜滑閫氳繃璋冪敤response鐨勭浉搴旀柟娉曞垽鏂洖棣堟槸鍚︾鍚堥鏈熺粨鏋溿?/p>

絎簩涓柟娉晅estPostMethod錛屽湪榪欎箣鍓嶆湁涓涓猙eginPostMethod錛屽湪榪欎釜鏂規硶閲屾垜浠互POST鏂瑰紡寰request閲屽鍔犱竴涓〃鍗曟暟鎹畃aram錛屽間負鈥漹alue鈥濄備笅闈㈠湪testPostMethod鎴戜滑灝辮楠岃瘉琛ㄥ崟鏁版嵁鏄惁浠OST鏂瑰紡鎻愪氦鍒頒簡鏈嶅姟绔殑Servlet閲岋紝鎵浠ワ紝鎴戜滑鐪嬪埌浜嗕袱涓猘ssertEquals錛屽垎鍒繘琛屼簡鍒ゆ柇銆傚湪榪欓噷鎴戜滑瑕佹敞鎰忓埌beginPostMethod鏂規硶涓殑theRequest鍜宼estPostMethod涓殑request鐨勫尯鍒紝鍦ㄥ墠闈㈡垜浠凡緇忔彁鍒拌繃錛宐eginPostMethod鏄湪瀹㈡埛绔墽琛岀殑錛屾墍浠ュ畠鏂規硶鍐呯殑鎵鏈夋搷浣滀簨瀹炰笂鏄ā鎷熼〉闈㈡搷浣滅殑錛屾瘮濡備笂闈㈢殑璁劇疆琛ㄥ崟鏁版嵁錛岃宼estPostMethod鏄湇鍔$鎵ц鐨勶紝鍏朵腑鐨剅equest涔熸槸鏈嶅姟绔殑銆?/p>閰嶇疆cactus.properties鍜寃eb.xml

cactus.properties

  • cactus.contextURL

榪欎釜灞炴ф槸蹇呴』鐨勶紝瀹冩寚瀹氫簡web搴旂敤鐨勮闂湴鍧

渚嬶細cactus.contextURL = http://localhost:8080/test

  • cactus.servletRedirectorName

鍙夛紝褰撴祴璇曠被緇ф壙ServletTestCase鏃剁敤浜庢寚瀹欳actus Servlet Redirector鐨勬槧灝勫悕縐般傞粯璁わ細ServletRedirector

渚嬶細cactus.servletRedirectorName = ServletRedirector

  • cactus.jspRedirectorName

鍙夛紝褰撴祴璇曠被緇ф壙ServletTestCase鏃剁敤浜庢寚瀹欳actus Jsp Redirector鐨勬槧灝勫悕縐般傞粯璁わ細ServletRedirector

渚嬶細cactus.jspRedirectorName = JspRedirector

鍙夛紝褰撴祴璇曠被緇ф壙ServletTestCase鏃剁敤浜庢寚瀹欳actus Filter Redirector鐨勬槧灝勫悕縐般傞粯璁わ細ServletRedirector

渚嬶細cactus.filterRedirectorName = FilterRedirector

Cactus.properties浣犲彲浠ユ斁緗湪WEB-INF/classes/涓嬨?/p>

web.xml

鍦╳eb.xml閲岃涓虹浉搴旂殑嫻嬭瘯綾繪寚瀹氱浉搴旂殑Cactus Redirector銆?/p>

ServletTestCase瀵瑰簲org.apache.cactus.server.ServletTestRedirector

JspTestCase瀵瑰簲/jspRedirector.jsp

FilterTestCase瀵瑰簲org.apache.cactus.server.FilterTestRedirector

<web-app>

<filter>

<filter-name>FilterRedirector</filter-name>

<filter-class>org.apache.cactus.server.FilterTestRedirector</filter-class>

</filter>

<filter-mapping>

<filter-name>FilterRedirector</filter-name>

<url-pattern>/FilterRedirector</url-pattern>

</filter-mapping>

<servlet>

<servlet-name>ServletRedirector</servlet-name>

<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>

</servlet>

<servlet>

<servlet-name>JspRedirector</servlet-name>

<jsp-file>/jspRedirector.jsp</jsp-file>

</servlet>

<servlet-mapping>

<servlet-name>ServletRedirector</servlet-name>

<url-pattern>/ServletRedirector</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>JspRedirector</servlet-name>

<url-pattern>/JspRedirector</url-pattern>

</servlet-mapping>

</web-app>

濡傛灉浣犵殑嫻嬭瘯綾葷戶鎵夸簡JspTestCase鍒欓渶瑕佸皢jspRedirector.jsp鏂囦歡鏀劇疆鍒頒綘鍦╳eb.xml涓寚瀹氱殑璺緞閲屻?/p>

瀹夎璇存槑

  • 鍦ㄤ嬌鐢–actus鏃訛紝strutstest.jar榪橀渶瑕佹湁涓嬪垪鍖呯殑鏀寔銆傚寘鍙斁緗湪WEB-INF/lib涓?

濡備笅錛?/p>

    • Client绔紝闇瑕佸涓嬪寘

junit.jar

servlet.jar

cactus.jar

httpclient.jar

commons-logging.jar

httpunit.jar錛孴idy.jar錛寈erces.jar錛堝彲閫夛紝濡傛灉浣犻泦鎴愪簡httpunit鐨勮瘽灝遍渶瑕侊紝涔熷氨鏄湪endXXX涓嬌鐢ㄤ簡httpunit錛?/p>

    • Server绔紙涔熷氨鏄痺eb瀹瑰櫒錛夐渶瑕佸涓嬪寘

cactus.jar

junit.jar

aspectjrt.jar

commons-logging.jar

  • 鍐欏ソ嫻嬭瘯浠g爜鍚庡皢class鏀劇疆鍦╓EB-INF/classes涓?
  • 琚祴浠g爜涔熸斁緗湪WEB-INF/classes涓?
  • 鍐欏ソcactus.properties鍜寃eb.xml涓や釜閰嶇疆鏂囦歡
  • 鍚姩web瀹瑰櫒
  • 榪愯嫻嬭瘯浠g爜


nbt 2006-06-12 09:34 鍙戣〃璇勮
]]>
JDBC榪炴帴澶у叏http://www.tkk7.com/nbtymm/archive/2006/06/12/52104.htmlnbtnbtMon, 12 Jun 2006 01:11:00 GMThttp://www.tkk7.com/nbtymm/archive/2006/06/12/52104.htmlhttp://www.tkk7.com/nbtymm/comments/52104.htmlhttp://www.tkk7.com/nbtymm/archive/2006/06/12/52104.html#Feedback0http://www.tkk7.com/nbtymm/comments/commentRss/52104.htmlhttp://www.tkk7.com/nbtymm/services/trackbacks/52104.html
銆銆涓銆佽繛鎺ュ悇縐嶆暟鎹簱鏂瑰紡閫熸煡琛?/b>

銆銆涓嬮潰緗楀垪浜嗗悇縐嶆暟鎹簱浣跨敤JDBC榪炴帴鐨勬柟寮忥紝鍙互浣滀負涓涓墜鍐屼嬌鐢ㄣ?

銆銆1銆丱racle8/8i/9i鏁版嵁搴擄紙thin妯″紡錛?

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl涓烘暟鎹簱鐨凷ID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);

銆銆2銆丏B2鏁版嵁搴?

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);

銆銆3銆丼ql Server7.0/2000鏁版嵁搴?

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb涓烘暟鎹簱
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);

銆銆4銆丼ybase鏁版嵁搴?

Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB涓轟綘鐨勬暟鎹簱鍚?
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);

銆銆5銆両nformix鏁版嵁搴?

Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword"; //myDB涓烘暟鎹簱鍚?
Connection conn= DriverManager.getConnection(url);

銆銆6銆丮ySQL鏁版嵁搴?

Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB涓烘暟鎹簱鍚?
Connection conn= DriverManager.getConnection(url);

銆銆7銆丳ostgreSQL鏁版嵁搴?

Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB涓烘暟鎹簱鍚?
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);

銆銆8銆乤ccess鏁版嵁搴撶洿榪炵敤ODBC鐨?br />
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;

銆銆浜屻丣DBC榪炴帴MySql鏂瑰紡

銆銆涓嬮潰鏄嬌鐢↗DBC榪炴帴MySql鐨勪竴涓皬鐨勬暀紼?

銆銆1銆佹煡鎵鵑┍鍔ㄧ▼搴?br />
銆銆MySQL鐩墠鎻愪緵鐨刯ava椹卞姩紼嬪簭涓篊onnection/J錛屽彲浠ヤ粠MySQL瀹樻柟緗戠珯涓嬭澆錛屽茍鎵懼埌mysql-connector-java-3.0.15-ga-bin.jar鏂囦歡錛屾椹卞姩紼嬪簭涓虹函java椹卞姩紼嬪簭錛屼笉闇鍋氬叾浠栭厤緗?br />
銆銆2銆佸姩鎬佹寚瀹歝lasspath

銆銆濡傛灉闇瑕佹墽琛屾椂鍔ㄦ佹寚瀹歝lasspath錛屽氨鍦ㄦ墽琛屾椂閲囩敤錛峜p鏂瑰紡銆傚惁鍒欏皢涓婇潰鐨?jar鏂囦歡鍔犲叆鍒癱lasspath鐜鍙橀噺涓?br />
銆銆3銆佸姞杞介┍鍔ㄧ▼搴?br />
try{
銆Class.forName(com.mysql.jdbc.Driver);
銆System.out.println(Success loading Mysql Driver!);
}catch(Exception e)
{
銆System.out.println(Error loading Mysql Driver!);
銆e.printStackTrace();
}

銆銆4銆佽緗繛鎺ョ殑url

jdbc錛歮ysql錛?/localhost/databasename[?pa=va][錛唒a=va]

銆銆涓夈佷互涓嬪垪鍑轟簡鍦ㄤ嬌鐢↗DBC鏉ヨ繛鎺racle鏁版嵁搴撴椂鍙互浣跨敤鐨勪竴浜涙妧宸?/b>

銆銆1銆佸湪瀹㈡埛绔蔣浠跺紑鍙戜腑浣跨敤Thin椹卞姩紼嬪簭

銆銆鍦ㄥ紑鍙慗ava杞歡鏂歸潰錛孫racle鐨勬暟鎹簱鎻愪緵浜嗗洓縐嶇被鍨嬬殑椹卞姩紼嬪簭錛屼簩縐嶇敤浜庡簲鐢ㄨ蔣浠躲乤pplets銆乻ervlets絳夊鎴風杞歡錛屽彟澶栦簩縐嶇敤浜庢暟鎹簱涓殑Java瀛樺偍榪囩▼絳夋湇鍔″櫒绔蔣浠躲傚湪瀹㈡埛鏈虹杞歡鐨勫紑鍙戜腑錛屾垜浠彲浠ラ夋嫨OCI椹卞姩紼嬪簭鎴朤hin椹卞姩紼嬪簭銆侽CI椹卞姩紼嬪簭鍒╃敤Java鏈湴鍖栨帴鍙o紙JNI錛夛紝閫氳繃Oracle瀹㈡埛绔蔣浠朵笌鏁版嵁搴撹繘琛岄氳銆俆hin椹卞姩紼嬪簭鏄函Java椹卞姩紼嬪簭錛屽畠鐩存帴涓庢暟鎹簱榪涜閫氳銆備負浜嗚幏寰楁渶楂樼殑鎬ц兘錛孫racle寤鴻鍦ㄥ鎴風杞歡鐨勫紑鍙戜腑浣跨敤OCI椹卞姩紼嬪簭錛岃繖浼間箮鏄紜殑銆備絾鎴戝緩璁嬌鐢═hin椹卞姩紼嬪簭錛屽洜涓洪氳繃澶氭嫻嬭瘯鍙戠幇錛屽湪閫氬父鎯呭喌涓嬶紝Thin椹卞姩紼嬪簭鐨勬ц兘閮借秴榪囦簡OCI椹卞姩紼嬪簭銆?br />
銆銆2銆佸叧闂嚜鍔ㄦ彁浜ゅ姛鑳斤紝鎻愰珮緋葷粺鎬ц兘

銆銆鍦ㄧ涓嬈″緩绔嬩笌鏁版嵁搴撶殑榪炴帴鏃訛紝鍦ㄧ己鐪佹儏鍐典笅錛岃繛鎺ユ槸鍦ㄨ嚜鍔ㄦ彁浜ゆā寮忎笅鐨勩備負浜嗚幏寰楁洿濂界殑鎬ц兘錛屽彲浠ラ氳繃璋冪敤甯﹀竷灝斿糵alse鍙傛暟鐨凜onnection綾葷殑setAutoCommit()鏂規硶鍏抽棴鑷姩鎻愪氦鍔熻兘錛屽涓嬫墍紺猴細

銆銆conn.setAutoCommit(false);

銆銆鍊煎緱娉ㄦ剰鐨勬槸錛屼竴鏃﹀叧闂簡鑷姩鎻愪氦鍔熻兘錛屾垜浠氨闇瑕侀氳繃璋冪敤Connection綾葷殑commit()鍜宺ollback()鏂規硶鏉ヤ漢宸ョ殑鏂瑰紡瀵逛簨鍔¤繘琛岀鐞嗐?br />
銆銆3銆佸湪鍔ㄦ丼QL鎴栨湁鏃墮棿闄愬埗鐨勫懡浠や腑浣跨敤Statement瀵硅薄

銆銆鍦ㄦ墽琛孲QL鍛戒護鏃訛紝鎴戜滑鏈変簩縐嶉夋嫨錛氬彲浠ヤ嬌鐢≒reparedStatement瀵硅薄錛屼篃鍙互浣跨敤Statement瀵硅薄銆傛棤璁哄灝戞鍦頒嬌鐢ㄥ悓涓涓猄QL鍛戒護錛孭reparedStatement閮藉彧瀵瑰畠瑙f瀽鍜岀紪璇戜竴嬈°傚綋浣跨敤Statement瀵硅薄鏃訛紝姣忔鎵ц涓涓猄QL鍛戒護鏃訛紝閮戒細瀵瑰畠榪涜瑙f瀽鍜岀紪璇戙傝繖鍙兘浼氫嬌浣犺涓猴紝浣跨敤PreparedStatement瀵硅薄姣斾嬌鐢⊿tatement瀵硅薄鐨勯熷害鏇村揩銆傜劧鑰岋紝鎴戣繘琛岀殑嫻嬭瘯琛ㄦ槑錛屽湪瀹㈡埛绔蔣浠朵腑錛屾儏鍐靛茍闈炲姝ゃ傚洜姝わ紝鍦ㄦ湁鏃墮棿闄愬埗鐨凷QL鎿嶄綔涓紝闄ら潪鎴愭壒鍦板鐞哠QL鍛戒護錛屾垜浠簲褰撹冭檻浣跨敤Statement瀵硅薄銆?br />
銆銆姝ゅ錛屼嬌鐢⊿tatement瀵硅薄涔熶嬌寰楃紪鍐欏姩鎬丼QL鍛戒護鏇村姞綆鍗曪紝鍥犱負鎴戜滑鍙互灝嗗瓧絎︿覆榪炴帴鍦ㄤ竴璧鳳紝寤虹珛涓涓湁鏁堢殑SQL鍛戒護銆傚洜姝わ紝鎴戣涓猴紝Statement瀵硅薄鍙互浣垮姩鎬丼QL鍛戒護鐨勫垱寤哄拰鎵ц鍙樺緱鏇村姞綆鍗曘?br />
銆銆4銆佸埄鐢╤elper鍑芥暟瀵瑰姩鎬丼QL鍛戒護榪涜鏍煎紡鍖?br />
銆銆鍦ㄥ垱寤轟嬌鐢⊿tatement瀵硅薄鎵ц鐨勫姩鎬丼QL鍛戒護鏃訛紝鎴戜滑闇瑕佸鐞嗕竴浜涙牸寮忓寲鏂歸潰鐨勯棶棰樸備緥濡傦紝濡傛灉鎴戜滑鎯沖垱寤轟竴涓皢鍚嶅瓧O'Reilly鎻掑叆琛ㄤ腑鐨凷QL鍛戒護錛屽垯蹇呴』浣跨敤浜屼釜鐩歌繛鐨勨?'鈥濆彿鏇挎崲O'Reilly涓殑鈥?鈥濆彿銆傚畬鎴愯繖浜涘伐浣滅殑鏈濂界殑鏂規硶鏄垱寤轟竴涓畬鎴愭浛鎹㈡搷浣滅殑helper鏂規硶錛岀劧鍚庡湪榪炴帴瀛楃涓插績鏈嶇敤鍏紡琛ㄨ揪涓涓猄QL鍛戒護鏃訛紝浣跨敤鍒涘緩鐨刪elper鏂規硶銆備笌姝ょ被浼肩殑鏄紝鎴戜滑鍙互璁﹉elper鏂規硶鎺ュ彈涓涓狣ate鍨嬬殑鍊鹼紝鐒跺悗璁╁畠杈撳嚭鍩轟簬Oracle鐨則o_date()鍑芥暟鐨勫瓧絎︿覆琛ㄨ揪寮忋?br />
銆銆5銆佸埄鐢≒reparedStatement瀵硅薄鎻愰珮鏁版嵁搴撶殑鎬諱綋鏁堢巼

銆銆鍦ㄤ嬌鐢≒reparedStatement瀵硅薄鎵цSQL鍛戒護鏃訛紝鍛戒護琚暟鎹簱榪涜瑙f瀽鍜岀紪璇戯紝鐒跺悗琚斁鍒板懡浠ょ紦鍐插尯銆傜劧鍚庯紝姣忓綋鎵ц鍚屼竴涓狿reparedStatement瀵硅薄鏃訛紝瀹冨氨浼氳鍐嶈В鏋愪竴嬈★紝浣嗕笉浼氳鍐嶆緙栬瘧銆傚湪緙撳啿鍖轟腑鍙互鍙戠幇棰勭紪璇戠殑鍛戒護錛屽茍涓斿彲浠ラ噸鏂頒嬌鐢ㄣ傚湪鏈夊ぇ閲忕敤鎴風殑浼佷笟綰у簲鐢ㄨ蔣浠朵腑錛岀粡甯鎬細閲嶅鎵ц鐩稿悓鐨凷QL鍛戒護錛屼嬌鐢≒reparedStatement瀵硅薄甯︽潵鐨勭紪璇戞鏁扮殑鍑忓皯鑳藉鎻愰珮鏁版嵁搴撶殑鎬諱綋鎬ц兘銆傚鏋滀笉鏄湪瀹㈡埛绔垱寤恒侀澶囥佹墽琛孭reparedStatement浠誨姟闇瑕佺殑鏃墮棿闀夸簬Statement浠誨姟錛屾垜浼氬緩璁湪闄ゅ姩鎬丼QL鍛戒護涔嬪鐨勬墍鏈夋儏鍐典笅浣跨敤PreparedStatement瀵硅薄銆?br />
銆銆6銆佸湪鎴愭壒澶勭悊閲嶅鐨勬彃鍏ユ垨鏇存柊鎿嶄綔涓嬌鐢≒reparedStatement瀵硅薄

銆銆濡傛灉鎴愭壒鍦板鐞嗘彃鍏ュ拰鏇存柊鎿嶄綔錛屽氨鑳藉鏄捐憲鍦板噺灝戝畠浠墍闇瑕佺殑鏃墮棿銆侽racle鎻愪緵鐨凷tatement鍜?CallableStatement騫朵笉鐪熸鍦版敮鎸佹壒澶勭悊錛屽彧鏈塒reparedStatement瀵硅薄鎵嶇湡姝e湴鏀寔鎵瑰鐞嗐傛垜浠彲浠ヤ嬌鐢╝ddBatch()鍜宔xecuteBatch()鏂規硶閫夋嫨鏍囧噯鐨凧DBC鎵瑰鐞嗭紝鎴栬呴氳繃鍒╃敤PreparedStatement瀵硅薄鐨剆etExecuteBatch()鏂規硶鍜屾爣鍑嗙殑executeUpdate()鏂規硶閫夋嫨閫熷害鏇村揩鐨凮racle涓撴湁鐨勬柟娉曘傝浣跨敤Oracle涓撴湁鐨勬壒澶勭悊鏈哄埗錛屽彲浠ヤ互濡備笅鎵紺虹殑鏂瑰紡璋冪敤setExecuteBatch()錛?br />
PreparedStatement pstmt3D null;
try {
銆((OraclePreparedStatement)pstmt).setExecuteBatch(30);
銆...
銆pstmt.executeUpdate();
}

銆銆璋冪敤setExecuteBatch()鏃舵寚瀹氱殑鍊兼槸涓涓笂闄愶紝褰撹揪鍒拌鍊兼椂錛屽氨浼氳嚜鍔ㄥ湴寮曞彂SQL鍛戒護鎵ц錛屾爣鍑嗙殑executeUpdate()鏂規硶灝變細琚綔涓烘壒澶勭悊閫佸埌鏁版嵁搴撲腑銆傛垜浠彲浠ラ氳繃璋冪敤PreparedStatement綾葷殑sendBatch()鏂規硶闅忔椂浼犺緭鎵瑰鐞嗕換鍔°?br />
銆銆7銆佷嬌鐢∣racle locator鏂規硶鎻掑叆銆佹洿鏂板ぇ瀵硅薄錛圠OB錛?br />
銆銆Oracle鐨凱reparedStatement綾諱笉瀹屽叏鏀寔BLOB鍜孋LOB絳夊ぇ瀵硅薄鐨勫鐞嗭紝灝ゅ叾鏄疶hin椹卞姩紼嬪簭涓嶆敮鎸佸埄鐢≒reparedStatement瀵硅薄鐨剆etObject()鍜宻etBinaryStream()鏂規硶璁劇疆BLOB鐨勫鹼紝涔熶笉鏀寔鍒╃敤setCharacterStream()鏂規硶璁劇疆CLOB鐨勫箋傚彧鏈塴ocator鏈韓涓殑鏂規硶鎵嶈兘澶熶粠鏁版嵁搴撲腑鑾峰彇LOB綾誨瀷鐨勫箋傚彲浠ヤ嬌鐢≒reparedStatement瀵硅薄鎻掑叆鎴栨洿鏂癓OB錛屼絾闇瑕佷嬌鐢╨ocator鎵嶈兘鑾峰彇LOB鐨勫箋傜敱浜庡瓨鍦ㄨ繖浜屼釜闂錛屽洜姝わ紝鎴戝緩璁嬌鐢╨ocator鐨勬柟娉曟潵鎻掑叆銆佹洿鏂版垨鑾峰彇LOB鐨勫箋?br />
銆銆8銆佷嬌鐢⊿QL92璇硶璋冪敤瀛樺偍榪囩▼

銆銆鍦ㄨ皟鐢ㄥ瓨鍌ㄨ繃紼嬫椂錛屾垜浠彲浠ヤ嬌鐢⊿QL92鎴朞racle PL/SQL錛岀敱浜庝嬌鐢∣racle PL/SQL騫舵病鏈変粈涔堝疄闄呯殑濂藉錛岃屼笖浼氱粰浠ュ悗緇存姢浣犵殑搴旂敤紼嬪簭鐨勫紑鍙戜漢鍛樺甫鏉ラ夯鐑︼紝鍥犳錛屾垜寤鴻鍦ㄨ皟鐢ㄥ瓨鍌ㄨ繃紼嬫椂浣跨敤SQL92銆?br />
銆銆9銆佷嬌鐢∣bject SQL灝嗗璞℃ā寮忚漿縐誨埌鏁版嵁搴撲腑

銆銆鏃㈢劧鍙互灝哋racle鐨勬暟鎹簱浣滀負涓縐嶉潰鍚戝璞$殑鏁版嵁搴撴潵浣跨敤錛屽氨鍙互鑰冭檻灝嗗簲鐢ㄧ▼搴忎腑鐨勯潰鍚戝璞℃ā寮忚漿鍒版暟鎹簱涓傜洰鍓嶇殑鏂規硶鏄垱寤篔ava bean浣滀負浼鐨勬暟鎹簱瀵硅薄錛屽皢瀹冧滑鐨勫睘鎬ф槧灝勫埌鍏崇郴琛ㄤ腑錛岀劧鍚庡湪榪欎簺bean涓坊鍔犳柟娉曘傚敖綆¤繖鏍蜂綔鍦↗ava涓病鏈変粈涔堥棶棰橈紝浣嗙敱浜庢搷浣滈兘鏄湪鏁版嵁搴撲箣澶栬繘琛岀殑錛屽洜姝ゅ叾浠栬闂暟鎹簱鐨勫簲鐢ㄨ蔣浠舵棤娉曞埄鐢ㄥ璞℃ā寮忋傚鏋滃埄鐢∣racle鐨勯潰鍚戝璞$殑鎶鏈紝鍙互閫氳繃鍒涘緩涓涓柊鐨勬暟鎹簱瀵硅薄綾誨瀷鍦ㄦ暟鎹簱涓ā浠垮叾鏁版嵁鍜屾搷浣滐紝鐒跺悗浣跨敤JPublisher絳夊伐鍏風敓鎴愯嚜宸辯殑Java bean綾匯傚鏋滀嬌鐢ㄨ繖縐嶆柟寮忥紝涓嶄絾Java搴旂敤紼嬪簭鍙互浣跨敤搴旂敤杞歡鐨勫璞℃ā寮忥紝鍏朵粬闇瑕佸叡浜綘鐨勫簲鐢ㄤ腑鐨勬暟鎹拰鎿嶄綔鐨勫簲鐢ㄨ蔣浠朵篃鍙互浣跨敤搴旂敤杞歡涓殑瀵硅薄妯″紡銆?br />
銆銆10銆佸埄鐢⊿QL瀹屾垚鏁版嵁搴撳唴鐨勬搷浣?br />
銆銆鎴戣鍚戝ぇ瀹朵粙緇嶇殑鏈閲嶈鐨勭粡楠屾槸鍏呭垎鍒╃敤SQL鐨勯潰鍚戦泦鍚堢殑鏂規硶鏉ヨВ鍐蟲暟鎹簱澶勭悊闇姹傦紝鑰屼笉鏄嬌鐢↗ava絳夎繃紼嬪寲鐨勭紪紼嬭璦銆?br />
銆銆濡傛灉緙栫▼浜哄憳瑕佸湪涓涓〃涓煡鎵捐澶氳錛岀粨鏋滀腑鐨勬瘡涓閮戒細鏌ユ壘鍏朵粬琛ㄤ腑鐨勬暟鎹紝鏈鍚庯紝緙栫▼浜哄憳鍒涘緩浜嗙嫭绔嬬殑UPDATE鍛戒護鏉ユ垚鎵瑰湴鏇存柊絎竴涓〃涓殑鏁版嵁銆備笌姝ょ被浼肩殑浠誨姟鍙互閫氳繃鍦╯et瀛愬彞涓嬌鐢ㄥ鍒楀瓙鏌ヨ鑰屽湪涓涓猆PDATE鍛戒護涓畬鎴愩傚綋鑳藉鍦ㄥ崟涓鐨凷QL鍛戒護涓畬鎴愪換鍔★紝浣曞繀瑕佽鏁版嵁鍦ㄧ綉涓婃祦鏉ユ祦鍘葷殑錛熸垜寤鴻鐢ㄦ埛璁ょ湡瀛︿範濡備綍鏈澶ч檺搴﹀湴鍙戞尌SQL鐨勫姛鑳姐?/span>

nbt 2006-06-12 09:11 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲第一精品福利| 久久久久亚洲精品美女| 亚洲sss综合天堂久久久| 3d动漫精品啪啪一区二区免费| 亚洲乱码无码永久不卡在线| 国产成人高清精品免费观看| 久久影视国产亚洲| 99久久婷婷免费国产综合精品| 色久悠悠婷婷综合在线亚洲| 最近的2019免费中文字幕| 亚洲AV第一页国产精品| 91精品国产免费| 亚洲AV无码成人专区| 在线播放免费播放av片| 色欲aⅴ亚洲情无码AV蜜桃| 四虎AV永久在线精品免费观看| 日韩大片在线永久免费观看网站 | 中国毛片免费观看| 亚洲av一综合av一区| 精品无码人妻一区二区免费蜜桃| 亚洲综合一区二区| 国产v精品成人免费视频400条| 中文日韩亚洲欧美制服| 四虎在线播放免费永久视频 | 无码一区二区三区免费| 亚洲三级在线视频| 免费在线不卡视频| 日韩视频免费在线观看| 国产精品亚洲自在线播放页码| 四虎影在线永久免费四虎地址8848aa | 中文字幕天天躁日日躁狠狠躁免费| 亚洲免费一级视频| 成人亚洲综合天堂| 亚洲精品免费在线观看| 色欲色欲天天天www亚洲伊| 亚洲中久无码永久在线观看同| 老汉精品免费AV在线播放| 日本亚洲欧美色视频在线播放 | 久久综合亚洲色HEZYO国产| 国产婷婷成人久久Av免费高清 | 免费无码作爱视频|