[Gvsig_desarrolladores] adicinar una capa postgis por codigo

fsalas fsalas en geocuba.cu
Vie Ene 9 09:07:40 CET 2009


saludos a todos,

alguien pudiera orientarme como adicionar una capa postgis por codigo. al parecer todavia no logro entender la filosofia de programacion con eclipse para gvSIG porque estoy leyendo la documntacion "anadir-una-capa-por-codigo.html" y no logro hacer que me funcione.

Al ejemplo de extencion extWorkshop  le realice esta modificacion" Mi objetivo con este ejemplo es cuando de clic en el boton se agregue al mapa la capa "provin" , esta capa la construi con shp2pgsql utilizando el fichero provin.shp 

package org.gvsig.workshop;

import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;


import org.geotools.data.DataSourceException;
import org.geotools.data.DataStore;
import org.geotools.data.FeatureSource;
import org.geotools.data.postgis.PostgisDataStore;
import org.geotools.data.postgis.PostgisDataStoreFactory;

import com.iver.cit.gvsig.fmap.drivers.ConnectionFactory;
import com.iver.cit.gvsig.fmap.drivers.ConnectionJDBC;
import com.iver.cit.gvsig.fmap.drivers.DBException;
import com.iver.cit.gvsig.fmap.drivers.DBLayerDefinition;
import com.iver.cit.gvsig.fmap.drivers.IConnection;
import com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver;

import com.iver.andami.plugins.Extension;

public class HelloWorldExtension extends Extension{

 public void initialize() {
 }

    protected void addLayer_PostGIS() 
    {
   
String dburl = "jdbc:postgresql://localhost/bdprovin";
String dbuser = "postgres";
String dbpass = "postgres";
String dbtable = "provin"; 
IConnection conn = null;
System.out.println("Creating JDBC connection...");
Class.forName("org.postgresql.Driver");
conn = ConnectionFactory.createConnection(dburl, dbuser, dbpass);

((ConnectionJDBC)conn).getConnection().setAutoCommit(false);

DBLayerDefinition lyrDef = new DBLayerDefinition();
lyrDef.setName(dbtable);
lyrDef.setTableName(dbtable);
lyrDef.setWhereClause("");
String[] fields = {"nom_provin", "gid"};
lyrDef.setFieldNames(fields);
lyrDef.setFieldGeometry("the_geom");
lyrDef.setFieldID("gid");

Statement st = ((ConnectionJDBC)conn).getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    rsGood = st.executeQuery("SELECT NOM_PROVIN, GID FROM " + dbtable           + " ORDER BY GID");
    driver.setData(conn, lyrDef);
}
catch (Exception e){
    e.printStackTrace();
}
      //  }

 
 
 public void execute(String actionCommand) {
  
 // JOptionPane.showMessageDialog(null, "Hello World!!");
  addLayer_PostGIS();
          
 }

 public boolean isEnabled() {
  return true;
 }

 public boolean isVisible() {
  return true;
 }

}

********************************

Como error me da Unhandled exception type ClassNotFoundException, en la linea Statement st , pero si le pongo comentario 
aparece en varios lugares más 

¿ Que me esta faltando por declarar o configurar para que funcione ok?

¿ Donde puedo ver un codigo que sea adicionar una capa postgis por codigo y que incluya las importaciones necesarias para que esto funcione.

saludos Salas 






___________________________________
Dpto de Sistemas Informáticos
Oficina Central Grupo Empresarial GEOCUBA
Este mensaje esta libre de virus. 
Revisado por Kaspersky Antivirus
----------------------------------------------------------------------
Engine version:  4.0.1.14
Engine date:  2002/06/25
Definition count:  1427809
Definition date:  2009/01/09
MDAV version: 2.2.8

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20090109/9ad2b421/attachment.htm


Más información sobre la lista de distribución gvSIG_desarrolladores