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

📄 geodatabasecastororacle.java

📁 用于GIS(全球地理系统)的分析和处理的代码。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            _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 + -