?? 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 + -