❶ 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干啥?