當前位置:首頁 » 編程語言 » java觸發器

java觸發器

發布時間: 2022-04-02 14:23:45

Ⅰ 為什麼我在java開發時,很少看到有人寫存儲過程和觸發器,用這些和用代碼實現有什麼區別嗎

因為存儲過程已經因為維護的復雜度、穩定性、資料庫的消耗等原因被大多數公司摒棄了,建議只在少數需要靈活調整sql的簡單的地方用用

Ⅱ 關於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程序哪個更好比較觸發器與java程序處理

到底使用哪種方法更好?個人覺得兩種方法都有可行之處:比如吃魚,從頭開始還是從尾巴開始抑或是從肚子開始?沒有人硬規定從哪裡下口最好。純屬個人習慣、愛好。 不過,從提高效率從發,習慣和愛好的觀點就得靠後站了。舉例: 1、數據表的建立use logincreate table voteMaster -----主表(voteId int primary key, --編號 voteTitle varchar(100) not null, ---投票的項目 voteSum int default 0 --總票數,默認為0)insert into voteMaster values(1,'選舉工會主席',0) insert into voteMaster values(2,'對網站的建議',0)create table voteDetails ---從表(voteId int foreign key references voteMaster(voteId),----外鍵 約束 voteDetailsId int not null, voteItem varchar(20) not null, votNum int default 0, primary key(voteId,voteDetailsId) ----連合主鍵 )insert into voteDetails values(1,1,'於海濤',0) insert into voteDetails values(1,2,'王小剛',0) insert into voteDetails values(1,3,'張老三',0)insert into voteDetails values(2,1,'非常好',0) insert into voteDetails values(2,2,'好',0) insert into voteDetails values(2,3,'一般',0) insert into voteDetails values(2,4,'需要改進',0)2、觸發器的創建create trigger updateMaster -----創建觸發器 on voteDetails -----觸發器所建的表 for update -----觸發器的條件asbeginupdate voteMaster set voteSum=voteSum+1 where voteId=(select top 1 voteid from inserted) end最終效果:你只要對voteDetails 內votNum的數據進行更新,那麼主表voteMaster 的voteSum就會加1,從而實現了對投票的總數的統計的實現。注意: select top 1 voteid from deleted inserted表 deleted表 insert 新插入的行 空 update 資料庫受到影響的行在更新之後的新值 資料庫受到影響的行在更新之前的舊值delete 空 刪除的行 總結:本著提高程序效率著想,能用觸發器的地方,還是盡量用觸發器吧:)

Ⅳ 如何用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方法即可

Ⅳ 請問一下怎麼做一個定時觸發器啊,我想要用java程序中做一個定時觸發器,請各位高手指教,最好有源代碼

final Timer machinetimer = new Timer();
machinetimer.schele(new TimerTask() {
@Override
public void run() {
//定時執行的方法
XXXX();
}
}, 1000, 1000);
第一個 1000 代表系統運行後,這個定時任務多久會執行。
第二個 1000 代表每次執行間隔時間
如果有不懂的可以再來問我

Ⅵ java如何調用MySQL的觸發器

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

Ⅶ 著急!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();}

Ⅷ java里trigger是干什麼用的

Trigger不是java特性也不是java內置的代碼,而是其它程序的封裝。
在Quartz中Trigger是觸發器,Quartz中的觸發器用來告訴調度程序作業什麼時候觸發
即Trigger對象是用來觸發執行Job的

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

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

熱點內容
紅點角標演算法 發布:2025-07-12 12:11:16 瀏覽:844
開心消消樂伺服器繁忙什麼情況 發布:2025-07-12 12:11:14 瀏覽:239
資料庫的封鎖協議 發布:2025-07-12 12:10:35 瀏覽:725
如何配置一台長久耐用的電腦 發布:2025-07-12 11:43:03 瀏覽:602
昆明桃源碼頭 發布:2025-07-12 11:38:45 瀏覽:569
大司馬腳本掛機 發布:2025-07-12 11:38:35 瀏覽:459
資料庫實時監控 發布:2025-07-12 11:31:33 瀏覽:744
vb6反編譯精靈 發布:2025-07-12 11:23:12 瀏覽:998
模擬存儲示波器 發布:2025-07-12 11:10:58 瀏覽:814
怎麼查看安卓真實運行內存 發布:2025-07-12 11:08:39 瀏覽:883