Re: [Gvsig_desarrolladores] Creación de intervalos en TOC y pintar de colores la vista

Javier López jlopezviso en gmail.com
Jue Ago 2 10:48:57 CEST 2007


Buenos días Jaume,

Lo que tengo que hacer es por código. Te explico, a través de una web
insertan en una MySQL datos de encuestas por municipios y yo lo que hago en
gvSIG es representar datos estadísticos de dichas encuestas, y lo hago
creando leyendas por intervalos en la capa (un shape de municipios). Por eso
tiene que ser dinámico, porque los datos estadísticos de cada municipio los
tengo que generar dinámicamente de la BBDD por cada código de municipio, y
con éste haré la unión con la tabla del shape.

Para ello lo que he pensado es crear una tabla en el proyecto cada vez que
consulte a la BBDD y hacer la union de la de la capa con ésta. Pero aquí
tengo el problema, ayer me llevé toda la tarde intentando crear la tabla
(resultante de una consulta a la BBDD MySQL) y no fuí capaz, porque no
encontraba el driver. Pongo el código a continuación:

        Connection conn = GestorConexiones.getConnection();

        System.out.println(conn.isClosed());

        String name = "mi_tabla";
        String driverInfo="com.mysql.jdbc.Driver"; //"gdbms dbf driver";//"
com.mysql.jdbc.Driver";

        //Tiene que ser un new Driver, pq con el driver del dbf (el
comentado) no falla pero no encuentra la tabla

        System.out.println(driverInfo);

        //ConcreteMemoryDriver driver = new ConcreteMemoryDriver();
        //LayerFactory.getDataSourceFactory().getd

        LayerFactory.getDataSourceFactory().addDBDataSourceBySQL(name, conn,
"select * from encuesta", driverInfo);

        System.out.println("LLEGA");

        DataSource dataSource = LayerFactory.getDataSourceFactory
().createRandomDataSource(name,DataSourceFactory.AUTOMATIC_OPENING);

        System.out.println("NO LLEGA");

           SelectableDataSource sds = new SelectableDataSource(dataSource);
        EditableAdapter auxea = new EditableAdapter();
        auxea.setOriginalDataSource(sds);

        ProjectTable projectTable = ProjectFactory.createTable(name,auxea);

        ProjectExtension ext = (ProjectExtension)
PluginServices.getExtension(ProjectExtension.class); ext.getProject
().addDocument(projectTable);


FALLA en createRandomDataSource, porque dice que no encuentra el driver, he
consultado también todos los drivers que hay en
LayerFactory.getDataSourceFactory() y el único que hay es el de la conexión
al dbf del shape.

¿Qué driver le tengo que indicar a
"LayerFactory.getDataSourceFactory().addDBDataSourceBySQL(name,
conn, "select * from encuesta", driverInfo); "? Me imagino que el driver de
mysql, pero tendré que crear un nuevo driver en el proyecto, para conexion a
la mysql.

Por favor si me podeis ayudar en esto os lo agradecería mucho ¿Como traerme
al proyecto datos de una BBDD mysql? necesito saber que clases usar. El
código de arriba lo he adaptado de una pregunta que hicieron en la lista de
desarrolladores, pero en la misma creaban una tabla a partir de un dbf, y el
driver lo creaban como DBFDriver, pero yo no tengo ninguna clase
MySQLDriver.

Espero vuestra ayuda.

Un saludo,



El día 2/08/07, jaume domínguez faus <jaume.dominguez en iver.es> escribió:
>
> Hola Javier, disculpa la tardanza.
>
> Bueno, el manual está disponible en la misma página web del proyecto, en
> la sección de Documentación. Te hablo del manual de usuario.
> (http://www.gvsig.gva.es/index.php?id=documentacion-gvsig)
>
> En la página 203, se describe como crear una unión entre tablas. Hasta
> aquí, nada de código. Cuando tengas la unión hecha, deberías de guardar
> el proyecto para no tener que estar contínuamente haciendolo. Y
> entonces, ya operar con la tabla normalmente ya por código o como
> desees. Aunque si la leyenda no va a cambiar, ni siquiera deberías
> necesitar programar, ya que todos esto se guarda en el proyecto.
>
> Si por las razones que sea, prefieres hacer todo esto por código, pues
> quizá con el debugger ver paso a paso qué se hace cuando abres un
> proyecto con todo lo que necesitas ya configurado. Pero a priori parece
> más sencillo enfocar el problema como usuario que como desarrollador.
>
> Nos cuentas como te va.
>
> Gracias!
>
> Javier López wrote:
> > Hola Jaume,
> >
> > Efectivamente, eso es lo que quiero hacer, el join entre la tabla
> > asociada a la capa y algunas de la BBDD, pero como puedo hacer
> > esto???, perdona pero es que estoy empezando con gvSIG y no tengo
> > documentación, por lo que no sé por donde guiarme. Solo realizé el
> > proyecto de pruebas para hacer nuevas extensiones que hay en la web.
> > Si puedes decirme donde obtener documentación de la api de gvSIG te lo
> > agradecería.
> >
> > Me dices que tenga abierta la tabla de la base de datos y la de la
> > capa, y luego hacer el join, pero que coja el manual. Me podrías decir
> > como conseguir ese manual???
> >
> > Es que ayer para encontrar como crer nuevos símbolos para la leyenda
> > me tuve que pelear bastante con las clases sin manual ninguno.
> >
> > Muchas gracias y un saludo,
> > Javier
> >
>
>
> --
> Jaume Dominguez Faus
>
>
> Àrea de Software Lliure
> Equip gvSIG
> Iver TI
> C. Salamanca, 52
> 46005 València
> Telf: 902 25 25 40 Fax: 96 316 27 16
> (Spain)
>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20070802/9c2fbd49/attachment-0001.htm


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