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

12 篇文章 0 订阅
如果你也在写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!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值