閑來沒事,新建了HSS的工程,結果一直報錯。找了N久,終于找到原因了。
第一:用MyEclipse建立工程的時候選擇Sping1.2,hibernate3(注意不能選擇3.1),Struts1.1
第二:在action中實例化DAO接口時,需要使用this指向該接口。
最近看到資料,對建表有了進一步認識,原來建表還可以這樣建立。寫下來,做個記錄。
CREATE TABLE payroll
( employee_id INT NOT NULL
, base_salary DOUBLE
, bonus DOUBLE
, commission DOUBLE
, total_pay DOUBLE GENERATED ALWAYS AS
??????????? (base_salary*(1+bonus) + commission)
)INSERT INTO payroll VALUES (1, 100, 0.1, 20, DEFAULT);
或者
INSERT INTO payroll (employee_id, base_salary, bonus, commission)
VALUES (1, 100, 0.1, 20);
這樣就是建表的時候加入了計算了。省好多事情。很方便。
復雜的如下:
CREATE TABLE payroll2
( employee_id INT NOT NULL
, employee_type CHAR(1) NOT NULL
, base_salary DOUBLE
, bonus DOUBLE
, commission DOUBLE
, total_pay DOUBLE GENERATED ALWAYS AS
( CASE employee_type
WHEN 'B' THEN base_salary*(1+bonus)
WHEN 'C' THEN (base_salary + commission)
ELSE 0
END
)
)
這樣對數據操作很方便。也很有實用價值。
????? 首先,打開DB2開發中心,新建項目后,連接上指定的數據庫。右鍵點擊新建存儲過程,可以直接新建,也可以使用向導建立。建好后就如下所視:
CREATE PROCEDURE ERPT1104.PROCEDURE1 (? )
------------------------------------------------------------------------
-- SQL 存儲過程
------------------------------------------------------------------------
P1: BEGIN
END P1??????
??????? 這樣就是建立好了一個存儲過程。其中
ERPT1104.PROCEDURE1 中‘ERPT1104’為數據庫模式名,PROCEDURE1 為存儲過程名稱,可以自行修改。(? )這里面為參數,如果需要傳入參數或者傳出參數,就需要寫了,格式為:In?a varchar(32) ,Out b varchar(32),InOut c varchar(32)此處In,Out,InOut為參數模式。a,b,c為參數名稱,varchar(32)為參數類型。
??????? 然后我們可以開始寫具體的內容了。當然是在BEGIN下面開始寫了。
一般來說,都是先定義變量。先講簡單的查詢。
declare m varchar(32);
select name into m from custom where?id=a;
這個意思就是定義個變量m,根據id值從custom表中查出name值賦給變量m,此處的a是從外面傳過來的參數值。注意,此處查到的數據僅一條時在這樣使用。如果是多條,就需要使用游標了,那在下節在說。本節不考慮。
這樣,我們得到了變量m的值,如果我們想自己定義變量的值,那就可以:
set m='jiao';
如果我們想執行insert,update。
那就象SQL一樣寫就可以了。比如:
insert into custom?values(m);
update custom set name=m where id=a;
如果用戶想進行大量的數據計算,可以自行體驗下,基本方法就是這樣。
當然還有簡單判斷了,下面我們來說IF,WHILE的用法
語言都學過不少了,這里就講下在DB2下是什么格式的:
if a='0' then
select * from custom;
else
select name from custom;
end if;
while a='0'?do
select * from custom;
end while;
注意使用while一定不能進入死循環中。條件一定要寫對。
到次,你應該會進行一般的操作了。
??