⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beanmaker.java

📁 生成与Oracle相关的Ibatis相关配置文件及Java源码
💻 JAVA
字号:
/*
 * Copyright (c) 2008 胜利油田胜利软件有限责任公司. All rights reserved.
 */
package com.victorysoft.code.maker;

import java.util.List;

import com.victorysoft.code.base.CodeTemplete;
import com.victorysoft.code.base.DBInfoCollector;
import com.victorysoft.code.base.TypeConvertor;
import com.victorysoft.code.bean.ColInfo;
import com.victorysoft.code.bean.TabInfo;

/**
 * 
 * @author 于景洋
 * @newtime Oct 21, 2008,8:51:13 AM
 * @version 1.0
 * @see
 * @since JDK 1.5.0
 */
public class BeanMaker {
	private static final String $PROPM = "$PROPM";
	private static final String $GSSGM = "$GSSGM";
	private static final String $BSSGM = "$BSSGM";
	private static final String $BEANM = "$BEANM";

	private static final String THEAD = "#THEAD#";
	private static final String TPACK = "#TPACK#";
	private static final String BHEAD = "#BHEAD#";
	private static final String COLCOMT = "#COLCOMT#";
	private static final String COLNAME = "#COLNAME#";
	private static final String DATATYPE = "#DATATYPE#";
	private static final String UPTABNAME = "#UPTABNAME#";
	private static final String UPCOLNAME = "#UPCOLNAME#";
	private static final String IMPTS = "#IMPTS#";
	private static final String PROPS = "#PROPS#";
	private static final String GSSGM = "#GSSGM#";

	private BaseMaker cbm = null;
	private CodeTemplete bct = null;
	private DBInfoCollector dbc = null;

	public BeanMaker() {
		cbm = new BaseMaker();
		bct = new CodeTemplete(BeanMaker.class, "bean.txt");
		dbc = new DBInfoCollector();
	}

	public String getBeanm(String project, TabInfo tab) {
		List<ColInfo> cols = dbc.getTabColInfos(tab.getName());
		StringBuffer bimpts = new StringBuffer();
		StringBuffer bprops = new StringBuffer();
		StringBuffer bgssgm = new StringBuffer();
		for (int i = 0; i < cols.size(); i++) {
			ColInfo col = cols.get(i);
			bprops.append(this.getPropm(col));
			String beantype = TypeConvertor.getBeanType(col);
			if ("boolean".equals(beantype)) {
				bgssgm.append(this.getBssgm(col));
			} else if ("Date".equals(beantype) && bimpts.indexOf("Date") == -1) {
				bimpts.append("import java.util.Date;\n");
				bgssgm.append(this.getGssgm(col));
			} else if ("Timestamp".equals(beantype)
					&& bimpts.indexOf("Timestamp") == -1) {
				bimpts.append("import java.sql.Timestamp;\n");
				bgssgm.append(this.getGssgm(col));
			} else {
				bgssgm.append(this.getGssgm(col));
			}
		}
		String name = tab.getName().toLowerCase();
		String beanm = bct.getTemplete($BEANM);
		beanm = beanm.replaceAll(THEAD, cbm.getThead());
		beanm = beanm.replaceAll(TPACK, cbm.getTpack(project));
		beanm = beanm.replaceAll(BHEAD, cbm.getBhead(tab));
		beanm = beanm.replaceAll(UPTABNAME, upFirstChar(name));
		beanm = beanm.replaceAll(IMPTS, bimpts.toString().trim());
		beanm = beanm.replaceAll(PROPS, bprops.toString().trim());
		beanm = beanm.replaceAll(GSSGM, bgssgm.toString().trim());
		return beanm;
	}

	private String getPropm(ColInfo col) {
		String name = col.getName().toLowerCase();
		String comt = col.getComt();
		if (comt == null || comt.length() == 0) {
			comt = name;
		}
		String type = TypeConvertor.getBeanType(col);
		String propm = bct.getTemplete($PROPM);
		propm = propm.replaceAll(COLNAME, name);
		propm = propm.replaceAll(COLCOMT, comt);
		return propm.replaceAll(DATATYPE, type);
	}

	private String getGssgm(ColInfo col) {
		String name = col.getName().toLowerCase();
		String comt = col.getComt();
		if (comt == null || comt.length() == 0) {
			comt = col.getName();
		}
		String type = TypeConvertor.getBeanType(col);
		String propm = bct.getTemplete($GSSGM);
		propm = propm.replaceAll(COLNAME, name);
		propm = propm.replaceAll(COLCOMT, comt);
		propm = propm.replaceAll(DATATYPE, type);
		return propm.replaceAll(UPCOLNAME, upFirstChar(name));
	}

	private String getBssgm(ColInfo col) {
		String name = col.getName().toLowerCase();
		String comt = col.getComt();
		comt = (comt == null || comt.length() == 0) ? name : comt;
		String type = TypeConvertor.getBeanType(col);
		String propm = bct.getTemplete($BSSGM);
		propm = propm.replaceAll(COLNAME, name);
		propm = propm.replaceAll(COLCOMT, comt);
		propm = propm.replaceAll(DATATYPE, type);
		return propm.replaceAll(UPCOLNAME, upFirstChar(name));
	}

	private String upFirstChar(String str) {
		if (str == null || str.length() == 0) {
			return str;
		}
		return String.valueOf(str.charAt(0)).toUpperCase() + str.substring(1);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -