ActiveRecord支持声明式事务,声明式事务需要使用ActiveRecordPlugin提供的拦截器来实现,拦截器的配置方法见Interceptor有关章节。以下代码是声明式事务示例:
// 本例仅为示例, 并未严格考虑账户状态等业务逻辑@Before(Txclass)
public void trans_demo() {
// 获取转账金额
Integer transAmount = getParaToInt("transAmount");
// 获取转出账户id
Integer fromAccountId = getParaToInt("fromAccountId");
// 获取转入账户id
Integer toAccountId = getParaToInt("toAccountId");
// 转出 *** 作
Dbupdate("update account set cash = cash - where id = ",
transAmount, fromAccountId);
// 转入 *** 作
Dbupdate("update account set cash = cash + where id = ",
transAmount, toAccountId);
}
以上代码中,仅声明了一个Tx拦截器即为action添加了事务支持。除此之外ActiveRecord还配备了TxByActionKeys、TxByActionKeyRegex、TxByMethods、TxByMethodRegex,分别支持actionKeys、actionKey正则、actionMethods、actionMethod正则声明式事务,以下是示例代码:
public void configInterceptor(Interceptors me) {meadd(new TxByMethodRegex("(save|update)"));
meadd(new TxByMethods("save", "update"));
meadd(new TxByActionKeyRegex("/trans"));
meadd(new TxByActionKeys("/tx/save", "/tx/update"));
}
上例中的TxByRegex拦截器可通过传入正则表达式对action进行拦截,当actionKey被正则匹配上将开启事务。TxByActionKeys可以对指定的actionKey进行拦截并开启事务,TxByMethods可以对指定的method进行拦截并开启事务。
注意:MySql数据库表必须设置为InnoDB引擎时才支持事务,MyISAM并不支持事务。
网页链接
通过ajax获取到服务器端返回的数据 你要解析服务器端返回的数据,然后配合上js *** 作html代码,就可以实现异步刷新。
JFinal :
是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。
JFinal将一直坚持以下设计目标:开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在坚持以上设计目标的同时,基于微内核+全方位扩展型架构,打造功能极度全面WEB+ORM开发框架。彻底解放开发者的生产力,彻底改善开发者的开发体验,让软件开发成为一件轻松愉快的事情。
JFinal通过实践逐步形成了一套极速开发方法,此法将在即将打造的JFinal极速开发社区展示出来。
网页链接
getFile文件上传
Controller提供了getFile系列方法支持文件上传。
特别注意:如果客户端请求为multipart request(form表单使用了enctype="multipart/form-data"),那么必须先调用getFile系列方法才能使getPara系列方法正常工作,因为multipart request需要通过getFile系列方法解析请求体中的数据,包括参数。同样的道理在Interceptor、Validator中也需要先调用getFile。
文件默认上传至项目根路径下的upload子路径之下,该路径称为文件上传基础路径。可以在 JFinalConfigconfigConstant(Constants me)方法中通过mesetBaseUploadPath(baseUploadPath) 设置文件上传基础路径,该路径参数接受以”/”打头或者以windows磁盘盘符打头的绝对路径,即可将基础路径指向项目根径之外,方便单机多实例部署。当该路径参数设置为相对路径时,则是以项目根为基础的相对路径。
上面是注意事项,
代码:
UploadFile uf = getFile();File f = ufgetFile();
String path = fgetPath();
//或者 String path = ufgetUploadPath() + Fileseparator + ufgetFileName();
以上就是关于jfinal声明式事务怎样配置全部的内容,包括:jfinal声明式事务怎样配置、如何使用JFinal实现ajax局部刷新、jfinal整合hdfs文件上传时如何获取真实路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)