老习惯:约定优于配置,配置覆盖约定,少侵入,开发者控制一切
由于之前已经封装好CascadeDAO接口。因此本次在ActiveRecord中增加级联操作就显得很简单了。
这个是使用的时候:
PetControl.java
@Validate(value={"pet.*"}, except={"pet.id"})
@Transactional
public String create(Validation val, Map model) {
if (val.hasErr())
return JsonConverter.convert(val.getAllErr());
pet.create();
pet.cascade().select("fied1","field2");
pet.cascade().insert("fied1","field2");
pet.cascade().update("fied1","field2");
pet.cascade().delete("fied1","field2");
model.put("types", TYPES);
return "index";
}
可以看到,新版本的级联操作依然是开发者主动发起的,没有懒加载、自动级联这些概念。开发者控制一切。
实现原理:
Model.java
public Cascade cascade(){
Cascade cascade = new CascadeImpl(DAOFactory.getCascadeDAO(dsName), this);
return cascade;
}
Cacade.java
public interface Cascade {
void select(String... fields);
void update(String... fields);
void delete(String... fields);
void insert(String... fields);
}
CascadeImpl.java
public class CascadeImpl implements Cascade{
private CascadeDAO cascadeDAO;
private Model model;
CascadeImpl(CascadeDAO cascadeDAO, Model model){
this.cascadeDAO = cascadeDAO;
this.model = model;
}
public void select(String... fields) {
this.cascadeDAO.select(model, fields);
}
public void update(String... fields) {
this.cascadeDAO.update(model, fields);
}
public void delete(String... fields) {
this.cascadeDAO.delete(model, fields);
}
public void insert(String... fields) {
this.cascadeDAO.insert(model, fields);
}
}
可以看到其实就是代理了下这个 CascadeDAO 而已。
PS:数数日子,1.9-SNAPSHOT也已经好些日子了。本来打算4-8号发布的。当时由于验证器这块还是不够方便和有效。现在总算解决。我想差不多就发布了吧。进行这个版本最后的Demo测试。等我写好用户文档,也就差不多发布了 :b
分享到:
相关推荐
EWeb4J ? = EWeb4J 是一个基于 Servlet/Jdbc 构建的轻量级 Java Web 开发框架。它可以代替 SSH 来开发一个完整的 Web 应用程序。 它专注于 少侵入、少配置、松耦合、RESTful架构风格的 Web 应用程序开发。 EWeb4J ...
eweb4j
eweb4j 最新的src 需要的jar包也都在其中. 可以读eweb4j的源代码 不必在网页上那样麻烦
Rockwell 1756-Eweb模块
LSI-SAS-RAID卡提升操作指南,LSI-SAS-RAID的操作手册,可以参照学习命令行的方式
eWeb 7.3.0 商业版 支持上传版 在线html编辑器
eweb编辑器 要改下db中的后缀为asp
让 AsciiDoc 成为您的文学编程工具集的一部分。 使用 eWEB,您可以使用嵌入的 WEB 代码片段编织和缠结作为 AsciiDoc 文档编写的文字程序。
在线编辑HTML,使用户方便使用编码在线编辑HTML,使用户方便使用编码
在线编辑器应用实例,方便大家学习,有完整的数据库和调用过程,参数说明说细
ASP常用的后台编辑器,带图片上传功能 调用方法如下例子: <textarea name="nr" ROWS="20" COLS="70">%=Server.HTMLEncode(rs("nr"))%></textarea> <iframe ID="eWebEditor1" src="../...</iframe>
高速 Fel表达式引擎 。类似ognl 速度很快。 性能很高
资源分类:Python库 所属语言:Python 资源全名:eweb-0.0.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
eWEB - 对手,Emmanuel Carrère 该网站是作为我们 eWEB 项目的一部分创建的,其目的是创建一个文化站点。 我们的选择落在了 Emmanuel Carrère 的《对手》一书中。 然后我们决定创建一个互联网站点,该站点涉及...
ewebeditor2.80最终版,绝对好用
eweb editor 3.8完整中文版
3.拦截代码查看和拦截代码删除功能作了隐藏,以免客户不会操作! 4.特别提醒所有客户,网站上传后一定要修改data下在数据库名(改了数据库名,要改conn.asp和adminmaster/conn.asp和iP/conn.asp)! 5.后台管理地址也...
eWeb editor编辑器文件,说明,使用方法:将解压后的editor文件夹拷贝到项目根目录下,在需要的页面中加入以下内容: 办事内容:</font></td> ;style=s_blue" frameborder="0" width="99%" ...
网络编程eWebEditor在线文本编辑器飞鱼修改版源码.rar
正版eweb控件,网站后台编译器,功能强大,控件带后台管理,可以自己定义后台功能、式样等。上传功能目前不支持struts2.0。