`
andy_ghg
  • 浏览: 293344 次
  • 性别: Icon_minigender_1
  • 来自: 扬州
社区版块
存档分类
最新评论

用Java反射写的生成ExtJS MVC model文件的类。

阅读更多
如果你也在写Ext JS的MVC,恰好又遇到了类似下面的这个类。。。。

package cn.com.fri.plugins.setup.po;

public class DataBaseInfo {
	private String databaseProductName;

	private boolean supportsTransactions;

	private String databaseProductVersion;

	private int defaultTransactionIsolation;

	private boolean supportsBatchUpdates;

	private String url;

	private String username;

	private boolean readOnly;

	private boolean supportsColumnAliasing;

	private boolean supportsLikeEscapeClause;

	private boolean supportsLimitedOuterJoins;

	private boolean supportsMultipleTransactions;

	private boolean supportsSubqueriesInExists;

	private boolean supportsSubqueriesInIns;

	private boolean supportsTransactionIsolationLevel;

	private boolean supportsUnion;

	private boolean supportsUnionAll;

	private boolean usesLocalFilePerTable;

	private boolean usesLocalFiles;

	private int databaseMajorVersion;

	private int databaseMinorVersion;

	private int JDBCMajorVersion;

	private int JDBCMinorVersion;

	private String driverName;

	private String driverVersion;

	private String extraNameCharacters;

	private String identifierQuoteString;

	private int maxCatalogNameLength;

	private int maxColumnNameLength;

	private int maxColumnsInGroupBy;
	
	private int maxColumnsInOrderBy;

	public int getMaxColumnsInOrderBy() {
		return maxColumnsInOrderBy;
	}

	public void setMaxColumnsInOrderBy(int maxColumnsInOrderBy) {
		this.maxColumnsInOrderBy = maxColumnsInOrderBy;
	}

	private int maxColumnsInSelect;

	private int maxConnections;

	public String getDatabaseProductName() {
		return databaseProductName;
	}

	public void setDatabaseProductName(String databaseProductName) {
		this.databaseProductName = databaseProductName;
	}

	public boolean isSupportsTransactions() {
		return supportsTransactions;
	}

	public void setSupportsTransactions(boolean supportsTransactions) {
		this.supportsTransactions = supportsTransactions;
	}

	public String getDatabaseProductVersion() {
		return databaseProductVersion;
	}

	public void setDatabaseProductVersion(String databaseProductVersion) {
		this.databaseProductVersion = databaseProductVersion;
	}

	public int getDefaultTransactionIsolation() {
		return defaultTransactionIsolation;
	}

	public void setDefaultTransactionIsolation(int defaultTransactionIsolation) {
		this.defaultTransactionIsolation = defaultTransactionIsolation;
	}

	public boolean isSupportsBatchUpdates() {
		return supportsBatchUpdates;
	}

	public void setSupportsBatchUpdates(boolean supportsBatchUpdates) {
		this.supportsBatchUpdates = supportsBatchUpdates;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public boolean isReadOnly() {
		return readOnly;
	}

	public void setReadOnly(boolean readOnly) {
		this.readOnly = readOnly;
	}

	public boolean isSupportsColumnAliasing() {
		return supportsColumnAliasing;
	}

	public void setSupportsColumnAliasing(boolean supportsColumnAliasing) {
		this.supportsColumnAliasing = supportsColumnAliasing;
	}

	public boolean isSupportsLikeEscapeClause() {
		return supportsLikeEscapeClause;
	}

	public void setSupportsLikeEscapeClause(boolean supportsLikeEscapeClause) {
		this.supportsLikeEscapeClause = supportsLikeEscapeClause;
	}

	public boolean isSupportsLimitedOuterJoins() {
		return supportsLimitedOuterJoins;
	}

	public void setSupportsLimitedOuterJoins(boolean supportsLimitedOuterJoins) {
		this.supportsLimitedOuterJoins = supportsLimitedOuterJoins;
	}

	public boolean isSupportsMultipleTransactions() {
		return supportsMultipleTransactions;
	}

	public void setSupportsMultipleTransactions(boolean supportsMultipleTransactions) {
		this.supportsMultipleTransactions = supportsMultipleTransactions;
	}

	public boolean isSupportsSubqueriesInExists() {
		return supportsSubqueriesInExists;
	}

	public void setSupportsSubqueriesInExists(boolean supportsSubqueriesInExists) {
		this.supportsSubqueriesInExists = supportsSubqueriesInExists;
	}

	public boolean isSupportsSubqueriesInIns() {
		return supportsSubqueriesInIns;
	}

	public void setSupportsSubqueriesInIns(boolean supportsSubqueriesInIns) {
		this.supportsSubqueriesInIns = supportsSubqueriesInIns;
	}

	public boolean isSupportsTransactionIsolationLevel() {
		return supportsTransactionIsolationLevel;
	}

	public void setSupportsTransactionIsolationLevel(
			boolean supportsTransactionIsolationLevel) {
		this.supportsTransactionIsolationLevel = supportsTransactionIsolationLevel;
	}

	public boolean isSupportsUnion() {
		return supportsUnion;
	}

	public void setSupportsUnion(boolean supportsUnion) {
		this.supportsUnion = supportsUnion;
	}

	public boolean isSupportsUnionAll() {
		return supportsUnionAll;
	}

	public void setSupportsUnionAll(boolean supportsUnionAll) {
		this.supportsUnionAll = supportsUnionAll;
	}

	public boolean isUsesLocalFilePerTable() {
		return usesLocalFilePerTable;
	}

	public void setUsesLocalFilePerTable(boolean usesLocalFilePerTable) {
		this.usesLocalFilePerTable = usesLocalFilePerTable;
	}

	public boolean isUsesLocalFiles() {
		return usesLocalFiles;
	}

	public void setUsesLocalFiles(boolean usesLocalFiles) {
		this.usesLocalFiles = usesLocalFiles;
	}

	public int getDatabaseMajorVersion() {
		return databaseMajorVersion;
	}

	public void setDatabaseMajorVersion(int databaseMajorVersion) {
		this.databaseMajorVersion = databaseMajorVersion;
	}

	public int getDatabaseMinorVersion() {
		return databaseMinorVersion;
	}

	public void setDatabaseMinorVersion(int databaseMinorVersion) {
		this.databaseMinorVersion = databaseMinorVersion;
	}

	public int getJDBCMajorVersion() {
		return JDBCMajorVersion;
	}

	public void setJDBCMajorVersion(int jDBCMajorVersion) {
		JDBCMajorVersion = jDBCMajorVersion;
	}

	public int getJDBCMinorVersion() {
		return JDBCMinorVersion;
	}

	public void setJDBCMinorVersion(int jDBCMinorVersion) {
		JDBCMinorVersion = jDBCMinorVersion;
	}

	public String getDriverName() {
		return driverName;
	}

	public void setDriverName(String driverName) {
		this.driverName = driverName;
	}

	public String getDriverVersion() {
		return driverVersion;
	}

	public void setDriverVersion(String driverVersion) {
		this.driverVersion = driverVersion;
	}

	public String getExtraNameCharacters() {
		return extraNameCharacters;
	}

	public void setExtraNameCharacters(String extraNameCharacters) {
		this.extraNameCharacters = extraNameCharacters;
	}

	public String getIdentifierQuoteString() {
		return identifierQuoteString;
	}

	public void setIdentifierQuoteString(String identifierQuoteString) {
		this.identifierQuoteString = identifierQuoteString;
	}

	public int getMaxCatalogNameLength() {
		return maxCatalogNameLength;
	}

	public void setMaxCatalogNameLength(int maxCatalogNameLength) {
		this.maxCatalogNameLength = maxCatalogNameLength;
	}

	public int getMaxColumnNameLength() {
		return maxColumnNameLength;
	}

	public void setMaxColumnNameLength(int maxColumnNameLength) {
		this.maxColumnNameLength = maxColumnNameLength;
	}

	public int getMaxColumnsInGroupBy() {
		return maxColumnsInGroupBy;
	}

	public void setMaxColumnsInGroupBy(int maxColumnsInGroupBy) {
		this.maxColumnsInGroupBy = maxColumnsInGroupBy;
	}

	public int getMaxColumnsInSelect() {
		return maxColumnsInSelect;
	}

	public void setMaxColumnsInSelect(int maxColumnsInSelect) {
		this.maxColumnsInSelect = maxColumnsInSelect;
	}

	public int getMaxConnections() {
		return maxConnections;
	}

	public void setMaxConnections(int maxConnections) {
		this.maxConnections = maxConnections;
	}

	public int getMaxCursorNameLength() {
		return maxCursorNameLength;
	}

	public void setMaxCursorNameLength(int maxCursorNameLength) {
		this.maxCursorNameLength = maxCursorNameLength;
	}

	public int getMaxStatements() {
		return maxStatements;
	}

	public void setMaxStatements(int maxStatements) {
		this.maxStatements = maxStatements;
	}

	private int maxCursorNameLength;

	private int maxStatements;
}



你是不是感觉你快要崩溃了呢?

那么这里提供一个自动生成Model的java类

package cn.com.fri.core.utils.extjs;

import java.io.IOException;
import java.lang.reflect.Field;

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

import cn.com.fri.plugins.setup.po.DataBaseInfo;

/**
 * 根据给出的类映射出前端的ExtJS Model.
 * 
 * @author <a href="mailto:ge.bugman@gmail.com">葛昊</a>
 * @since Spring 3.1 Hibernate 4.0 and jdk 1.7
 * @version %I% %G%
 */
public class ReflectObject2ExtJSModel {

	public static String createModel(Class<?> clazz) throws IOException {
		String[] filters = null;
		// 判断该类中是否包含懒加载对象,如果包含懒加载对象,则排除在外。
		if (clazz.isAnnotationPresent(JsonIgnoreProperties.class)) {
			filters = clazz.getAnnotation(JsonIgnoreProperties.class).value();
		}
		Field[] fields = clazz.getDeclaredFields();

		// 这里将里面的包名改成你所需的,或者改用传参的方式也是一个不错的方法!
		String sb = "Ext.define('SystemSetup.model." + clazz.getSimpleName()
				+ "', {\r\n\textend: 'Ext.data.Model',\r\n\tfields:[";

		fieldFor: for (Field field : fields) {
			if (filters != null) {
				for (String f : filters) {
					if (f.equals(field.getName())) {
						continue fieldFor;
					}
				}
			}
			sb += "'" + field.getName() + "',";
		}
		sb = sb.substring(0, sb.length() - 1);
		sb += "]\r\n});";
		// 在这里可以输出为文件,也可以返回一个字符串.
		return sb.toString();
	}

	public static void main(String[] args) {
		try {
			String model = ReflectObject2ExtJSModel
					.createModel(DataBaseInfo.class);
			System.out.println(model);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}



这样就没有必要整天写那个破model了,用到的时候直接生成就OK!
分享到:
评论

相关推荐

    EXTJS简单MVC实例

    只要将解压的文件直接放置到myeclipse的webroot下面,启动tomcat访问。简单的EXTJS mvc框架,设计 store,model,controller,view,window等等,同时展示了一些基本的点击显示、修改等等操作,需要的同学自行下载

    ExtJS MVC 官方实例

    学习这个官方实例,你将掌握如何组织和编写高效的ExtJS MVC应用,包括如何定义模型、创建视图组件、配置控制器、以及如何使用Store进行数据操作。这将帮助你在实际项目中更好地利用ExtJS的强大功能,开发出高性能、...

    extJS4 MVC demo项目入门

    extJS4 MVC demo项目入门涉及的是前端开发领域的技术要点,主要介绍了extJS4框架中的MVC(Model-View-Controller)模式在实际开发项目中的应用方法,并着重讲述了如何实现前端资源的按需加载和动态加载。在了解这些...

    Extjs4 MVC小实例

    MVC(Model-View-Controller)架构模式是ExtJS 4中一个核心的设计原则,它有助于实现应用的模块化和可维护性。这个“Extjs4 MVC小实例”很可能是为了展示如何在实际项目中有效地运用MVC模式。 **模型(Model)** 在...

    Extjs4.0 mvc模式开发

    在ExtJS中,可以创建自定义的数据模型类,用以封装数据属性和行为。 - **视图(View)**:负责展示数据和用户交互。在ExtJS中,视图通常是组件(如表格、窗口、面板等),它们通过绑定到模型或store来展示数据。 -...

    extjs动态生成model、store、panel

    extjs动态生成model、store、panel;sql拼接等多种技术难点

    extjs mvc简单示例

    本文将深入探讨如何在ExtJS中使用MVC模式来构建一个简单的应用。 首先,让我们了解MVC模式的基本概念。MVC模式将应用程序分为三个主要部分: 1. Model(模型):负责处理数据和业务逻辑。在ExtJS中,模型通常与远程...

    ExtJS MVC示例

    ExtJS MVC示例是基于ExtJS 4.2.0框架的一个典型应用场景,它展示了如何在Web应用中利用MVC(Model-View-Controller)设计模式进行开发。MVC模式是一种软件设计模式,用于分离应用程序的数据、用户界面和逻辑控制,以...

    自己写的ExtJS4.0用MVC的示例

    总结来说,这个“自己写的ExtJS4.0用MVC的示例”展示了如何利用MVC模式在客户端构建复杂的应用程序,提供了良好的代码组织和可维护性。通过研究这个示例,你可以学习到如何有效地使用模型、视图和控制器,以及它们...

    ExtJS的MVC模式

    在`ExtJS_MVC_Demo`这个压缩包中,可能包含了演示如何使用ExtJS 4.0.7实现MVC模式的各种示例代码。这些示例可能包括模型定义、视图组件的创建、控制器的编写以及应用的配置等。通过学习和分析这些示例,开发者可以更...

    MVC+Extjs架构WebMis自动生成

    升级了,大家不要下载这个了,下载我的资源里的的(MVC+Extjs架构WebMis自动生成) 只要你配置了数据库,配置了表,配置了功能菜单,每个菜单对应一个表,就能生产一个基本的系统, 基本系统:能对你的表进行CRUD,...

    Java+Extjs实现单文件上传

    本话题主要关注如何使用Java后端和ExtJS前端框架来实现单文件上传的流程。下面将详细讲解这个过程涉及的关键知识点。 首先,我们来看Java文件上传。在Java中,处理文件上传主要依赖于Servlet API中的`Part`接口,这...

    ExtJS 4 MVC

    ExtJS 4 MVC是一个强大的前端开发框架,它利用模型-视图-控制器(Model-View-Controller)架构模式,帮助开发者构建复杂、可维护的Web应用程序。MVC是一种设计模式,它将应用程序的不同部分分离出来,使代码更易于...

    extjs mvc 完整demo

    EXTJS MVC 完整 demo 是一个基于 EXTJS 框架实现的模型-视图-控制器(Model-View-Controller)架构的示例项目。EXTJS 是一款强大的前端开发框架,用于构建桌面级的富互联网应用程序(RIA)。它提供了一套完整的组件...

    Extjs4 MVC 官方实例整合 未改动 未删减 部署即可运行

    这个官方实例集是ExtJS 4 MVC模式的一个完整展示,旨在帮助开发者理解并掌握如何使用MVC进行开发。 **MVC模式详解:** 1. **Model(模型)**:负责处理数据和业务逻辑,通常与后台服务进行通信,获取或存储数据。在...

    extjs java 上传文件进度条

    总结来说,"extjs java 上传文件进度条"这个主题涉及到前端与后端的交互,需要理解ExtJS组件的使用,熟悉Ajax异步上传,掌握Java服务器处理文件上传的逻辑,以及HTTP协议、JSON通信等相关知识。通过这些技术的结合,...

    ExtJS4.2 MVC

    MVC(Model-View-Controller)模式是软件工程中一种广泛使用的架构设计,它有助于将应用程序的业务逻辑、用户界面和数据管理分离开来,提高代码的可维护性和可扩展性。 在ExtJS4.2中,MVC的实现包括以下几个核心...

    extjs4MVC实现

    在 ExtJS 4.0 中,引入了 Model-View-Controller(MVC)架构模式,这是一种设计模式,用于组织和分离应用的业务逻辑、视图展示和用户交互。本文将深入探讨 ExtJS4.0 MVC 的核心概念、结构以及如何实现一个简单的 MVC...

    ExtJS MVC入门级开发案例

    MVC(Model-View-Controller)模式是软件设计中的一个经典模式,它在ExtJS中被广泛应用,以实现应用程序的模块化和可维护性。这个"ExtJS MVC入门级开发案例"是一个理想的学习资源,适合初学者理解并掌握如何在ExtJS...

Global site tag (gtag.js) - Google Analytics