導航:首頁 > 編程語言 > java調用觸發器

java調用觸發器

發布時間:2022-09-10 11:23:38

java 不能調用sql的觸發器

觸發器不是直接調用的,而是DB伺服器根據事件觸發的。

❷ 如何用java創建觸發器

java是應用程序,可以通過jdbc介面調用觸發器:
create or replace trigger bj_customer
before update on customer
for each row
begin
update order set
cu_no=:new.cu_no,
cu_name=:new.cu_name,
cu_address=:new.cu_addess,
where cu_no=:old.cu_no;
end;

調用executeUpdate方法即可

❸ 關於mysql中的觸發器能調用JAVA嗎的搜索推薦

肯定不可以,mysql不能調用java代碼,但是可以在java中創建觸發器

1.使用SQL創建觸發器

DELIMITER$$CREATETRIGGER`catefiles_trigger`AFTERINSERTON`catefiles`FOREACHROWbegin
declarenum1int;setnum1=(selectnumfromest_client_catescan_statuswherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId);if(num1>=0)thenupdatecatescan_statussetnum=num1+1wherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId;elseinsertcatescan_status(cateid,num,status,taskid,clientid)values(new.cateId,1,0,new.taskid,new.clientId);endif;end$$

2.在Java程序里創建觸發器

Stringsql=+"CREATETRIGGERcatefiles_"
+"begin"
+"declarescannumint;"
+"setscannum=(selectnumfromest_client_catescan_statuswhere"
+"cateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId);"
+"if(scannum>=0)then"
+"updatecatescan_statussetnum=scannum+1wherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId;"
+"else"
+"insertcatescan_status(cateid,num,status,taskid,clientid)values(new.cateId,1,0,new.taskid,new.clientId);"
+"endif;"
+"end";
Connectioncon=DbConnectionManager.getConnection();
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.execute();

3.可以看出區別:在java中創建觸發器,不需要限定符DELIMITER ,加上的話執行過程中會報MySQL語法錯誤

❹ java如何調用MySQL的觸發器

觸發器顧名思意就是在某個動作執行時自動觸發執行的,不用調用,比如你是在add和delete數據時加觸發器,只要你定義的對,資料庫在向你指定的那張表add和delete數據時,該觸發器就會自動觸發

❺ 在java里怎麼觸發sqlserver2000中的觸發器啊

觸發器是與表及操作相關的。

比如是 A表的INSERT動作時觸發。
那麼你調用INSERT語句時,觸 發器就動作了。不用寫監聽。

❻ java開發時觸發器有什麼作用,什麼開發場景時會用到

比如說你emp和dept兩張表是有外鍵關聯的,當emp存在相關數據時,dept無法刪除數據,這時候就可以寫個觸發器,讓他可以刪除的同時並對emp表的依賴數據發生變化

❼ 著急!Java怎樣調用存諸過程和觸發器

其實跟普通的JDBC使用方法是一樣的。只不過是用的類不同。給你個例子看看吧。其中的call set_death_age(?, ?)就是存儲過程名,變數同樣用佔位符?代替。
try{
int age = 39;
String poetName = "dylan thomas";
CallableStatement proc = connection.prepareCall("{ call set_death_age(?, ?) }");
proc.setString(1, poetName);
proc.setInt(2, age);
cs.execute(); }
catch (SQLException e){e.printStackTrace();}

❽ oracle觸發器調用一個Java類

把JAVA程序LOAD進oracle

在$ORACLE_HOME/bin目錄下有個LOADJAVA命令,使用這個命令將剛寫好的JAVA程序LOAD進資料庫。

loadjava -user test/test@test -o -v -f -r Main.java

如果成功的話,會列印出來信息提示成功,若程序有編譯錯誤的話,也會提示你錯誤的地方。

3。修改許可權

因為我的這個JAVA程序里涉及到對文件的讀寫操作,所以要先修改許可權。

首先以管理員身份登錄進資料庫

sqlplus / as sysdba

然後執行

begin

dbms_java.grant_permission('TEST','SYS:java.io.FilePermission','/var/spool/cron/oracle','read,write,execute,delete');

end;

/

執行完畢後,在資料庫里執行上述JAVA程序時,就擁有讀寫該文件的許可權了。

4。創建存儲過程

進入到資料庫,我是在SQLPLUS命令行

create or replace procere Modify(name varchar2) as language java name 'Main.modify(java.lang.String)';

/

會提示創建存儲過程成功。

5。增加trigger

我是在TOAD里直接針對某個表增加trigger,所以我只寫出關鍵部分的代碼

begin

if :old.name = 'time' then

Modify(:new.value);

end if;

end;

至此,在ORACLE的trigger里調用JAVA程序就完成了,後來的實驗證明,每當更新這個表時,都確實執行了該JAVA程序,完成了對文件的讀寫。

❾ 我寫了一個觸發器,請問在Java里怎樣調用

資料庫的觸發器嗎?如果是的話,在你對相應數據表進行增改刪操作時,會根據條件來觸發的

❿ 在oracle或者db2中寫一個觸發器來調試java程序,並且壓力性能,完大蝦們給予賜教

觸發器(trigger)是個特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由事件來觸發,比如當對一個表進行操作( insert,delete, update)時就會激活它執行。觸發器經常用於加強數據的完整性約束和業務規則等。 觸發器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數據字典中查到。

至於你想在觸發器里調試java程序。 我覺得很奇怪~~~~~
如果oracle的觸發器都用來調試java程序,那要 eclipse幹啥?

閱讀全文

與java調用觸發器相關的資料

熱點內容
美食博主用什麼app拍視頻 瀏覽:812
ipone手機如何加密微信 瀏覽:354
自來水加密閥閥帽 瀏覽:431
華為交換機dhcp配置命令 瀏覽:315
androidbitmap縮小 瀏覽:271
單片機串口控制燈 瀏覽:84
大訊雲伺服器安裝視頻 瀏覽:784
華為演算法領先世界 瀏覽:654
linux路由重啟 瀏覽:566
php的模板編程 瀏覽:322
編譯器原理與實現書 瀏覽:709
dos選擇命令 瀏覽:18
apm固件編譯到單片機 瀏覽:121
聯通深藍卡都包含什麼app 瀏覽:266
如何判斷網路伺服器正常 瀏覽:652
路由器搭橋遠端伺服器地址是什麼 瀏覽:518
編譯動態庫時會連接依賴庫嗎 瀏覽:710
淘寶手機加密是隨機的嗎 瀏覽:675
解壓包子怎麼裝飾 瀏覽:588
四個數湊24演算法 瀏覽:679