dbfound的三层架构

前言

        dbfound的设计思想是简易平台,所以dbfound尽量简化了系统的架构体系。很多情况下我们看到的dbfound是一个两层架构的系统(view+model)。

        dbfound model我们可以在浏览器中直接调用,加上model里面实现了一些简单的逻辑标签,在很多简单的业务场景下两层结构已经可以满足我们的需求。之前我写过几个系统都是一行Java没有就完成的真个系统的开发。

        但真正用于大型应用开发时,我们发现两层架构还是有些力不从心的,这里给大家介绍一下dbfound的三层架构-dbfound mvc。


dbfound mvc的搭建与配置

 1、首先我们在dbfound-conf.xml文件中配置一下dbfound-mvc.xml文件的路径

<?xml version="1.0" encoding="UTF-8"?>
<dbfound xmlns="http://dbfound.googlecode.com/conf">

	<web>
		<encoding>utf-8</encoding>
		<mvcConfigFile>${@projectRoot}/WEB-INF/dbfound-mvc.xml</mvcConfigFile>
	</web>

</dbfound>


2、将dbfound-mvc.xml放入到WEB-INF下面,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<dbfound-mvc xmlns="http://dbfound.googlecode.com/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://dbfound.googlecode.com/mvc http://dbfound.googlecode.com/svn/tags/v2/mvc.xsd">

	<action name="sys/role" class="com.nfwork.demo.sys.RoleControl" />
	
</dbfound-mvc>


3、我们再mvc中配置一个响应的control类,这里我们需要是编写这个类:

package com.nfwork.demo.sys;

import com.nfwork.dbfound.core.Context;
import com.nfwork.dbfound.dto.ResponseObject;
import com.nfwork.dbfound.model.ModelEngine;
import com.nfwork.dbfound.web.base.BaseControl;

public class RoleControl implements BaseControl {

	public ResponseObject query(Context context) throws Exception {
		return ModelEngine.query(context, "sys/role", null);
	}
	
	public ResponseObject delete(Context context) throws Exception {
		return ModelEngine.batchExecute(context, "sys/role", "delete");
	}

	public ResponseObject execute(Context context) {
		return null;
	}
}


4、编写model文件sys/role

<?xml version="1.0" encoding="UTF-8"?>
<model xmlns="http://dbfound.googlecode.com/model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dbfound.googlecode.com/model http://dbfound.googlecode.com/svn/tags/v2/model.xsd">
	<query pagerSize="10">
		<sql>
		  <![CDATA[
			SELECT
			    r.role_id,
				r.role_code,
				r.role_description,
				r.last_update_by,
				DATE_FORMAT(r.create_date,'%Y-%m-%d') create_date,
				DATE_FORMAT(r.last_update_date,'%Y-%m-%d') last_update_date,
				(select user_code from sys_user where user_id =r.last_update_by) user_code,
			    (select CONCAT(CONCAT(user_code,'-'),user_name) from sys_user where user_id =r.last_update_by) last_update_user
			FROM sys_role r
			#WHERE_CLAUSE#
			order by r.role_code
		   ]]>
		</sql>
		<filter name="timefrom" express="create_date &gt;= ${@timefrom} " />
		<filter name="timeto" express="create_date &lt;= ${@timeto} " />
		<filter name="role_code" express="role_code like ${@role_code} " />
		<filter name="user_id" express="last_update_by = ${@user_id} " />
		<filter name="role_description" express="role_description like ${@role_description} " />
	</query>

	<execute name="delete">
		<param name="role_id" dataType="number" />
		<sqls>
			<executeSql>
			  <![CDATA[
				delete from sys_role where role_id= ${@role_id}
			  ]]>
			</executeSql>
		</sqls>
	</execute>

</model>


  5、到这里整个程序就完成了,我们再浏览器输入.do的请求地址 就可以访问对应的java类了。

143115_gtoh_448179.jpg

sys/role 为mvc中配置的拦截路径。.do为拦截关键字。!后面的为方法名。


转载于:https://my.oschina.net/nfwork/blog/323182

JFrame应用软件开发平台是一个基于JavaEE的面向应用软件开发的框架及自动化代码生成平台。通过使用JFrame,应用软件的开发不再需要重头做起,只需通过JFrame自动代码生成工具配置、生成业务代码,并在此基础上简单地补充的业务逻辑即可。 JFrame降低了软件开发人员的要求,开发人员也无需掌握太多的编程知识,只需掌握JavaJavaScript基础知识,就可在平台上进行二次开发。TJFrame的目标是:“直接降低软件企业80%的研发成本,缩短项目开发发周期,提升客户满意度”;应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队获取该平台后,可以对其进行“二次装修”,根据自己的业务需求,在其基础之上进行二次开发,实现满足业务需求的应用软件。JFrame应用软件开发平台作为作基础软件,能够满足您应用软件开发的各种需求,而且特别适合于各类管理信息系统的开发。 JFrame开发团队将不断的完善其功能,以使其能够满足更广泛的需求。JFrame不承诺可以实现“零代码”开发,因为业务逻辑千变万化,不可能有真正的“零代码”开发平台,但JFrame却是解决软件工程问题的“银弹”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值