📄 dbmapping.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 + -