起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5991|回复: 10

[结贴] savaAction执行后事件执行SQL语句

[复制链接]

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
发表于 2014-9-23 16:49:23 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: MS SQLServer 服务器操作系统: 应用服务器:
客户端操作系统: Windows XP 浏览器:
表一:LZHT,表二:CBDKXX,两个表共有字段:LZHTBM.
如图所示:
1.jpg

在LZHT表单中,我已经获取到了流转合同编码,流转合同主键,承包地块主键,
当我点保存后,会将LZHTBM写到LZHT中,然后 想要写一个savaAction的执行后事件,在里面通过“流转合同主键”获取LZHTBM,
然后再将LZHTB通过“承包地块主键”赋值到CBDKXX这个表中,求sql语句写法。
谢谢。。。。。。
发表于 2014-9-23 17:03:43 | 显示全部楼层
两个表有关系就可以了,update一下CBDKXX就可以了啊。update table t set t.status='a' where t.字段 = (select s.字段 from table2 s where s='dd');大概就这样了,搞好两张表关系,写个关联查询设值。
回复 支持 反对

使用道具 举报

45

主题

4492

帖子

3960

积分

论坛元老

Rank: 8Rank: 8

积分
3960
QQ
发表于 2014-9-23 17:10:22 | 显示全部楼层
你可以再单独写个ACTION,在ACTION中写SQL或者 KSQL,更新CBDKXX表;
其中action需求传值 ,然后KSQL或者 SQL进行UPDATE数据即可

ACTION传值参考下面的贴子:2楼
http://bbs.justep.com/thread-37063-1-1.html

论坛中有一个贴子关于 《在saveAction的执行前事件中获得客户新增、修改、删除的数据》,你也可以参考一下,下面贴子,7楼
http://bbs.justep.com/thread-40966-1-1.html

向前进,向前进,我们……
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-9-23 17:25:16 | 显示全部楼层
lanware_smf 发表于 2014-9-23 17:03
两个表有关系就可以了,update一下CBDKXX就可以了啊。update table t set t.status='a' where t.字段 = (s ...

我是在savaAction中写的,不能直接updata吧?在LZHTProcess.java中可以直接写么?
回复 支持 反对

使用道具 举报

发表于 2014-9-23 17:28:30 | 显示全部楼层
ltt 发表于 2014-9-23 17:25
我是在savaAction中写的,不能直接updata吧?在LZHTProcess.java中可以直接写么?

保存的时候调用一个action吧,在action对应的java方法里面写更新语句。
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-9-23 17:29:36 | 显示全部楼层
lanware_smf 发表于 2014-9-23 17:03
两个表有关系就可以了,update一下CBDKXX就可以了啊。update table t set t.status='a' where t.字段 = (s ...

a和s代表什么啊?
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-9-23 17:35:41 | 显示全部楼层
lanware_smf 发表于 2014-9-23 17:03
两个表有关系就可以了,update一下CBDKXX就可以了啊。update table t set t.status='a' where t.字段 = (s ...

update table CBDKXX set CBDKXX.LZHTBM = 'a' where CBDKXX.LZHTBM = (select l.LZHTBM from LZHT l where LZHTZJ='LZHTZJ');
我这么改的  帮忙看一下 谢谢
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-9-23 17:38:00 | 显示全部楼层
lanware_smf 发表于 2014-9-23 17:28
保存的时候调用一个action吧,在action对应的java方法里面写更新语句。

好的 谢谢  求具体
回复 支持 反对

使用道具 举报

发表于 2014-9-23 17:52:26 | 显示全部楼层
ltt 发表于 2014-9-23 17:38
好的 谢谢  求具体

update table CBDKXX set CBDKXX.LZHTBM =(select l.LZHTBM from LZHT l where LZHTZJ='LZHTZJ') where CBDKXX = '需要修改的那一条数据的id';后面的括号里面的要保证是只有一条数据哦。
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-9-24 09:00:49 | 显示全部楼层
lanware_smf 发表于 2014-9-23 17:52
update table CBDKXX set CBDKXX.LZHTBM =(select l.LZHTBM from LZHT l where LZHTZJ='LZHTZJ') where  ...

我在aftersaveaction中代码:
public class LZHTProcess {

        public static void lZHTProcessAfterSaveLZHTAction() {
                update table CBDKXX set CBDKXX.LZHTBM =(select l.LZHTBM from LZHT l where LZHTZJ='LZHTZJ') where CBDKXX = 'CBDKZJ';
        }
}
是不是 不能这样直接上来就SQL语句啊?Java怎么去执行SQL语句呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-24 19:52 , Processed in 0.079992 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表