📄 geodatabasecastororacle.java
字号:
_metadataList = new ArrayList();
while (listDesc.hasMoreElements()) {
JDOClassDescriptor cd = (JDOClassDescriptor)listDesc.nextElement();
Metadata metadataElt = new Metadata();
metadataElt.setClassName(cd.getJavaClass().getName());
metadataElt.setTableName(cd.getTableName());
if (cd.getIdentity() != null) {
JDOFieldDescriptor fd = (JDOFieldDescriptor)cd.getIdentity();
metadataElt.setIdColumnName(fd.getSQLName()[0]);
} else _writer.println("WARNING - classe sans identifiant : "+cd.getJavaClass().getName());
_metadataList.add(metadataElt);
}
// on recupere les parametres de la table user_sdo_geom_metadata d'Oracle
SpatialQuery.initGeomMetadata(_metadataList, _conn) ;
} catch (Exception e) {
e.printStackTrace();
}
*/ }
/////////////////////////////////////////////////////////////////////////////////////////
///// gestion des transactions //////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
/** Ouvre une transaction. */
public void begin() {
/* try {
_db.begin();
} catch (Exception e) {
e.printStackTrace();
}
*/ }
/** Commit la transaction sans la fermer. */
public void checkpoint() {
/* try {
_db.commit();
_db.begin();
} catch (Exception e) {
e.printStackTrace();
}
*/ }
/** Commite et ferme la transaction. */
public void commit() {
/* try {
_db.commit();
} catch (Exception e) {
e.printStackTrace();
}
*/ }
/** Annule et ferme la transaction. */
public void abort() {
/* try {
_db.rollback();
} catch (Exception e) {
e.printStackTrace();
}
*/ }
/** Renvoie true si la transaction est active. */
/* public boolean isOpen() {
return _db.isActive();
}*/
/** Ferme la connection (libere les ressources). */
public void close() {
/* try {
_db.close();
} catch (Exception e) {
e.printStackTrace();
}
*/ }
/** NON IMPLEMENTE */
public void clearCache() {
System.out.println("clearCache() : fonction non implementee pour Castor");
}
/////////////////////////////////////////////////////////////////////////////////////////
///// gestion de la persistance /////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
/** Rend persistant un objet.
A appeler a l'interieur d'une transaction ouverte.*/
public void makePersistent(Object obj) {
/* try {
_db.create(obj);
} catch (Exception e) {
e.printStackTrace();
}
*/ }
/** Detruit un objet persistant.
A appeler a l'intwrieur d'une transaction ouverte. */
public void deletePersistent(Object obj) {
/* try {
_db.remove(obj);
} catch (Exception e) {
e.printStackTrace();
}
*/ }
/////////////////////
/** A REVOIR (encapsuler dans le makePersistent). */
/* public void update(java.lang.Object obj) throws org.exolab.castor.jdo.ClassNotPersistenceCapableException, org.exolab.castor.jdo.TransactionNotInProgressException, org.exolab.castor.jdo.PersistenceException {
_db.update(obj);
}
*/
/////////////////////////////////////////////////////////////////////////////////////////
///// chargement d'objets ///////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
/** Charge l'objet d'identifiant id.
Passer un Integer pour id, si l'identifiant est un int.
Renvoie null si l'objet d'identifiant id n'existe pas.*
A appeler a l'interieur d'une transaction ouverte. */
/* public java.lang.Object load(Class clazz, Object id) {
try {
Object obj = _db.load(clazz,id);
return obj;
} catch (org.exolab.castor.jdo.ObjectNotFoundException e) {
System.out.println("objet non trouve - id = "+id);
return null;
} catch (Exception ee) {
ee.printStackTrace();
return null;
}
} */
/** Charge tous les objets persistants de la classe theClass et les met dans une liste.
A appeler a l'interieur d'une transaction ouverte. */
/* public List loadAll(Class theClass) {
List result = new ArrayList();
QueryResults results;
OQLQuery oql;
try {
oql = _db.getOQLQuery("SELECT x FROM "+theClass.getName()+" x");
results = oql.execute();
while (results.hasMore()) { result.add(results.next());}
} catch (Exception e) {
e.printStackTrace();
}
return result;
} */
/** Charge tous les FT_Feature de la classe theClass.
A appeler a l'interieur d'une transaction ouverte.
La classe theClass doit etre une sous-classe de FT_Feature, sinon renvoie une liste vide. */
/* public FT_FeatureCollection loadAllFeatures(Class featureClass, Class featureListClass) {
// FT_FeatureList result = new FT_FeatureList();
FT_FeatureCollection result = null;
try {
result = (FT_FeatureCollection)featureListClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
QueryResults results;
OQLQuery oql;
if ((FT_Feature.class).isAssignableFrom(featureClass)) {
try {
String tableName = getMetadata(featureClass).getTableName();
oql = _db.getOQLQuery("SELECT x FROM "+featureClass.getName()+" x");
results = oql.execute();
while (results.hasMore()) { result.add((FT_Feature)results.next());}
} catch (Exception e) {
e.printStackTrace();
}
} else {
_writer.println("loadAllFeatures() : La classe passee en parametre n'est pas une sous-classe de FT_Feature");
}
return result;
}*/
/** OBSOLETE Inactif avec Castor (renvoie un loadAllFeatures). */
/* public FT_FeatureList expressLoadAllFeatures(Class theClass) {
return loadAllFeatures(theClass);
}*/
/** OBSOLETE Charge tous les FT_Feature de la classe theClass appartenant a une dalle.
La table doit avoir ete mise en coherence avec un dallage existant.
A appeler a l'interieur d'une transaction ouverte.
La classe theClass doit etre une sous-classe de FT_Feature, sinon renvoie une liste vide. */
/* public FT_FeatureList loadAllFeatures(Class theClass, int dalleNumber) {
FT_FeatureList result = new FT_FeatureList();
QueryResults results;
OQLQuery oql;
if ((FT_Feature.class).isAssignableFrom(theClass)) {
try {
oql = _db.getOQLQuery("SELECT x FROM "+theClass.getName()+" x WHERE x.dalle_id="+dalleNumber);
results = oql.execute();
while (results.hasMore()) { result.add((FT_Feature)results.next());}
} catch (Exception e) {
e.printStackTrace();
}
} else {
_writer.println("loadAllFeatures() : La classe passee en parametre n'est pas une sous-classe de FT_Feature");
}
return result;
} */
/** Charge tous les FT_Feature de la classe theClass intersectant le GM_Object geom.
A appeler a l'interieur d'une transaction ouverte.
La classe theClass doit etre une sous-classe de FT_Feature, sinon renvoie une liste vide. */
/* public FT_FeatureCollection loadAllFeatures(Class featureClass, Class featureListClass, GM_Object geom) {
// FT_FeatureList result = new FT_FeatureList();
FT_FeatureCollection result = null;
try {
result = (FT_FeatureCollection)featureListClass.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
if ((FT_Feature.class).isAssignableFrom(featureClass)) {
// on cherche la liste des identifiants
List idList = SpatialQuery.FT_FeatureCollection(this, featureClass, geom);
// charge tous les objets dont on a trouve l'identifiant
Iterator i = idList.iterator();
while (i.hasNext()) {
int k = ((BigDecimal)i.next()).intValue();
try {
Object obj = _db.load(featureClass, new Integer(k));
result.add((FT_Feature)obj);
} catch (Exception e) {
e.printStackTrace();
}
}
} else {
_writer.println("loadAllFeatures() : La classe passee en parametre n'est pas une sous-classe de FT_Feature");
}
return result;
} */
/** Charge tous les FT_Feature de la classe theClass a une distance dist du GM_Object geom.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -