`

EWeb4J-1.9-继续改善ActiveRecord支持【级联】操作

阅读更多
老习惯:约定优于配置,配置覆盖约定,少侵入,开发者控制一切

由于之前已经封装好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
1
0
分享到:
评论

相关推荐

    eweb4j

    eweb4j是一个Java开发框架,它专注于提供高效、轻量级且易于使用的Web应用程序解决方案。这个框架的设计理念是简化开发流程,提高开发效率,同时保持代码的清晰性和可维护性。下面我们将深入探讨eweb4j框架的核心...

    java猜数字源码-eweb4j-framework:简单的Java网络框架

    EWeb4J ? = EWeb4J 是一个基于 Servlet/Jdbc 构建的轻量级 Java Web 开发框架。它可以代替 SSH 来开发一个完整的 Web 应用程序。 它专注于 少侵入、少配置、松耦合、RESTful架构风格的 Web 应用程序开发。 EWeb4J ...

    eweb4j最新版本src[附带需要的jar]

    **eweb4j框架详解** `eweb4j`是一个基于Java开发的轻量级Web应用框架,旨在简化Web应用程序的开发过程,提高开发效率。它集成了许多实用功能,如MVC模式、数据访问、安全管理等,为开发者提供了一个高效、易用的...

    1756-eweb手册

    Rockwell 1756-Eweb模块

    java开源框架下载集合

    EWeb4J支持多种数据库,并提供了强大的表单验证功能,使得开发者可以轻松创建复杂的数据驱动型Web应用。 #### 3. Spring Roo 1.2.1 **下载链接**: ...

    在线编辑器(eweb)应用实例

    本实例将深入探讨EWeb在线编辑器的使用方法和功能,帮助初学者快速掌握其操作。 一、EWeb在线编辑器概述 EWeb是一款强大的Web开发工具,它提供了丰富的代码编辑功能,支持多种编程语言,包括HTML、CSS、JavaScript...

    一个很好的eweb编辑器

    4. **数据库操作**: - 使用ASP,你可以使用`conn.Execute`执行SQL查询,用`Recordset`对象处理查询结果。 - 例如,获取数据的代码可能是这样的: ``` Dim rs Set rs = conn.Execute("SELECT * FROM YourTable...

    1756-EWEB.pdf

    1756-EWEB

    eweb.rar_eweb_editor

    《EWeb编辑器2.80:打造高效网页创作利器》 EWeb编辑器,全称为"EWeb Editor",是一款专业且用户友好的网页编辑工具,尤其以2.80版本备受好评,被誉为“绝对好用”。这款编辑器旨在简化网页制作流程,提升开发效率...

    eWeb7.3.0 商业版 支持上传版 在线html编辑器

    这款编辑器支持上传功能,极大地扩展了其在网页设计和内容管理中的应用范围。 首先,eWeb7.3.0商业版在线HTML编辑器的核心特性是它的易用性。用户无需具备深厚的HTML语言基础,只需通过直观的图形化界面,就能完成...

    eWeb.rar_eWeb Editor Clie_eWebEditor_eweb editoi_文本修改器_文本编辑器

    《eWeb Editor客户端:在线文本编辑器的深度解析与应用》 eWeb Editor是一款功能强大的在线文本编辑器,尤其在Web开发领域中被广泛应用。它以其便捷的操作界面和丰富的编辑功能,为网络编程人员提供了极大的便利。...

    eweb 网页编辑器

    9. **多平台兼容**:eweb网页编辑器通常支持多种操作系统,如Windows、Mac等,确保跨平台的使用体验。 10. **插件扩展**:为了增强功能,eweb可能还允许安装第三方插件,比如SEO优化工具、社交媒体分享按钮等,满足...

    高速 Fel表达式引擎

    - **函数实现**: Fel的所有操作,包括基本运算符(如 +, -, *, /)均通过函数来实现。 - **双引擎支持**: - **解释执行**: 直接对表达式进行求值,适用于动态性强、表达式简单的场景。 - **编译执行**: 将表达式...

    e-web editor 3.8

    7. **多语言支持**:作为“完整中文版”,eWeb Editor 3.8 除了中文界面外,还可能支持其他多种语言,适应全球用户的需求。 8. **兼容性和跨平台**:编辑器兼容各种主流浏览器,如Internet Explorer、Firefox、...

    eWEB - literate programming in AsciiDoc-开源

    让 AsciiDoc 成为您的文学编程工具集的一部分。 使用 eWEB,您可以使用嵌入的 WEB 代码片段编织和缠结作为 AsciiDoc 文档编写的文字程序。

    eweb编辑器,shengcheng

    在线编辑HTML,使用户方便使用编码在线编辑HTML,使用户方便使用编码

    [MMS_041397]Reading CLX_val using EWEB.rar

    【标题解析】:“[MMS_041397]Reading CLX_val using EWEB.rar”这个标题可能指的是一个关于使用EWEB工具读取AB PLC(Allen Bradley Programmable Logic Controller)中的CLX(可能是ControlLogix系列)寄存器或变量...

    eweb编辑器(带图片上传功能)

    ASP常用的后台编辑器,带图片上传功能 调用方法如下例子: <textarea name="nr" ROWS="20" COLS="70">%=Server.HTMLEncode(rs("nr"))%></textarea> <iframe ID="eWebEditor1" src="../...</iframe>

    正版eweb控件_eWebEditor_V3.80_JSP

    4. **语言支持**:从标签"language"可以看出,该控件提供了多语言支持,方便国内外用户使用。 5. **注意问题**:描述中提到上传功能目前不支持Struts2.0框架,这意味着在使用Struts2.0的项目中,可能需要寻找替代的...

Global site tag (gtag.js) - Google Analytics