📄 dbmapping.java
字号:
package com.easyjf.dbo;
import org.apache.log4j.*;
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 DBMapping {
private final static Logger logger = Logger.getLogger(DBMapping.class);
private final static DBMapping dbmapping = new DBMapping();
private final static Map map = new HashMap();
// ~--- methods ------------------------------------------------------------
/**
* 增加DBMapping
*
* @param className
* String 类
* @param table
* DBTable 表
*/
public void add(Class clz, DBTable table) {
map.put(clz, table);
}
/**
* 查找
*
* @param tableName
* String
* @return String
*/
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;
}
/**
* 根据Class查找DBTable对象
*
* @param cls
* Class
* @return DBTable
*/
public DBTable findTable(Class cls) {
if(DBObject.class==cls)return null;
DBTable table = (DBTable) map.get(cls);
if (table == null) {
logger.info("找不到数据库映射" + cls.toString() + ",试着从子类中查找!");
table = findTableByClass(cls);
if (table == null) {
logger.info("找不到数据库映射" + cls.toString() + ",试着从注解或IObject对象查找!");
table = TableMappingParse.parseDomain(cls);
}
if (table != null)
this.add(cls, table);
}
// System.out.println("字段数:"+table.getPoperty("cid")+table.getFields().size());
if (table == null) {
logger.error("无法找到类" + cls.toString()
+ "所映射的关系表,请通确保配置文件中具有该类的配置信息或者" + cls.toString()
+ "实现IObject接口");
}
return table;
}
private DBTable findTableByClass(Class cls) {
DBTable table = null;
java.util.Iterator it = this.map.entrySet().iterator();
while (it.hasNext()) {
java.util.Map.Entry en = (java.util.Map.Entry) it.next();
Class clz = (Class) en.getKey();
if (clz.isAssignableFrom(cls))
table = (DBTable) en.getValue();
}
return table;
}
/**
* 根据从MAP删除class
*
* @param className
* String
*/
public void remove(String className) {
map.remove(className);
}
// ~--- get methods --------------------------------------------------------
/**
* 获取当前接口
*
* @return DBMapping
*/
public static DBMapping getInstance() {
return dbmapping;
}
/**
*
* @return Map
*/
public Map getMap() {
return map;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -