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

📄 dbmapping.java

📁 简易java框架开源论坛系统,简 易java框架开源论坛系统
💻 JAVA
字号:
package com.easyjf.dbo;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.apache.log4j.Logger;
/**
 * 类及数据表的应射表
 * @author 蔡世友
 *
 */
public class DBMapping {
private final static Logger logger = Logger.getLogger(DBMapping.class);
private final static DBMapping dbmapping=new DBMapping();
private final static Map map=new HashMap();
public static  DBMapping getInstance()
{	
	return dbmapping;
}
public void add(String className,DBTable table)
{
	map.put(className,table);
}
public void remove(String className)
{
	map.remove(className);
}
public DBTable findTable(Class cls)
{
	DBTable table=(DBTable)map.get(cls.getName());
	if(table==null)
	{
		logger.info("找不到数据库映射"+cls.toString()+",通过IObject的定义创建一个!");
		try{
			Object tempObj=cls.newInstance();
			if(tempObj instanceof IObject){
			table=new DBTable(((IObject)tempObj).getTableName(),((IObject)tempObj).getKeyField(),((IObject)tempObj).getKeyGenerator());
			Field[] fields=cls.getDeclaredFields();
			for(int i=0;i<fields.length;i++)
			{				
			DBField field=new DBField();
			//System.out.println(fields[i].getName());
			field.setName(fields[i].getName());
			field.setType(fields[i].getType().toString());
			table.addField(field.getName(),field);
			}
			this.add(cls.getName(),table);
			}	
		}
		catch(Exception e)
		{
			System.out.println("查询类对应的表失败:"+e);
			e.printStackTrace();
		}		
	}
	
	//System.out.println("字段数:"+table.getPoperty("cid")+table.getFields().size());
	if(table==null)logger.error("无法找到类"+cls.toString()+"所映射的关系表,请通确保配置文件中具有该类的配置信息或者"+cls.toString()+"实现IObject接口");
	return table;
}

public Map getMap() {
	return map;
}
public String findClass(String tableName)
{
	String className=DBObject.class.toString();
	Iterator it=map.keySet().iterator();
	while(it.hasNext())
	{
		String cls=(String)it.next();
		DBTable table=(DBTable)map.get(cls);
		if(table.getName().equals(tableName))
		{
			className=cls;
			break;
		}
	}	
	//System.out.println(className);
	return className;
}

}

⌨️ 快捷键说明

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