#
1,<meta name="Robots" contect="all|none|index|noindex|follow|nofollow"> 默認是all
其中的屬性說明如下:
設定為all:文件將被檢索,且頁面上的鏈接可以被查詢;
設定為none:文件將不被檢索,且頁面上的鏈接不可以被查詢;
設定為index:文件將被檢索;
設定為follow:頁面上的鏈接可以被查詢;
設定為noindex:文件將不被檢索,但頁面上的鏈接可以被查詢;
設定為nofollow:文件將不被檢索,頁面上的鏈接可以被查詢。
2,revisit-after (重訪)
<META name="revisit-after" CONTENT="7 days" >
通知搜索引擎多少天訪問一次
其他的:
<META NAME="GENERATOR" CONTENT="Macromedia Dreamweaver MX">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<Meta http-equiv="Content-Language" Content="zh-CN">
<Meta http-equiv="Refresh" Content="5; Url=http://hi.baidu.com/pihi">
<Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT">
<meta http-equiv="cache-control" content="no-cache">
<META name="keywords" content="關鍵字">
<meta name="description" content="描述">
<meta name="author" content="作者">
<meta name="build" content="日期">
<meta name="coprright" content="版權">
<meta name="reply-to" content="email">
<meta name="robots" content="all">
<meta http-equiv="Page-Enter" content="RevealTrans (Duration=3, Transition=23)">
<meta http-equiv="Page-Exit" content="RevealTrans (Duration=3, Transition=23)">
<link rel="shortcut icon" href="favicon.ico">
------------------------------------------------------------------------------------------------------------
meta標簽分兩大部分:HTTP標題信息(HTTP-EQUIV)和頁面描述信息(NAME)。
1、Content-Type和Content-Language (顯示字符集的設定)
說明:設定頁面使用的字符集,用以說明主頁制作所使用的文字已經語言,瀏覽器會根據此來調用相應的字符集顯示page內容。
注意: 該meta標簽定義了HTML頁面所使用的字符集為GB2132,就是國標漢字碼。如果將其中的“charset=GB2312”替換成“BIG5”,則該頁面所用的字符集就是繁體中文Big5碼。當你瀏覽一些國外的站點時,IE瀏覽器會提示你要正確顯示該頁面需要下載xx語支持。這個功能就是通過讀取HTML頁面Meta標簽的Content-Type屬性而得知需要使用哪種字符集顯示該頁面的。如果系統里沒有裝相應的字符集,則IE就提示下載。其他的語言也對應不同的charset,比如日文的字符集是“iso-2022-jp ”,韓文的是“ks_c_5601”。
Charset選項:ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw, x-cns11643-1,x-cns11643-2等字符集;Content-Language的Content還可以是:EN、FR等語言代碼。
2、Refresh (刷新)
3、Expires (期限)
說明:指定網頁在緩存中的過期時間,一旦網頁過期,必須到服務器上重新調閱。
注意:必須使用GMT的時間格式,或直接設為0(數字表示多少時間后過期)。
4、Pragma (cach模式)
說明:禁止瀏覽器從本地機的緩存中調閱頁面內容。
注意:網頁不保存在緩存中,每次訪問都刷新頁面。這樣設定,訪問者將無法脫機瀏覽。
5、Set-Cookie (cookie設定)
說明:瀏覽器訪問某個頁面時會將它存在緩存中,下次再次訪問時就可從緩存中讀取,以提高速度。當你希望訪問者每次都刷新你廣告的圖標,或每次都刷新你的計數器,就要禁用緩存了。通常HTML文件沒有必要禁用緩存,對于ASP等頁面,就可以使用禁用緩存,因為每次看到的頁面都是在服務器動態生成的,緩存就失去意義。如果網頁過期,那么存盤的cookie將被刪除。
用法:<Meta http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday,
21-Oct-98 16:14:21 GMT; path=/">
注意:必須使用GMT的時間格式。
6、Window-target (顯示窗口的設定)
說明:強制頁面在當前窗口以獨立頁面顯示。
用法:<Meta http-equiv="Widow-target" Content="_top">
注意:這個屬性是用來防止別人在框架里調用你的頁面。Content選項:_blank、_top、_self、_parent。
7、Pics-label (網頁RSAC等級評定)
說明:在IE的Internet選項中有一項內容設置,可以防止瀏覽一些受限制的網站,而網站的限制級
別就是通過該參數來設置的。
用法:<META http-equiv="Pics-label" Contect=
"(PICS-1.1'http://www.rsac.org/ratingsv01.html'
I gen comment 'RSACi North America Sever' by 'inet@microsoft.com'
for 'http://www.microsoft.com' on '1997.06.30T14:21-0500' r(n0 s0 v0 l0))">
注意:不要將級別設置的太高。RSAC的評估系統提供了一種用來評價Web站點內容的標準。用戶可以設置Microsoft Internet Explorer(IE3.0以上)來排除包含有色情和暴力內容的站點。上面這個例子中的HTML取自Microsoft的主頁。代碼中的(n 0 s 0 v 0 l 0)表示該站點不包含不健康內容。級別的評定是由RSAC,即美國娛樂委員會的評級機構評定的,如果你想進一步了解RSAC評估系統的等級內容,或者你需要評價自己的網站,可以訪問RSAC的站點:http://www.rsac.org/。
8、Page-Enter、Page-Exit (進入與退出)
說明:這個是頁面被載入和調出時的一些特效。
用法:<Meta http-equiv="Page-Enter" Content="blendTrans(Duration=0.5)">
<Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)">
注意:blendTrans是動態濾鏡的一種,產生漸隱效果。另一種動態濾鏡RevealTrans也可以用于頁面進入與退出效果:
<Meta http-equiv="Page-Enter" Content="revealTrans(duration=x, transition=y)">
<Meta http-equiv="Page-Exit" Content="revealTrans(duration=x, transition=y)">
Duration 表示濾鏡特效的持續時間(單位:秒)
Transition 濾鏡類型。表示使用哪種特效,取值為0-23。
0 矩形縮小
1 矩形擴大
2 圓形縮小
3 圓形擴大
4 下到上刷新
5 上到下刷新
6 左到右刷新
7 右到左刷新
8 豎百葉窗
9 橫百葉窗
10 錯位橫百葉窗
11 錯位豎百葉窗
12 點擴散
13 左右到中間刷新
14 中間到左右刷新
15 中間到上下
16 上下到中間
17 右下到左上
18 右上到左下
19 左上到右下
20 左下到右上
21 橫條
22 豎條
23 以上22種隨機選擇一種
9、MSThemeCompatible (XP主題)
說明:是否在IE中關閉 xp 的主題
用法:<Meta http-equiv="MSThemeCompatible" Content="Yes">
注意:關閉 xp 的藍色立體按鈕系統顯示樣式,從而和win2k 很象。
10、IE6 (頁面生成器)
說明:頁面生成器generator,是ie6
用法:<Meta http-equiv="IE6" Content="Generator">
注意:用什么東西做的,類似商品出廠廠商。
11、Content-Script-Type (腳本相關)
說明:這是近來W3C的規范,指明頁面中腳本的類型。
用法:<Meta http-equiv="Content-Script-Type" Content="text/javascript">
★NAME變量
name是描述網頁的,對應于Content(網頁內容),以便于搜索引擎機器人查找、分類(目前幾乎所有的搜索引擎都使用網上機器人自動查找meta值來給網頁分類)。
name的value值(name="")指定所提供信息的類型。有些值是已經定義好的。例如description(說明)、keyword(關鍵字)、refresh(刷新)等。還可以指定其他任意值,如:creationdate(創建日期) 、
document ID(文檔編號)和level(等級)等。
name的content指定實際內容。如:如果指定level(等級)為value(值),則Content可能是beginner(初級)、intermediate(中級)、advanced(高級)。
1、Keywords (關鍵字)
說明:為搜索引擎提供的關鍵字列表
用法:<Meta name="Keywords" Content="關鍵詞1,關鍵詞2,關鍵詞3,關鍵詞4,……">
注意:各關鍵詞間用英文逗號“,”隔開。META的通常用處是指定搜索引擎用來提高搜索質量的關鍵詞。當數個META元素提供文檔語言從屬信息時,搜索引擎會使用lang特性來過濾并通過用戶的語言優先參照來顯示搜索結果。例如:
<Meta name="Kyewords" Lang="EN" Content="vacation,greece,sunshine">
<Meta name="Kyewords" Lang="FR" Content="vacances,grè:ce,soleil">
2、Description (簡介)
說明:Description用來告訴搜索引擎你的網站主要內容。
用法:<Meta name="Description" Content="你網頁的簡述">
注意:
3、Robots (機器人向導)
說明:Robots用來告訴搜索機器人哪些頁面需要索引,哪些頁面不需要索引。Content的參數有all、none、index、noindex、follow、nofollow。默認是all。
用法:<Meta name="Robots" Content="All|None|Index|Noindex|Follow|Nofollow">
注意:許多搜索引擎都通過放出robot/spider搜索來登錄網站,這些robot/spider就要用到meta元素的一些特性來決定怎樣登錄。
all:文件將被檢索,且頁面上的鏈接可以被查詢;
none:文件將不被檢索,且頁面上的鏈接不可以被查詢;(和 "noindex, no follow" 起相同作用)
index:文件將被檢索;(讓robot/spider登錄)
follow:頁面上的鏈接可以被查詢;
noindex:文件將不被檢索,但頁面上的鏈接可以被查詢;(不讓robot/spider登錄)
nofollow:文件將不被檢索,頁面上的鏈接可以被查詢。(不讓robot/spider順著此頁的連接往下探找)
4、Author (作者)
說明:標注網頁的作者或制作組
用法:<Meta name="Author" Content="張三,abc@sina.com">
注意:Content可以是:你或你的制作組的名字,或Email
5、Copyright (版權)
說明:標注版權
用法:<Meta name="Copyright" Content="本頁版權歸Zerospace所有。All Rights Reserved">
注意:
6、Generator (編輯器)
說明:編輯器的說明
用法:<Meta name="Generator" Content="PCDATA|FrontPage|">
注意:Content="你所用編輯器"
7、revisit-after (重訪)
說明:
用法:<META name="revisit-after" CONTENT="7 days" >
PostgreSQL支持管理員直接手動安裝數據庫,給用戶提供了更大的方便。
1. 在PostgreSQL官方網站上下載免安裝二進制的包,名字類似于postgresql-*.*.*.*-binaries-no-installer.tar.gz之類的。
下載到本地,解壓到某路徑PATH下。
2. 在PATH目錄中創建data文件夾,用于存放數據。
3. 開始-->運行-->cmd 進入命令行。并cd到PATH\bin目錄下執行下面的命令用來初始化數據庫:
PATH\bin> initdb.exe -D PATH\data -E UTF8 --locale=C
4. 將pgsql注冊為windows服務,便于操作和控制:
PATH\bin> pg_ctl.exe register -D PATH\data -N pgsql
其中-N參數用來設置pgsql作為windows服務的名稱。
5. 啟動和關閉數據庫,在命令行下:
> net start pgsql (開啟數據庫)
> net stop pgsql (關閉數據庫)
注:為避免以后可能發生的亞州大字符集的亂碼問題,統一使用UTF8編碼。
需要一個非管理員帳號來運行PostgreSQL?
當一個駭客通過軟件的缺陷獲得了侵入一臺計算機的入口時,她獲得的是這個程序運行所用用戶帳號的對應權限。由于我們無法預知PostgreSQL中是否還存在這樣的bug,所以我們強制使用一個非管理員的服務帳號來最小化潛在的駭客利用此類漏洞對系統進行破壞的風險。這樣的設置已是Unix界的慣例做法,同時在Windows世界中,Microsoft以及其他供應商也開始采用這樣的做法來改進他們系統的安全性。補充: 自PostgreSQL 8.2發行后,從管理帳號啟動變得可行。PostgreSQL 8.2及后續版本會在啟動后不可撤銷地放棄管理權限,從而保證了當極端不可能事件,當PostgreSQL受到入侵時,系統的安全性。
<script type="text/javascript">
//** iframe自動適應頁面 **//
//輸入你希望根據頁面高度自動調整高度的iframe的名稱的列表
//用逗號把每個iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一個窗體,則不用逗號。
//定義iframe的ID
var iframeids=["test"]
//如果用戶的瀏覽器不支持iframe是否將iframe隱藏 yes 表示隱藏,no表示不隱藏
var iframehide="yes"
function dyniframesize()
{
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++)
{
if (document.getElementById)
{
//自動調整iframe高度
dyniframe[dyniframe.length] = document.getElementById(iframeids[i]);
if (dyniframe[i] && !window.opera)
{
dyniframe[i].style.display="block"
if (dyniframe[i].contentDocument && dyniframe[i].contentDocument.body.offsetHeight) //如果用戶的瀏覽器是NetScape
dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight;
else if (dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight) //如果用戶的瀏覽器是IE
dyniframe[i].height = dyniframe[i].Document.body.scrollHeight;
}
}
//根據設定的參數來處理不支持iframe的瀏覽器的顯示問題
if ((document.all || document.getElementById) && iframehide=="no")
{
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}
if (window.addEventListener)
window.addEventListener("load", dyniframesize, false)
else if (window.attachEvent)
window.attachEvent("onload", dyniframesize)
else
window.onload=dyniframesize
</script>
使用的時候只要貼在<head></head>里面就可以
歡迎各位大俠加入IT精英俱樂部(QQ群:11672321)
一、使用mod_jk.so方式
1.無集群方式
1)下載、安裝Apache2.2.11,Tomcat6.0.20略
2)下載mod_jk-1.2.28-httpd-2.2.3.so改名為mod_jk.so放到%APACHE_HOME%\modules下(不改名會出錯,不知道為什么)
3)打開%APACHE_HOME%\conf\httpd.conf,找到最末一個Include節點,加入mod-jk_nocluster.conf
4)在%APACHE_HOME%\conf\新建mod-jk_nocluster.conf,加入以下內容:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers_nocluster.properties
JkLogFile logs/mod_jk_nocluster.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /* ajp13
#關掉主機Lookup,如果為on,很影響性能,可以有10多秒鐘的延遲。
HostnameLookups Off
5)在%APACHE_HOME%\conf\新建workers_nocluster.properties,加入以下內容:
worker.list=ajp13
worker.maintain=60
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
6)啟動Apache,tomcat,在地址欄輸入http://localhost看到tomcat畫面成功了
2.使用集群(以兩個tomcat為例)
1)、2)同上
3)打開%APACHE_HOME%\conf\httpd.conf,找到最末一個Include節點,更改mod-jk_nocluster.conf為mod-jk_cluster.conf
4)在%APACHE_HOME%\conf\新建mod-jk_cluster.conf,加入以下內容:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers_cluster.properties
JkLogFile logs/mod_jk_cluster.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /* controller
HostnameLookups Off
5)在%APACHE_HOME%\conf\新建workers_cluster.properties,加入以下內容:
worker.list = controller,tomcat1,tomcat2 #server 列表
#========tomcat1========
worker.tomcat1.port=18109 #ajp13 端口號,在tomcat下server.xml配置,默認8009
worker.tomcat1.host=localhost #tomcat的主機地址,如不為本機,請填寫ip地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1 #server的加權比重,值越高,分得的請求越多
#worker.tomcat1.redirect=tomcat2 #是在cluster環境之下,當tomcat1掛點或無回應,jk會將request導向這個指令指定的其他worker作處理。
#========tomcat2========
worker.tomcat2.port=18209 #ajp13 端口號,在tomcat下server.xml配置,默認8009
worker.tomcat2.host=localhost #tomcat的主機地址,如不為本機,請填寫ip地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1 #server的加權比重,值越高,分得的請求越多
#worker.tomcat2.activation=disabled #
#========controller,負載均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 #指定分擔請求的tomcat
worker.controller.sticky_session=1
6)修改tomcat1配置文件server.xml,tomcat2配置修改地方同tomcat1,僅需注意相關端口號,在同一臺服務器上時不能重復
以下列出需修改節點地方:
#默認為8005
<Server port="8105" shutdown="SHUTDOWN">
#默認8080,此處可根據需求修改線程并發等
<Connector port="8180" ...>
#默認8009,
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />
#name可為Standalone
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="6">
<Manager
className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false" notifyListenersOnReplication="true"
mapSendOptions="6" />
<!--
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
-->
<Channel
className="org.apache.catalina.tribes.group.GroupChannel">
<Membership
className="org.apache.catalina.tribes.membership.McastService"
mcastBindAddress="127.0.0.1" #安裝了VPN、svn等,會導致綁定失敗需加上此句
address="228.0.0.4" port="45564"
frequency="500" dropTime="3000" />
<Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto" port="4001" selectorTimeout="100" maxThreads="6" />
<Sender
className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" />
</Sender>
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector" />
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor" />
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor" />
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;" />
<ClusterListener
className="org.apache.catalina.ha.session.ClusterSessionListener" />
</Cluster>
在<Host>節點加入
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/xxx/"
deployDir="/tmp/war-deploy/xxx/"
watchDir="/tmp/war-listen/xxx/"
watchEnabled="false"/>
7)將Web應用打成war包放到每一個webapps下,確保web.xml中加了
<display-name>xxx<display-name>
<distributable />
或者直接放到tomcat的web.xml中
至此mod-jk.so方式全配好了,啟動服務就OK了!
待續Apache新增的配置方式。。。。。。
1.安裝Apache-httpd-2.2.11
2.下載svn-win32-1.6.3.zip for Apache-httpd-2.2.11,解壓到某個目錄
3.添加環境變量%SVN_HOME%,修改%PATH%,增加%SVN_HOME%\bin
4.新建空目錄x:\Respository\test\
5.進入命令行:svnadmin create --fs-type fsfs x:\Respository\test\
6.進入x:\Respository\test\conf\svnserve.conf
去掉注釋
auth-access = write
password-db = passwd
在本目錄passwd文件中新建用戶 xxx = xxx
7.新增服務
sc create svnservice binPath= "%SVN_HOME%\bin\svnserve.exe --service -r x:\Respository" displayname= "SVNService" depend= Tcpip start= auto
刪除服務運行"sc delete svnservice"
8.復制%SVN_HOME%\bin中的文件mod_dav_svn.so和mod_authz_svn.so到%APACHE_HOME%\modules目錄,
復制%SVN_HOME%\bin\libdb44.dll、libeay32.dll、 ssleay32.dll到%APACHE_HOME%\bin
9.%APACHE_HOME%\conf\httd.conf做如下修改:
去掉以下行的注釋(將開頭的#刪除):
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
在LoadModule節的最后添加以下兩行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在文件末尾加入:
<Location /svn>
DAV svn
SVNParentPath x:\Respository
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile x:\Respository\conf\passwd
#AuthzSVNAccessFile x:\Respository\conf\authz
Require valid-user
</Location>
可是現在啟動不了Apache ,那位大俠能幫幫我,網上找了好多都試過了還是不行
<script language="javascript">
var oPopup=null; //彈出菜單
var popWidth=110; //彈出菜單的寬度
var popHeight=140; //彈出菜單的高度
var curRow=null; //記錄彈出菜單最后指向的行
function init(){
oPopup = window.createPopup();
var oPopBody = oPopup.document.body;
//設置菜單樣式
oPopBody.style.backgroundColor = "scrollbar";
oPopBody.style.border = "2px solid";
oPopBody.style.borderColor = "buttonhighlight buttonshadow buttonshadow buttonhighlight"
var strHTML=""
strHTML+='<table oncontextmenu="return false;" onselectstart="return false;" id="tbMenu" ';
strHTML+=' style="cursor:default; width:100%; height:100%;font-size:12px;" border=0 cellpadding=0 cellspacing=2>';
//在這里擴展菜單的選項start
strHTML+='<tr operation="edit"><td> 編輯</td></tr>';
strHTML+='<tr operation="refresh"><td> 刷新</td></tr>';
strHTML+='<tr operation="addrowup"><td> 添加新行(上)</td></tr>';
strHTML+='<tr operation="addrowdown"><td> 添加新行(下)</td></tr>';
strHTML+='<tr operation="delrow"><td> 刪除該行</td></tr>';
strHTML+='<tr operation="moveup"><td> 向上移動一行</td></tr>';
strHTML+='<tr operation="movedown"><td> 向下移動一行</td></tr>';
//在這里擴展菜單的選項end
strHTML+='</table>';
oPopBody.innerHTML=strHTML;
var tb = oPopup.document.getElementById("tbMenu");
var rs=tb.rows;
for(var i=0;i<rs.length;i++){
var row=rs[i];
addEvent(row);
}
}
function showMenu(){
var e=window.event;
var src=e.srcElement;
oPopup.show(window.event.clientX, window.event.clientY, popWidth, popHeight, document.body);
window.event.returnValue=false;
}
function addEvent(row){
row.attachEvent("onmouseover",function(){selRow(row)});
row.attachEvent("onclick",function(){onEvent(row)});
}
function selRow(src){
if(curRow!=null){ curRow.style.backgroundColor="scrollbar"; curRow.style.color="black";}
curRow=src; curRow.style.backgroundColor="midnightblue"; curRow.style.color="white";
}
function onEvent(src){
oPopup.hide();
switch(src.operation){
//在這里為菜單項的點擊事件添加處理方法
//本示例的方法只供參考,沒有實現
case "edit": example(src.operation); break;
case "refresh": example(src.operation); break;
case "addrowup": example(src.operation); break;
case "addrowdown": example(src.operation); break;
case "delrow": example(src.operation); break;
case "moveup": example(src.operation); break;
case "movedown": example(src.operation); break;
default: return;
}
src.style.backgroundColor="scrollbar";
src.style.color="black";
curRow=null;
}
function example(str){
alert("您選擇了"+str+"操作!");
}
</script>
<body onload="init();showMenu()">
</body>
我們在數據庫插入一條數據的時候,經常是需要返回插入這條數據的主鍵。但是數據庫供應商之間生成主鍵的方式都不一樣。
有些是預先生成(pre-generate)主鍵的,如Oracle和PostgreSQL;有些是事后生成(post-generate)主鍵的,如MySQL和SQL Server。但是不管是哪種方式,我們都可以用iBATIS的節點來獲取語句所產生的主鍵。
例子如下:
xml 代碼
<insert id="insertProduct-ORACLE" parameterClass="product">
<selectKey resultClass="int" type="pre" keyProperty="Id" >
SELECT YOURPKSEQUENCE.NEXTVAL AS VALUE FROM DUAL
<selectKey>
insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)
<insert>
<insert id="insertProduct-MS-SQL" parameterClass="product">
insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
<selectKey resultClass="int" type="post" keyProperty="id" >
select @@IDENTITY as value
<selectKey>
<insert>
<insert id="insertProduct-MYSQL" parameterClass="product">
insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
<selectKey resultClass="int" type="post" keyProperty="id" >
select LAST_INSERT_ID() as value
<selectKey>
<insert>
alter database datafile 'D:\DevTools\Oracle\oradata\ora92\USERS01.DBF' offline drop;
alter database open;