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

📄 dbtable.java

📁  EasyDBO是一个超轻量级对象-关系映射(Object/Relation Mapping
💻 JAVA
字号:
package com.easyjf.dbo;

import java.util.*;

/**
 * 
 * <p>
 * Title: 关系表写定义信息
 * </p>
 * 
 * <p>
 * Description: 定义一个关系表的内容
 * </p>
 * 
 * <p>
 * Copyright: Copyright (c) 2006
 * </p>
 * 
 * <p>
 * Company: EasyJF开源团队-EasyDBO项目组
 * </p>
 * 
 * @author 大峡
 * @version 1.0
 */
public class DBTable {
	/**
	 * 库名
	 */
	private String catalog;

	/**
	 * 表字段,一张表有多个字段,这是原始的JDBC封装使用的所
	 */
	private final Map fields = new java.util.HashMap();

	/**
	 * po类型字段,用于扩充对OneToOne、ManyToOne等对象之间关系的映射
	 */
	private final Map classField = new java.util.HashMap();

	/**
	 * 表主键
	 */
	private String id;

	/**
	 * 表主键生成器
	 */
	private String idGenerator;

	/**
	 * 表名
	 */
	private String name;

	/**
	 * 所有者
	 */
	private String schema;

	/**
	 * lazy load
	 * 
	 */
	private boolean lazy = false;

	private Vector types = new Vector();

	private Vector params = new Vector();

	/**
	 * 
	 */
	public DBTable() {
		this("", "");
	}

	/**
	 * 
	 * @param name
	 *            String
	 */
	public DBTable(String name) {
		this(name, "");
	}

	/**
	 * 
	 * @param name
	 *            String
	 * @param id
	 *            String
	 */
	public DBTable(String name, String id) {
		this(name, id, "");
	}

	/**
	 * 
	 * @param name
	 *            String
	 * @param id
	 *            String
	 * @param idGenerator
	 *            String
	 */
	public DBTable(String name, String id, String idGenerator) {
		this.name = name;
		this.id = id;
		this.idGenerator = idGenerator;
	}

	// ~--- methods ------------------------------------------------------------
	/**
	 * 
	 * @param key
	 *            String
	 * @param value
	 *            DBField
	 */
	public void addField(String key, DBField value) {
		fields.put(key, value);
	}

	public DBField getField(String popertyName)
	{
		DBField field=findField(popertyName);
		if(field==null)field=findClassField(popertyName);
		return field;
	}
	/**
	 * 
	 * @param fieldName
	 *            String
	 * @return DBField
	 */
	public DBField findField(String fieldName) {
		return (DBField) fields.get(fieldName);
	}

	public ClassField findClassField(String popertyName) {
		return (ClassField) classField.get(popertyName);
	}

	public DBField findFieldByColuman(String column)
	{		
		java.util.Iterator it=fields.values().iterator();
		while(it.hasNext())
		{
			DBField field=(DBField)it.next();
			if(column.equalsIgnoreCase(field.getName()))return field;
		}
		return null;
	}
	/**
	 * 
	 * @param fieldName
	 *            String
	 */
	public void removeField(String fieldName) {
		fields.remove(fieldName);
	}

	/**
	 * 
	 * @return String
	 */
	public String toString() {
		return "name=" + this.getName() + ";id=" + this.getId() + ";generator="
				+ this.getIdGenerator() + ";field number="
				+ this.getFields().size();
	}

	/**
	 * 
	 * @return String
	 */
	public String getCatalog() {
		return catalog;
	}

	/**
	 * 
	 * @return Map
	 */
	public Map getFields() {
		return fields;
	}

	public Map getAllFields()
	{
		Map ret=new HashMap(fields);
		ret.putAll(classField);
		return ret;
	}
	/**
	 * 
	 * @return String
	 */
	public String getId() {
		return id;
	}

	/**
	 * 
	 * @return String
	 */
	public String getIdGenerator() {
		return idGenerator;
	}

	/**
	 * 
	 * @return DBField
	 */
	public DBField getKeyFiled() {
		return (DBField) fields.get(id);
	}

	/**
	 * 
	 * @return String
	 */
	public String getName() {
		return name;
	}

	/**
	 * 
	 * @param fieldName
	 *            String
	 * @return String
	 */
	public String getPoperty(String fieldName) {
		String ret = null;
		Iterator it = fields.entrySet().iterator();
		ret = getPoperty(it, fieldName);
		if (ret == null) {
			ret = getPoperty(classField.entrySet().iterator(), fieldName);
		}
		return ret;
	}

	private String getPoperty(java.util.Iterator it, String fieldName) {
		String ret = null;
		while (it.hasNext()) {
			Map.Entry field = (Map.Entry) it.next();
			if (fieldName.equalsIgnoreCase(((DBField) field.getValue())
					.getName())) {
				ret = (String) field.getKey();
				break;
			}
		}
		return ret;
	}

	public Class getType(String fieldName) {
		Class ret = null;
		Iterator it = fields.entrySet().iterator();
		ret = getType(it, fieldName);
		if(ret==null)ret=getType(classField.entrySet().iterator(),fieldName);
		return ret;
	}

	private Class getType(Iterator it, String fieldName) {
		Class ret = null;
		while (it.hasNext()) {
			Map.Entry field = (Map.Entry) it.next();
			if (fieldName.equalsIgnoreCase(((DBField) field.getValue())
					.getName())) {
				ret = ((DBField) field.getValue()).getType();
				break;
			}
		}
		return ret;
	}

	/**
	 * 
	 * @return String
	 */
	public String getSchema() {
		return schema;
	}

	// ~--- set methods --------------------------------------------------------
	/**
	 * 
	 * @param catalog
	 *            String
	 */
	public void setCatalog(String catalog) {
		this.catalog = catalog;
	}

	/**
	 * 
	 * @param id
	 *            String
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 
	 * @param idGenerator
	 *            String
	 */
	public void setIdGenerator(String idGenerator) {
		this.idGenerator = idGenerator;
	}

	/**
	 * 
	 * @param name
	 *            String
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 
	 * @param schema
	 *            String
	 */
	public void setSchema(String schema) {
		this.schema = schema;
	}

	public void setLazy(String lazy) {
		if (lazy.equalsIgnoreCase("true")) {
			this.lazy = true;
		} else
			this.lazy = false;
	}

	public boolean getLazy() {
		return lazy;
	}

	public void setTypes(Object type) {
		types.add(type);
	}

	public void setParams(Object param) {
		params.add(param);
	}

	public Map getClassField() {
		return classField;
	}

	public void addClassField(String name, ClassField field) {
		classField.put(name, field);
	}
	public void concat(DBTable table)
	{
		fields.putAll(table.getFields());
		classField.putAll(table.getClassField());
		if("".equals(this.name))this.name=table.getName();
		if("".equals(this.id))this.id=table.getId();
		if("".equals(this.idGenerator))this.idGenerator=table.getIdGenerator();
	}
}

⌨️ 快捷键说明

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