<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    html學(xué)習(xí)地址

    http://www.enet.com.cn/eschool/zhuanti/easyhtml/

    posted @ 2012-11-26 16:19 youngturk 閱讀(306) | 評(píng)論 (0)編輯 收藏

    服務(wù)器端回復(fù)郵件功能(javamail發(fā)送郵件的簡(jiǎn)單實(shí)例)

         摘要: 為了以后使用方便,自己寫了段代碼,打成jar包,以方便以后使用。呵呵 以下三段代碼是我的全部代碼,朋友們?nèi)绻胗茫苯訌?fù)制即可。 第一個(gè)類:MailSenderInfo.java package com.util.mail;   /** *//**   * 發(fā)送郵件需要使用的基本信息 *aut...  閱讀全文

    posted @ 2012-11-23 12:39 youngturk 閱讀(1806) | 評(píng)論 (1)編輯 收藏

    eclipse 使用tomcat需要首先安裝其插件,然后下載服務(wù)器,最后部署, Eclipse Tomcat插件的配置, 及 Tomcat 的配置

    首先下載 對(duì)應(yīng) eclipse 版本的 tomcat 插件版本,(這里要注意: Tomcat 插件是Tomcat 插件,Tomcat 是 Tomcat, 兩者不能混淆!)

    下載地址:http://www.eclipsetotale.com/tomcatPlugin.html

    然后將得到的壓縮包解壓,放入 eclipse 的 plugins 目錄中重啟 eclipse, Tomcat 插件安裝成功!

    當(dāng)然安裝成功不并代表能使用,這里還要配置 Tomcat, 才能正常使用 Tomcat 插件,

    配置過程:

    首先下載當(dāng)前 Eclipse 能使用的 Tomcat 版本,

    下載地址:http://tomcat.apache.org/ 

    然后解壓到指定的目錄,然后配置

    Eclipse - toolsbar  ->  Window  ->  Prefences  ->  Tomcat  -> 指向剛才 Tomcat 解壓的目錄,

    到此配置完成,使用 Tomcat 插件可以啟動(dòng)、關(guān)閉 Tomcat.

    使用 Eclipse 建立 Dynamic Web Project 如:HelloProject

    右鍵 Run As –>  Run On Server  ->  如圖:

    HelloProject

    彈出如圖界面配置:

    HelloProject.ConfigSever

    配置完成,會(huì)在看到這樣效果項(xiàng)目目錄下會(huì)有 Servers 一個(gè)目錄,是專屬 HelloProject 項(xiàng)目的 Tomcat 配置,

    還會(huì)在控制臺(tái)那塊看到 Servers 如圖:

    finish

    這時(shí)已經(jīng)可以使用 Tomcat , Start、Stop、Restart 等.

    重點(diǎn)要說的,也是下邊要講的是:

    對(duì)于上圖紅圈中的 server.xml 和 Tomcat/conf/server.xml  文件,

    我們說過了紅圈中的 server.xml 是針對(duì) HelloProject 生成的配置文件,當(dāng)然多個(gè)項(xiàng)目也可以共用 一個(gè) Servers 目錄下的配置!這個(gè)暫時(shí)先不講。

    而 Tomcat/conf/server.xml  是 Tomcat 本身所有,有更大的通用性。

    為了便于區(qū)分我們把紅圈中的 server.xml 叫 project.server.xml, 把 Tomcat/conf/server.xml 叫 tomcat.server.xml。

    本次主要講 server.xml 中的 <Context … />

    來看 project.server.xml 中的  <Context docBase="HelloProject" path="/HelloProject" reloadable="true" source="org.eclipse.jst.jee.server:HelloProject"/>

    docBase 指的是 相對(duì) Servers 目錄 平級(jí)的 HelloProject 目錄 即項(xiàng)目目錄,如圖:

    dir 

    path 指的是 網(wǎng)站訪問路徑,如:http://locahost:8080/HelloProject

    像這樣生成的這個(gè) project.server.xml 我們一般不要?jiǎng)?

    而對(duì)于 tomcat.server.xml 中 <Content … />

    我們看這兩配置都是對(duì)的:

    <!--<Context path="/HP" reloadable="true" docBase="C:\Documents and Settings\Administrator\workspace\HelloProject\WebContent" workDir=”D:\worDir” /> -->
          <Context path="/HelloProject" reloadable="true" docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" workDir=”C:\workDir” />

       <Context path="/HPT" reloadable="true" docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" workDir=”C:\workDir” />

    網(wǎng)站訪問路徑分別是

    http://localhost:8080/HP

    http://localhost:8080/HelloProject

    對(duì)于上邊的 HPT 我們可以這樣訪問:

    http://localhost:8080/HPT/WebContent

    這樣可以看到 如果是 docBase 指到了 WebContent 下則可用自己定義的 path,

    如果 docBase 指到的是項(xiàng)目目錄則必須使用項(xiàng)目原來的 path, 或者路徑訪問做下修改

    最后的 workDir 是部署后 jsp 發(fā)布的目錄,可以自己隨便指定,或不指定.

    posted @ 2012-11-22 21:43 youngturk 閱讀(2442) | 評(píng)論 (0)編輯 收藏

    關(guān)于struts2中action傳到參數(shù)問題

    第一種方式:
    <action name="adminEnterpriceculturesave" class="adminEnterpriceculturesaveAction" method="save">
              <result name="success" type="redirectAction">/admin/adminEnterpriceculturelist.action?enterpriceculture.enterpricetype=A</result>
    盡管不好看格式,但是卻很容易懂.
    第一種方式的/admin不是命名空間,暫時(shí)我還沒時(shí)間去實(shí)踐他,現(xiàn)在有點(diǎn)忙..因?yàn)槲业拿臻g是這樣的

    <struts>

        <package name="enterpriceculture" namespace="/" extends="struts-default">  
            <action name="adminEnterpriceculturesave" class="adminEnterpriceculturesaveAction" method="save">
              <result name="success" type="redirectAction">/admin/adminEnterpriceculturelist.action?enterpriceculture.enterpricetype=A</result>
              <!-- <param name="enterpriceculture.enterpricetype">A</param>
              <result name="success" type="chain">
                 <param name="actionName">adminEnterpriceculturelist</param>
                 <param name="namespace">/</param>
              </result>-->
          <!-- <result name="success">/admin/Enterpriceculture_List.jsp</result>-->
          </action>

    </package>
    </struts>
    第二種方式:
    <param name="enterpriceculture.enterpricetype">A</param>
              <result name="success" type="chain">
                 <param name="actionName">adminEnterpriceculturelist</param>
                 <param name="namespace">/</param>
              </result>
    去掉命名空間因?yàn)槭窃诒疚募倪@個(gè)adminEnterpriceculturelist進(jìn)行跳轉(zhuǎn),所以理解起來容易很多..


    綜合找到網(wǎng)上有關(guān)資料:如下:
    chain類型 如下:

       <action name="getTemplate" class="tabAction" method="getTemplateByParas">
             <param name="objectId">${objectId}</param>
            <param name="param1">${param1}</param>
            <param name="items">${items}</param>
           
            <result name="success" type="chain">
             <param name="actionName">${actionName}</param>
             <param name="namespace">${namespace}</param>
            </result>
            
      </action>

           這樣就可以實(shí)現(xiàn)傳參了,這里的參數(shù)所有對(duì)象都可以傳,包括map,List,set 等集合也可以。同時(shí)這里還需要注意一個(gè)小問題,chain這種類型是XWork中的result類型,它對(duì)應(yīng)的類是:
           com.opensymphony.xwork2.ActionChainResult .   這里需要注意一個(gè)小問題, actionName,namespace都是他的屬性,所以對(duì)于傳過的URL參數(shù)要做一下處理。
           actionName必須是Action的名稱,namespace是他命名空間,必須以"/"開頭,如:
           /tab/getTemplate.action       則 namespace="/tab"   ;  actionName=”getTemplate“; 

    posted @ 2012-11-22 21:26 youngturk 閱讀(497) | 評(píng)論 (0)編輯 收藏

    spring中的 繼承HibernateDaosupport方法

    上述的getHibernateTemplate方法中的update方法跟數(shù)據(jù)庫設(shè)置主鍵有關(guān),能根據(jù)主鍵更新..個(gè)人理解

    posted @ 2012-11-22 08:59 youngturk 閱讀(277) | 評(píng)論 (0)編輯 收藏

    將html語言輸出到頁面轉(zhuǎn)換為網(wǎng)頁行式輸出方法 escape屬性

    在struts2中 用escape屬性 可以直接將html語言,輸出成為網(wǎng)頁形式去掉了其中的標(biāo)記..

    posted @ 2012-11-15 15:06 youngturk 閱讀(765) | 評(píng)論 (3)編輯 收藏

    ORACLE編程,存儲(chǔ)過程,自學(xué)筆記(備份)轉(zhuǎn)

    --創(chuàng)建過程名稱
    --create procedure 存儲(chǔ)過程名字 is begin
    --create or replace procedure  如果有就替換掉
    ----------------------------------------------
    案例1:
    --創(chuàng)建一個(gè)表
    create table mytest(name varchar2(30),passwd varchar2(30));
    --創(chuàng)建過程
    create procedure sq_pro1 is
    begin
    --執(zhí)行部分
    insert into mytest values('zgx','888666');
    end;

    -- / 斜線回車


    ----------------------------------------------
    如何查看錯(cuò)誤信息:
    show error  回車

    --調(diào)用存儲(chǔ)過程
    1.exec 過程名(參數(shù)1,2....);
    2.call 過程名(參數(shù)1,2....);
    ---------------------------------------------------
    set serveroutput on;打開輸出選項(xiàng)
    set serveroutput off;關(guān)閉輸出選項(xiàng)
    dbms_  是包名的意思!
    案例2:
    dbms_output.put_line('helloWorld'); 
    -----------------
    declare
     v_ename varchar2(5);--定義字符串變量
    begin
     --into v_ename意思:把查詢出來數(shù)據(jù) 賦值給 v_ename;&no是執(zhí)行的時(shí)候會(huì)彈出輸入框
     select ename into v_ename from emp where empno=&no;
     --||代表 連接符號(hào);
     dbms_output.put_line('用戶名是:'||v_ename);
    end;
    -----------
    案例3:
    declare
     v_ename varchar2(5);--定義字符串變量
     v_sal number(7,2);--定義字符串變量
    begin
     --如果是多個(gè)字段,用逗號(hào)隔開,順序必須一樣!!
     select ename,sal into v_ename,v_sal from emp where empno=&no;
     --||代表 連接符號(hào);
     dbms_output.put_line('用戶名是:'||v_ename||'工資:'||v_sal);
    end;
    ---------------------
    --異常的捕獲
    exception
    when no_data_found then --如果出現(xiàn)no_data_found異常就執(zhí)行下一句
    dbms_output.put_line('輸入有誤!');
    end;
    ------------
    過程:
    案例4:
    創(chuàng)建帶輸入?yún)?shù)的過程;
    create procedure sp_pro3(spNma varchar2,newSal number) is
    begin
     update emp set sal=newSal where ename=spName;
    end;
    ------------
    函數(shù):
    函數(shù)用于返回特定的數(shù)據(jù),當(dāng)建立函數(shù)時(shí),在函數(shù)頭部要求有return語句;
    案例5:
    --輸入雇員姓名,返回該雇員的年薪
    --返回一個(gè)number類型;返回值名字是yearSal,類型是number(7,2);
    create function sp_fun1(spName varchar2) return number is yearSal number(7,2);
    begin
    --執(zhí)行部分
    select sal*12+nvl(comm,0)*12 into yearSal from emp where enamee=spName;
    return yearSal;
    end;
    調(diào)用函數(shù)中
    --隨便定義一個(gè)值
    var abc number;
    --掉用函數(shù)把結(jié)果賦值給 abc
    call sp_fun1()'SCOTT' into:abc;
    -------------

    創(chuàng)建包:
    --創(chuàng)建了一個(gè)包 sp_package
    --聲明該包里有一個(gè)過程update_sal
    --生命該包里有一個(gè)函數(shù)annual_income
    create package sp_package is
     procedure update_sal(name,varchar2,newsal number);
     function annual_income(name varchar2, return number;
    end;
    給包sp_package 實(shí)現(xiàn)包體--把定義包中的 過程和函數(shù)實(shí)現(xiàn);
    create package body sp_package is
    procedure update_sal(name,varchar2,newsal number) is
    begin
     update emp set sal=newsal where ename=name;
    end;
    function annual_income(name varchar2)
    return number isannual_salary number;
    begin
    select sal*12+nvl(comm,0) into annual_salary from emp where ename=name;
    return annual_salary;
    end;
    end;
    --------------
    調(diào)用包中的過程或函數(shù)
    exec sp_package.update_sal('SCOTT','120');
    ---------------------
    觸發(fā)器
    觸發(fā)器是指隱含的執(zhí)行的存儲(chǔ)過程。當(dāng)定義觸發(fā)器時(shí),必須要指定觸發(fā)的時(shí)間和觸發(fā)的操作,常用觸發(fā)包括insert,pudate,delete語句,而觸發(fā)操作實(shí)際就是一個(gè)pl/sql塊。可以使用create trigger來建立觸發(fā)器。
    觸發(fā)器是非常有用的,可維護(hù)數(shù)據(jù)庫的安全和一致性。
    ---------
    定義并使用變量
    包括:
    1.標(biāo)量類型(scalar)
    2.符合類型()

    ---------
    標(biāo)量(scalar)-常用類型
    語法:
    identifier [constant] datatype [not null] [:=| default expr]
    identifier:名稱
    constant:指定常量。需要指定它的初始值,且其值是不能改變的
    datatype:數(shù)據(jù)類型
    not null: 指定變量值不能為null
    := 給變量或是常量指定初始值
    default 用于指定初始值
    expr:指定初始值的pl/sql表達(dá)式,文本值、其他變量、函數(shù)等
    ------------
    標(biāo)量定義的案例
    1.定義一個(gè)變長(zhǎng)字符串
    v_ename varchar2(10)
    2.定義一個(gè)小數(shù) 范圍 -9999.99~9999.99
    v_sal number(6,2)
    3.定義一個(gè)小數(shù)并給一個(gè)初始值為5.4 :=pl/sql的賦值號(hào)
    v_sal2 number(6,2):=5.4
    4.定義一個(gè)日期類型的數(shù)據(jù)
    v_hiredate date;
    5.定義一個(gè)布爾變量,不能為空,初始值為false
    v_valid boolean not null default false;
    ---------------
    如何使用標(biāo)量
       定義好變量后,就可以使用這些變量。這里需要說明的是pl/sql塊為變量賦值不同于其他的編程語言,需要在等號(hào)前面加冒號(hào)(:=)

    下面以輸入員工號(hào),顯示雇員名稱、工資、個(gè)人所得稅(稅率為0.03為例)。說明變量的使用,看看如何編寫:

    declare
    c_tax_rate number(3.2):=0.03; --定義賦值
    --用戶名
    v_ename varchar2(5);
    v_sal number(7,2);
    v_tax_sal number()7,2;
    begin
    --執(zhí)行
    select ename,sal into v_ename,v_sal from emp where empno=$no;
    --計(jì)算所得稅
    v_tax_sal:=v_sal*c_tax_rate;
    --輸出
    dbms_output.put_line('姓名是:'||v_ename||'工資:'||v_sal||'所得稅:'||v_tax_sal);
    end;
    -----
    標(biāo)量(scalar)--使用%type類型
     對(duì)于上面的pl/sql塊有一個(gè)問題:
     就是如果員工的姓名超過了5字符的話,就會(huì)有錯(cuò)誤,為了降低pl/sql程序的維護(hù)工作量,可以使用%type屬性定義變量,這樣他會(huì)按照數(shù)據(jù)庫列來確定你定義的變量的類型和長(zhǎng)度。
    看看怎么使用。
    語法: 標(biāo)識(shí)符名 表名.列名%type;

     declare
      v_ename emp.ename%type; --定義變量v_ename 和emp表中列名ename大小類型保持一致;
    ---
    復(fù)合變量(composite)
    用于存放多個(gè)值的變量。
    包括:
    1.pl/sql記錄
    2.pl/sql表
    ---------------
    復(fù)合類型-pl/sql記錄
      類似與高級(jí)語言的結(jié)構(gòu)體,需要注意的是,當(dāng)引用pl/sql記錄成員時(shí),必須要加記錄變量作為前綴(記錄變量.記錄成員)
    如下:
    declare
    --定義一個(gè)pl/sql記錄類型是:emp_record_type,類型包括三個(gè)數(shù)據(jù)name,salary,title;該類型中可以存放三個(gè)類型的數(shù)據(jù);
    type emp_record_type is record(name emp.ename%type,salary emp.sal%type,title  emp.job%type);

    --定義了一個(gè)sp_record變量,類型是emp_record_type
    sp_record emp_record_type;

    begin
    select ename,sal,job into sp_record from emp where empno=7788;
    dbms_output.put_line('員工名:'||sp_record.name); --顯示定義emp_record_type類型中 name的值;
    end;
    end;
    ----------------
    復(fù)合類型--pl/sql表
     相當(dāng)于高級(jí)語言中的數(shù)組。但是需要注意的是在高級(jí)語言中數(shù)組的下標(biāo)不能為負(fù)數(shù),而pl/sql是可以為負(fù)數(shù)的,并且表元素的下標(biāo)沒有限制。實(shí)例如下:
    declare
    --定義了一個(gè)pl/sql表類型sp_table_type,該類型是用于存放emp.ename%type類型的數(shù)組
    --index by binary_integer標(biāo)識(shí)下標(biāo)是整數(shù)
    type sp_table_type is table of emp.ename%type index by binary_integer;
    --定義了一個(gè)sp_table變量,變量類型是sp_table_type
    sp_table sp_table_type;
    begin
    --把查詢出來的ename放到 table(0)下標(biāo)為0的數(shù)據(jù)
    select ename into sp_table(0) from emp where empno=7788;
    dbms_output.put_lin('員工名:'||sp_table(0)); --要和存放下標(biāo)一樣
    end;
    說明:
    sp_table_type  是pl/sql表類型
    emp.ename%type 指定了表的元素的類型和長(zhǎng)度
    sp_table       為pl/sql表變量
    sp_table(0)    表示下標(biāo)為0的
    ---------------
    參照變量
    參照變量是指用于存放數(shù)值指針的變量。通過使用參照變量,可以使用得應(yīng)用程序共享相同對(duì)象,從而降低占用的空間。在編寫pl/sql程序時(shí),可以使用游標(biāo)變量和對(duì)象類型變量?jī)煞N參照變量類型
    游標(biāo)變量用的最多
    -----------
    參照變量---游標(biāo)變量
    使用游標(biāo)時(shí),當(dāng)定義游標(biāo)時(shí)不需要指定相應(yīng)的select語句,但是當(dāng)使用游標(biāo)時(shí)需要指定select語句,這樣一個(gè)游標(biāo)就與一個(gè)select語句結(jié)合了。
    如下
    1.請(qǐng)使用pl/sql編寫一個(gè)塊,可以輸入部門號(hào),并顯示該部門所有員工姓名和他的工資。
    declare
     --定義游標(biāo)類型
     type sp_emp_cursor is ref cursor;
     --定義一個(gè)游標(biāo)變量
     test_cursor sp_emp_cursor;
     --定義變量
     v_ename emp。ename%type;
     v_sal emp。sal%type;
    begin
    --執(zhí)行
    --打開一個(gè)游標(biāo)test_cursor和一個(gè)select結(jié)合
    open test_cursor for select ename,sal from emp where deptno=&no;
    --循環(huán)取出
    loop
     --fetch就是取出。取出test_cursor中的數(shù)據(jù)放到 v_ename,v_sal里面去;
     fetch test_cursor into v_ename,v_sal;
     --判斷是否test_cursor為空
     exit when test_cursor%notfound;
     dbms_output.put_line('名字:'||v_ename||'工資:'||v_sal);
    end loop;
    end;


    2.在1。基礎(chǔ)上,如果某個(gè)員工的工資低于200元,就增加100元。
    declare
     --定義游標(biāo)類型
     type sp_emp_cursor is ref cursor;
     --定義一個(gè)游標(biāo)變量
     test_cursor sp_emp_cursor;
     --定義變量
     v_ename emp。ename%type;
     v_sal emp。sal%type;
    begin
    --執(zhí)行
    --打開一個(gè)游標(biāo)test_cursor和一個(gè)select結(jié)合
    open test_cursor for select ename,sal from emp where deptno=&no;

    --循環(huán)取出
    loop
     --fetch就是取出。取出test_cursor中的數(shù)據(jù)放到 v_ename,v_sal里面去;
     fetch test_cursor into v_ename,v_sal;
     if v_sal<200 then
     update emp set sal=sal+100 where ename=v_ename;
     end if;
     --判斷是否test_cursor為空
     exit when test_cursor%notfound;
     dbms_output.put_line('名字:'||v_ename||'工資:'||v_sal);
    end loop;
    end;

     

     

    ----------
    條件分支語句
    if--then,
    if--then--else,
    if--then--elsif--else

    ----
    循環(huán)語句
    loop --end loop;至少會(huì)執(zhí)行一次。
    create or replace procedure sp_pro6() is
    --定義賦值
    v_num number:=1;
    begin
    loop
     insert into users1 values(v_num,spName);
     --判斷是否要退出循環(huán)
     exit when v_num=10;
     --自增
     v_num:=v_num+1;
    end loop;
    end;


    -------------
    循環(huán)語句-while先判斷后執(zhí)行
    create or replace procedure sp_pro6() is
    --定義賦值
    v_num number:=11;
    begin
    while v_num<=20 loop
     insert into users1 values(v_num,spName);
     v_num:=v_num+1;
    end loop;
    end;
    ------------------
    循環(huán)語句--for循環(huán)(不建議)
    begin
     for i in reverse 1。。10 loop
     insert into users1 values(i,'aaa');
     end loop;
    end;
    -------
    循環(huán)語句--goto,null循環(huán)(不建議)
    declare
     i int:=1;
    begin
     loop
     dbms_output.put_line('輸出i='||i);
     if i=10 then
     goto end_loop;
     end if;
     i:=i+1;
     end loop;
     <<end_loop>>  --到i到10后直接跳到該標(biāo)記
    dbms_output.put_line('循環(huán)結(jié)束');
    end;
    ---------------------------
    無返回值的存儲(chǔ)過程(有輸入?yún)?shù))
     
    create table book(
     bookId number;
     bookName varchar2(100);
     publishHouse varchar2(50);
    );
    --編寫過程
    --in表示這是一個(gè)輸入?yún)?shù),不寫默認(rèn)是in
    --out 表示一個(gè)輸出參數(shù)
    create or replace procedure sp_pro7(spBookId in number,spbookName in varchar2,sppublishHouse in varchar2) is
    begin
     insert into book values(spBookId,spbookName,sppublishHouse);
    end;

    ---------------
    有返回值的存儲(chǔ)過程(有輸入和輸出參數(shù))

    create or replace procedure sp_pro8(ename in number,spName out varchar2) is
    begin
     --spName自動(dòng)返回 因?yàn)樗莖ut
     select ename into spName from emp where empno=spno;
    end;
    ----------------
    有返回值是集合數(shù)組的存儲(chǔ)過程(有輸入和輸出參數(shù))
    1.建立一個(gè)包
    --創(chuàng)建包 里面定義一個(gè)游標(biāo)類型;
    create or replace package testpackage as
    type test_cursor is ref cursor;
    end testpackage;
    2.建立存儲(chǔ)過程。
    create or replace procedure sp_pro8(spNo in number,p_cursor out testpackage.test_cursor) is
    begin
     --spName自動(dòng)返回 因?yàn)樗莖ut
     open p_cursor for select * from emp where deptno=spNo;
    end;

    ------------
    oracle的分頁  rn是別名
    select t1.*,rownum rn from(select * from emp) t1;//多加一個(gè)列記錄個(gè)數(shù)
    select t1.*,rownum rn from(select * from emp) t1 where rownum<10;
    select * from (select t1.*,rownum rn from(select * from emp) t1 where rownum<10) where rn>=6;

    編寫oracle的分頁
    --建立一個(gè)包
    create or replace package testpackage as
    type test_cursor is ref cursor;
    end testpackage;
    --建立存儲(chǔ)過程
    create or replace procedure fenye
    (tableName in varchar2,
    pageSize in number, --一頁顯示幾條記錄
    pageNow in number,  --顯示哪一頁
    myrows out number, --總記錄數(shù)
    myPageCount out number,--總頁數(shù)
    p_cursor out testpackage.test_cursor --返回的記錄集
    ) is
    --定義部分
    --定義sql語句 字符串
    v_sql varchar2(1000);
    --定義兩個(gè)整數(shù)
    v_begin number:=(pageNow-1)*pageSize+1;
    v_end number:=pageNow*pageSize;
    begin
    --執(zhí)行部分
    v_sql:='select * from (select t1.*,rownum rn from(select * from '||tableName||') t1 where rownum<10'||?||') where rn>='||?||';';
    --把游標(biāo)和sql語句關(guān)聯(lián)起來
    open p_cursor for v_sql;

    --計(jì)算myrows
    v_sql:='select count(*) from '||tableName||'';
    --執(zhí)行sql,并把返回值,賦值給myrows;
    execute immediate v_sql int myrows;
    --計(jì)算myPagecount
    if mod(myrows,pageSize)=0 then --mod()取余數(shù)
    myPageCount:=myrows/pageSize;
    else
    myPageCount:=myrows/pagesize+1;
    end if;

    --關(guān)閉游標(biāo)
    --close p_cursor;
    end;


    ------------------------
    例外的分類
    1.預(yù)定義例外用于處理常見的oracle錯(cuò)誤
    2.非預(yù)定義例外用于處理預(yù)定義例外不能處理的例外  6.53
    3.自定義例外用于處理與oracle錯(cuò)誤無關(guān)的其他情況

     

     


    ------------------------------------------------
    -----------------------------------------------
    -------JAVA中-調(diào)用無返回值的存儲(chǔ)過程-----------------
    try{
     Class.forName();
     Connection ct=DriverManager.getConnerction();
     //調(diào)用無返回值存儲(chǔ)過程
     CallableStatement cs=ct.prepareCall("{call 存儲(chǔ)過程名稱(?,?,?)}") // ?代表存儲(chǔ)過程參數(shù)
     cs.setIn(1,10);
     cs.setString(2,'java調(diào)用存儲(chǔ)過程');
     cs.setString(3,'人民出版社');
     //執(zhí)行
     cs.execute();
     
    }catch(Exception e)
    {
     e.printStackTrace();
    }finally{
     cs.close();
     ct.close();
    }

    ------------------------------------------------
    -----------------------------------------------
    ------JAVA中--調(diào)用有回值的存儲(chǔ)過程-----------------
    try{
     Class.forName();
     Connection ct=DriverManager.getConnerction();
     //調(diào)用有返回值存儲(chǔ)過程
     CallableStatement cs=ct.prepareCall("{call 存儲(chǔ)過程名稱(?,?)}") // ?代表存儲(chǔ)過程參數(shù) 第一是輸入,第二是輸出
     //第一個(gè)?輸入?yún)?shù)
     cs.setIn(1,10);
     //給第二個(gè)?輸出值賦值
     cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR); //
     //執(zhí)行
     cs.execute();
     //取出返回值,
     String name=cs。getString(2);
     System.out。println("名稱是:"+name);
    }catch(Exception e)
    {
     e.printStackTrace();
    }finally{
     cs.close();
     ct.close();
    }

    ------------------------------------------------
    -----------------------------------------------
    -------JAVA中-調(diào)用有回值是多個(gè) 數(shù)組2011-12-5的存儲(chǔ)過程-----------------
    try{
     Class.forName();
     Connection ct=DriverManager.getConnerction();
     //調(diào)用有返回值存儲(chǔ)過程
     CallableStatement cs=ct.prepareCall("{call 存儲(chǔ)過程名稱(?,?)}") // ?代表存儲(chǔ)過程參數(shù) 第一是輸入,第二是輸出
     //第一個(gè)?輸入?yún)?shù)
     cs.setIn(1,10);
     //給第二個(gè)?輸出值賦值
     cs.registerOutParameter(2,oracle.jdbc.OracleTypes.cursor); //類型是cursor游標(biāo)
     //執(zhí)行
     cs.execute();
     //取出返回值(結(jié)果集)
     ReaultSet rs=(ResultSet)cs.getObject(2); //2是第二?
     while(rs.next())
     {
      int =rs。getInt(1);
      String name=rs。getString(2);
      System.out。println("名稱是:"+name);
     
     }

    }catch(Exception e)
    {
     e.printStackTrace();
    }finally{
     cs.close();
     ct.close();
    }
    ------------------------------------------------
    -----------------------------------------------
    ------JAVA中--調(diào)用有回值的存儲(chǔ)過程-----------------
    try{
     Class.forName();
     Connection ct=DriverManager.getConnerction();
     //調(diào)用有返回值存儲(chǔ)過程
     CallableStatement cs=ct.prepareCall("{call 存儲(chǔ)過程名稱(?,?)}") // ?代表存儲(chǔ)過程參數(shù) 第一是輸入,第二是輸出
     //第一個(gè)?輸入?yún)?shù)
     cs.setIn(1,10);
     //給第二個(gè)?輸出值賦值
     cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR); //
     //執(zhí)行
     cs.execute();
     //取出返回值,
     String name=cs。getString(2);
     System.out。println("名稱是:"+name);
    }catch(Exception e)
    {
     e.printStackTrace();
    }finally{
     cs.close();
     ct.close();
    }

    ------------------------------------------------
    -----------------------------------------------
    -------JAVA中-測(cè)試分頁調(diào)用存儲(chǔ)過程-----------------
    try{
     Class.forName();
     Connection ct=DriverManager.getConnerction();
     //調(diào)用有返回值存儲(chǔ)過程
     CallableStatement cs=ct.prepareCall("{call 分頁存儲(chǔ)過程名稱(?,?,?,?,?,?)}") // ?代表存儲(chǔ)過程參數(shù) 第一是輸入,第二是輸出
     //?輸入?yún)?shù)
     cs.setString(1,'表名'); //表名
     cs.setInt(2,5); //一頁顯示幾條記錄
     cs.setInt(3,1); //顯示第幾頁
     //?輸出參數(shù)
     //注冊(cè)總記錄數(shù)
     cs.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER);
     //注冊(cè)總頁數(shù)
     cs.registerOutParameter(4,oracle.jdbc.OracleTypes.INTEGER);
     //注冊(cè)返回的結(jié)果集
     cs.registerOutParameter(4,oracle.jdbc.OracleTypes.CURSOR); //類型是cursor游標(biāo)

     
     //執(zhí)行
     cs.execute();
     //取出總記錄數(shù)
     int rowNum=cs.getInt(4);//4表示參數(shù)中第四個(gè)?
     //總頁數(shù)
     int pageCount=cs.getInt(5);
     //返回的記錄結(jié)果
     ReaultSet rs=(ResultSet)cs.getObject(6);
     while(rs.next())
     {
      int =rs。getInt(1);
      String name=rs。getString(2);
      System.out。println("名稱是:"+name);
     
     }

    }catch(Exception e)
    {
     e.printStackTrace();
    }finally{
     cs.close();
     ct.close();
    }

    A . 嵌套表

    1. 聲明數(shù)組類型
           create or replace type tab_array is table of varchar2(38);暫時(shí)不要在包中聲明該類型

    2. 創(chuàng)建存儲(chǔ)過程
             -- 該例子存儲(chǔ)過程是在包中創(chuàng)建的,包名 arraydemo
             procedure testArray(resNumber in tab_array,procResult out tab_array) is
             begin
                 procResult := new tab_array();
                 for i in 1..resNumber.Count loop
                    procResult.EXTEND;
                    procResult(i) := resNumber(i) || 'lucifer' || i;
                 end loop;
             end;

    3. Java調(diào)用代碼
        //必須使用Oracle的連接和Statement,使用了連接池的必須通過一些方法獲取原始的連接
        OracleConnection conn = null;
        OracleCallableStatement stmt = null;
        String[] param = { "1001", "1002", "1006" };
        stmt =(轉(zhuǎn)換類型) conn.prepareCall("{call arraydemo.testArray(?,?)}");
        // 類型名必須大寫
        ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("TAB_ARRAY", conn);
        stmt.setARRAY(1, new ARRAY(descriptor,conn,param));
        stmt.registerOutParameter(2, OracleTypes.ARRAY, "TAB_ARRAY");
        stmt.execute();
      
        ARRAY array = stmt.getARRAY(2);
        Datum[] data = array.getOracleArray();
        for (int i = 0; i < data.length; i++) {
            System.out.println(i + " : " + new String(data.shareBytes()));
        }
    4 . 注意的問題及尚未解決的問題
        拋出:Non supported character set: oracle-character-set-852 異常---解決:添加 nls_charset12.jar 到classpath,該包在oracle/ora92/jdbc/lib目錄下
        待解決問題:
        a) 如何調(diào)用在包聲明的自定義類型
        b) 比較不同聲明類型的優(yōu)缺點(diǎn),及使用場(chǎng)合
        嵌套表其它應(yīng)用:http://zhouwf0726.itpub.net/post/9689/212253

    B . 索引表
    C . 內(nèi)置數(shù)組
    D . 游標(biāo)方式

    posted @ 2012-11-15 11:28 youngturk 閱讀(852) | 評(píng)論 (0)編輯 收藏

    FCKEditor2.6.3配合Java的使用步驟 (后臺(tái)文本編輯器)

    FCKEditor是一個(gè)很好的用于Web頁面中的格式化文本編譯控件。現(xiàn)在越來越多的論壇的發(fā)帖頁面中更多的使用了這個(gè)控件,我們這里將如何在基于Java的web開發(fā)中使用FCKEditor控件的步驟提供給大家,為的是讓更多的java開發(fā)者花費(fèi)更少的時(shí)間去做重復(fù)勞動(dòng)。

    首先去下載FCKEditor2.6.3(當(dāng)然本文編寫的時(shí)候,這個(gè)是最新版本,也許你現(xiàn)在看到的已經(jīng)是更新的版本了,那么可能某些配置辦法已經(jīng)變化了,本文也將跟進(jìn)以保持最新動(dòng)態(tài),相反如果你使用的舊版本的控件,其配置和使用方法也有所區(qū)別),下載地址:http://www.fckeditor.net/download,我們需要下載兩個(gè)文件
     
    第一是FCKeditor_2.6.3.zip,就是FCKEditor的控件;

    第二是FCKeditor.Java(fckeditor-java-2.4.1-bin.zip),就是在Java代碼中使用FCKEditor的相關(guān)工具類;

    有了這兩個(gè)文件,使用FCKEditor的基礎(chǔ)就具備了,接下來我們要做兩件事情,一件事情就是要把FCKEditor控件放到web項(xiàng)目中,這個(gè)控件是用于網(wǎng)頁的,所以其代碼是使用JavaScript腳本編寫的,需要和web網(wǎng)頁一起被下載的瀏覽器上才能執(zhí)行,第二件事情就是這個(gè)網(wǎng)頁上的控件因?yàn)橹С謭D片的上傳與下載,所以在上傳與下載的時(shí)候需要服務(wù)端的支持,那么我們我的java服務(wù)端如何支持這個(gè)控件的工作呢?FCKEditor自身提供了相關(guān)的java工具,就是我們下載的第二個(gè)文件。因此我們要做的第二件事情就是在服務(wù)端配置java工具,使得FCKEditor控件在處理上傳圖片時(shí)能夠正確工作。

    接下來我們就開始對(duì)配置FCKEditor控件進(jìn)行兩項(xiàng)工作:

    第一:解壓縮FCKeditor_2.6.3.zip,在其中我們能找到一個(gè)文件夾叫fckeditor,那么將這個(gè)文件夾整個(gè)復(fù)制到你的web應(yīng)用的根目錄下,就是存放jsp頁面的地方。

    第二:解壓縮fckeditor-java-2.4.1-bin.zip,將這樣幾個(gè)jar文件復(fù)制到web應(yīng)用的WEB-INF\lib目錄中(commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,java-core-2.4.1.jar,slf4j-api-1.5.2.jar,slf4j-simple-1.5.2.jar),其中最后一個(gè)文件在這個(gè)zip包中可能不存在,那么你可以去這個(gè)鏈接地址下載一個(gè)文件叫fckeditor-java-2.4.1-bin.zip (下載地址:http://sourceforge.net/project/showfiles.php?group_id=75348&package_id=129511),在這個(gè)war文件中的lib中存在上述的5個(gè)jar文件,其實(shí)在war中也包含了FCKEditor控件的內(nèi)容,也就是說如果你只是下載了war也可以了。然后在classpath目錄中創(chuàng)建一個(gè)名叫為fckeditor.properties的文件,文件中放置一行內(nèi)容為:connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl,

    在web.xml中添加一個(gè)Servlet的配置,配置內(nèi)容如下:

    <servlet>
    <servlet>
    <servlet-name>Connector</servlet-name>
    <servlet-class>net.fckeditor.connector.ConnectorServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
    <servlet-name>Connector</servlet-name>
    <url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>
    </servlet-mapping>

    好了,現(xiàn)在你已經(jīng)完成了配置的過程,接下來我們需要在jsp中使用FCKEditor控件了,在需要使用這個(gè)控件的jsp文件的開頭添加標(biāo)簽庫的引入語句:<%@ taglib uri="http://java.fckeditor.net" prefix="FCK" %>,在使用控件進(jìn)行文本格式化輸入的地方(原來你可能使用的textarea標(biāo)簽)使用如下的內(nèi)容來替換原來的輸入控件:

    <FCK:editor instanceName="EditorDefault">

    控件中要顯示的初始內(nèi)容

    </FCK:editor>

    其中instanceName屬性的值就相當(dāng)于form表單中的input的name值。就是表單提交時(shí)候的鍵值對(duì)中的鍵的名字。

    posted @ 2012-11-13 16:36 youngturk 閱讀(1018) | 評(píng)論 (2)編輯 收藏

    EL表達(dá)式不起作用原因

    web.xml中2.4版本的默認(rèn)導(dǎo)入的standerd.jar,和jstl.jar是使用el表達(dá)式的包是啟動(dòng)的
    而2.5版本的web.xml中默認(rèn)是關(guān)閉的
    所以在2.5的所有jsp中需要啟動(dòng)一下
    用<% page isELIgnored="false"%>

    el表達(dá)式不起作用


            今天用el表達(dá)式,老是得不到后臺(tái)傳過來的值。該導(dǎo)入的jar包和標(biāo)簽庫也都導(dǎo)入了。還是不起作用。后來在網(wǎng)上找到一篇文章。解決了。原來是版本的問題。現(xiàn)在貼一下。


    tomcat5.0的版本, 使用了低版本,只求穩(wěn)定。


    web.xml


    <?xml version="1.0" encoding="ISO-8859-1"?>


    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"


        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"


        version="2.4">


    2.4版本默認(rèn)啟用el表達(dá)式,如果使用2.5版本,默認(rèn)el表達(dá)式是關(guān)閉的


    <?xml version="1.0" encoding="UTF-8"?>


    <web-app xmlns="http://java.sun.com/xml/ns/javaee" 


        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" 


        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   


        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


    那么對(duì)應(yīng)2.5的web.xml -->  jsp頁面里應(yīng)該增加<%@ page isELIgnored="false"%>


    一句話,凡是部署描述文件遵循Servlet2.4規(guī)范的WEB應(yīng)用,EL表達(dá)式的計(jì)算默認(rèn)是啟用的,而未遵循的,則EL表達(dá)式的計(jì)算默認(rèn)是禁用的。


    所以解決方案還可以是:將web.xml中的DTD(文檔類型定義)改問2.4的版本


    我用的是在公共頁中加入<%@ page isELIgnored="false"%>,然后每個(gè)頁面引入公共頁。問題解決了。

    posted @ 2012-11-13 11:04 youngturk 閱讀(4447) | 評(píng)論 (1)編輯 收藏

    關(guān)于EL表達(dá)式中requestScope和param區(qū)別

    今天演示EL表達(dá)式的時(shí)候發(fā)現(xiàn)自己jsp的基礎(chǔ)實(shí)在是薄弱,在這個(gè)很簡(jiǎn)單的問題上迷惑了很久。

    首先在看遇到的問題:

    在瀏覽器地址輸入,表示傳入一個(gè)參數(shù)test,值為123

    http://localhost:8888/Test/index.jsp?test=123


    在index.jsp中嘗試使用EL表達(dá)式取出,代碼如下:

     <body>
    ${test}
    </body>

    發(fā)現(xiàn)毫無結(jié)果,再使用requestScope嘗試取出:

      <body>
    ${requestScope.test}
    </body>

    發(fā)現(xiàn)還是毫無結(jié)果,感到非常詫異,遂干脆使用java腳本嘗試取出。

      <body>
    <%request.getAttribute("test"); %>
    </body>


    依然無解。

    之后發(fā)現(xiàn),若使用已下代碼向request作用域賦值,則用上面代碼可以取出

    <%
    request.setAttribute(
    "test", "123");
    %>

     


    查詢資料后發(fā)現(xiàn),使用以下代碼可以取出之前的請(qǐng)求參數(shù):
    EL:

      <body>
    ${param.test}
    </body>

    JAVA腳本:

      <body>
    <%=request.getParameter("test") %>
    </body>

    結(jié)論就是:${param.name} 等價(jià)于 request.getParamter("name"),這兩種方法一般用于服務(wù)器從頁面或者客戶端獲取的內(nèi)容。

         ${requestScope.name} 等價(jià)于 request.getAttribute("name"),一般是從服務(wù)器傳遞結(jié)果到頁面,在頁面中取出服務(wù)器保存的值。

     

    參考資料:

    el表達(dá)式中的${param}

    http://topic.csdn.net/u/20090103/15/779af9b8-c3a7-4f3e-82fe-b08bf2630996.html

    posted @ 2012-11-12 15:30 youngturk 閱讀(345) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共33頁: First 上一頁 5 6 7 8 9 10 11 12 13 下一頁 Last 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    this year :
    1 jQuery
    2 freemarker
    3 框架結(jié)構(gòu)
    4 口語英語

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊(cè)

    EJB學(xué)習(xí)

    Flex學(xué)習(xí)

    learn English

    oracle

    spring MVC web service

    SQL

    Struts

    生活保健

    解析文件

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 精品视频在线免费观看| 91久久精品国产免费一区| 亚洲国产精品免费观看| 免费看小12萝裸体视频国产| 久久精品国产精品亚洲精品| 日韩亚洲不卡在线视频中文字幕在线观看| 羞羞漫画登录页面免费| 97青青草原国产免费观看| 国产一级做a爱免费视频| 亚洲综合在线观看视频| 国产成人亚洲毛片| 在线免费观看你懂的| 亚洲高清免费视频| 亚洲一区二区三区在线 | 男的把j放进女人下面视频免费| 久久久久免费看黄A片APP| 亚洲免费观看视频| 亚洲精品成a人在线观看☆ | 免费国产叼嘿视频大全网站| 噜噜嘿在线视频免费观看| 亚洲AV无码第一区二区三区 | av成人免费电影| 成人黄页网站免费观看大全| 久久精品亚洲综合| 麻豆va在线精品免费播放| 免费在线看v网址| 亚洲人成色77777| 美女视频黄频a免费观看| 91网站免费观看| 亚洲成av人在线视| 爱情岛论坛免费视频| 免费精品国产自产拍在| 亚洲国产成人高清在线观看 | 亚洲福利在线观看| 四虎影视永久在线精品免费| 24小时免费直播在线观看| 亚洲2022国产成人精品无码区| 人成电影网在线观看免费| 韩国欧洲一级毛片免费| 91嫩草亚洲精品| 麻豆成人久久精品二区三区免费|