| 发表于:2007-03-04 12:50:23 楼主 |
本人是个struts初学者,对struts的掌握还是分有限,有个关于更新数据库的问题想请教大家一下。 我刚开始接触struts的时候做过一个项目,其中只要出现更新数据库的部分我们公司的架构师就让我们把这条记录删除,在查入。说白了,如果那条纪录需要修改,就把这条记录给删了,再用insert插入到数据库中。当时我还很迷惑,经过一段时间的学习终于明白什么了。 举个例子 表table,只有两个字段,name和sex name sex a1 1 修改 a2 1 修改 (图1) 首先经过select,查询出表里的内容,a1,a2都是用 <html:text> 显示出来的,sex是用 <html:select> 显示出来的,直接就可以在页面进行修改,点击修改后提交到后台action进行操作。 假设把a1的名字换成aa,sex改为2,在jsp页面修改完数据后,需要在action里执行sql, updata table set name= 'a3 ',sex=2 where name= 'a1 ' and sex=1 然而如何在view(也就是jsp)确定要修改那条数据呢?就需要这条记录的原始值,也就是(name= 'a1 ' sex=1)这条记录,点击submit后,之也需要把这条记录的原始传到form里,修改后的数据(name= 'a3 ',sex=2 )是从jsp里传到form里的,而where语句里的参数(name= 'a1 ' sex=1)也是从jsp里到action里的,也就是说,修改一条记录,需要原始值和更新后的值4个参数,而 <html:text> 和 <html:select> 里的property只能把修改后的值传递过去,原始值如何传递呢? 这就是困扰我的最大的问题,可能也是让我们先删除再插入最根本的原因吧。大家有什么好办法吗?我想出一个办法,不知可行否。 就是在jsp里把原始值值设置到session,然后在action里再取出来,拼到sql里。这种方法我没有具体的实验过,只是一个简单的构思。难道struts中更新数据库比insert,select麻烦这么多吗?希望大家帮助。 我文笔不好,不知道大家看明白没有。 |
|
|
|
|