你可以把这两个操作写在一个Service中,一般一个Action方法中除了使用get/load以外,应该只操作一个Service, 否则就是两个事务了.
要不你也可以自己写一个反射的Action类,每次调用Action自动打开一个和数据库的会话,里面怎么操作不管,当Action返回之后再commit,就可以保证事务的一致性了.
比如我用的是Struts + Hibernate,在Action中的execute中写:
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
ActionForward forward = null;
String methodStr = mapping.getParameter(); // 根据parameter名字的不同, 调用不同的方法
Class[] types = new Class[] { ActionMapping.class, ActionForm.class, HttpServletRequest.class, HttpServletResponse.class, Session.class};
Session session = null; // 声明会话
try {
session = HibernateSessionFactory.getSession();
session.beginTransaction();
Object[] params = new Object[] { mapping, form, request, response, session }; // 向Action方法中传递和数据库的会话, 这个会话可以保证事务的完整性
Method method = this.getClass().getMethod(methodStr, types);
if (method != null) {
forward = (ActionForward) method.invoke(this, params);
session.getTransaction().commit(); // 执行成功, 则提交
}
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback(); // 出现错误就全部回滚
}
return forward;
}
这样Action只要继承这个类, 就可以在自己的方法中获得到一个Session, 用这个session怎么操作数据库, 都可以保证事务的完整性了.
来自:http://zhidao.baidu.com/link?url=xjBH6_YjJxfPu8t2M0OHo21jDY5P0HyFVNYjDT95C3_zY47baZcGHqcv6gwDevX1GZ5Y3p9LZdPNT050Nq3QWa
分享到:
相关推荐
Android 多个service的action 相同冲突 验证demo,对应博客地址是http://blog.csdn.net/czlove110/article/details/50791390
这个问题一般是客户端链接到服务失败,原因有两个客户端连接限制(也就是压力负载机器),一个网络延迟严重,解决办法: 1、修改负载机器注册表中的TcpTimedWaitDelay减小延时和MaxUserPort增加端口数。注:这将增加...
今天反馈过来一个BUG,说一个页面的功能用不了。打开控制台发现报错:object is not a function。 感觉很奇怪,这块的功能最新没动过怎么会突然出问题了呢?上线时主流浏览器都测试过了呀。 虽然奇怪,但是还的解决...
怎样区分Action, Service 和 Dao功能.怎样区分Action, Service 和 Dao功能.
Action,Service和Dao功能
这里包括两个 eclipse 工程, 在一个工程FirstAndroid里调用另一个工程SecondAndroid里的Activity 和 Service,SecondAndroid只能通过别的app 来启动,它自己不能启动,因为它没有 android.intent.action.MAIN这个...
资源中示例了一个struts2的配置文件中配置的action的result结果为另外一个action的配置,该跳转的过程中是带所有参赛调整的,在另外一个action中可以接受到当前action的所有参数,此配置文件是我日常开发中的经验...
利用Struts 2框架创建一个web项目chap2_e22,实现用户登录过程。具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的...
假如我们在写action属性名的时候忘写name属性了或着当我们写配置文件的是时候,配置文件容易报错,呈现灰色,也没有任何的提示。这是因为我们没有为eclipse设置自动提示功能。现在我们以strut2配置文件为例。
解压密码:123 ||Mirillis Action是一个非常有用的工具,可以捕捉和录制Windows桌面的高清视频。 在这个程序的帮助下,用户可以监控屏幕上各种各样的质量视频教程。 这个应用程序能够在任何环境,包括游戏环境,视频...
Spring框架提供了一个容器,该容器可以管理应用程序的组件,还提供了IoC和AoP机制,实现组件之间解耦,提高程序结构的灵活性,增强系统的可维护和可扩展性。 在SSH整合开发中,利用Spring管理Service、DAO等组件,...
一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...
1。实现了action层的调度 2。实现了JDBC的封装 3。实现了简单的事务管理
原始SaveAction插件在idea更新到2023.1版本后会报错无法使用,所以有人修复了,源码放在https://github.com/fishermans/intellij-plugin-save-actions,在根目录调用脚本gradlew.bat build后构建,会在根目录下build...
应用uni-swipe-action组件实现列表项左划操作。 真正做到开箱即用。
struts2一个action处理多个请求
一个Jsp两个ActionForm分别提交.rar一个Jsp两个ActionForm分别提交.rar一个Jsp两个ActionForm分别提交.rar一个Jsp两个ActionForm分别提交.rar一个Jsp两个ActionForm分别提交.rar
我们在开发过程中经常会发生spring注入错误或失败的情况,其实Web服务器端在Action、dao、service包之内是很容易实现的,在这些包之外实现spring注入就不容易了,总是出错,其实根本原因是无法获得相应的spring上...
事务将多个操作紧密联系到一起,这样就能保证有联系的两种操作的一致性、以及数据的完整性。举个简单例子:公司的员工信息管理系统,现在要录入数据,员工信息系统假设只有部门、员工信息两张表,其中员工信息表中有...