[Gvsig_desarrolladores] Registrar una nueva conexión a bd

Francisco Puga fpuga en icarto.es
Lun Jun 20 13:38:17 CEST 2016


Creo que no hice la pregunta correcta. Después de revisar la documentación
me un par de dudas. Lo que quiero es cargar por código varias capas de una
bd postgres.

Para ello hago algo de este estilo:

public DataStoreParameters getParams() throws DataException {
    DataManager dataManager = DALLocator.getDataManager();
  DataStoreParameters pgParameters = null;
  params = dataManager.createStoreParameters(PostgreSQLStoreProvider.NAME);
    params.setDynValue("host", SERVER);
    params.setDynValue("port", PORT);
  params.setDynValue("dbuser", USERNAME);
  params.setDynValue("password", PASSWORD);
params.setDynValue("dbname", DBNAME);
}

public FLyrVect createLayer(String schema, String table) throws
DataException, LoadLayerException {
  MapContextManager mapContextManager =
MapContextLocator.getMapContextManager();
  DataStoreParameters params = (DataStoreParameters) getParams().getCopy();
  FLayer layer = mapContextManager.createLayer(table, params);
  return (FLyrVect) layer;
}

El MapContextManager.createLayer por debajo hace una llamada a:

DataStore dataStore=dataManager.createStore(storeParameters);

Entiendo que* si llamo dos veces al createStore / openStore del DataManage
con los mismos datos básicos de la conexión a la bd (server, puerto, ...)
no se crea una conexión nueva *si no que se reaprovecha la existente.

Y la segunda cuestión es que *entiendo que la conexión (
JDBCServerExplorerParameters ) no se añade al pool automáticamente al hacer
un createStore si no que hay que añadir a mano* con algo tipo:

DataManager dataManager = DALLocator.getDataManager();
DataServerExplorerPool pool = dataManager.getDataServerExplorerPool();
pool.add(name, explorer);

Y lo último al utilizar DynObjects donde las claves están definidas
en DBParameters da la impresión de que *puedo usar un
JDBCServerExplorerParameters directamente como substituto de un
JDBCStoreParameters* la hacer el dataManager.createStore(storeParameters);.
Pero no lo he probado para ver si funciona y no se si es una buena práctica.


Gracias y disculpas por la chapa.


El 18 de junio de 2016, 13:06, Joaquin Jose del Cerro Murciano <
jjdelcerro en gvsig.org> escribió:

>
>
> El 17 de junio de 2016, 17:09, Francisco Puga <fpuga en icarto.es> escribió:
>
>> Hola,
>>
>> En la v1 las clases SingleDBConnectionManager o
>> SingleVectorialDBConnectionManager permitían crear o registrar una
>> conexión a una base de datos.
>>
>> ¿Hay algún equivalente en la v2?
>>
>> Algún ejemplo de como crear y registrar una conexión a una bd postgres
>> para luego cargar una capa por código sería genial :)
>>
>
> Hola Francisco.
>
> Me temo que no existe el equivalente en gvSIG 2.
>
> Lo mas parecido podria ser el DataServerExplorerPool (que se puede obtener
> a traves del DataManager); pero no es exactamente lo que quieres, ya que es
> un pool de DataServerExplorer mientras lo que entiendo que quieres es un
> pool de DataStore.
>
> Para la 2.3, tengo casi casi un pequeño script que le permitira al usuario
> mantener un "catalogo" de parametros de DataStore (el usuario simplemente
> lo ve como un catalogo de capas) que le permite añadir rapidamente una capa
> a la vista. Es posible que lo que precises sea eso, pero solo funcionara
> sobre la 2.3. Tiene un pequeño API a traves del ActionInfo que te permitira:
> - añadir una capa del catalogo a la vista activa
> - recuperar una capa del catalogo sin añadirla a la vista
> - recuperar un DataStore del catalogo
> - recuperar un DataStoreParameters del catalogo
> - añadir una capa al catalogo
> - añadir un DataStore al catalogo
> - añadir un DataStoreParameters al catalogo
>
> Pero me temo que no se podra empezar a probar hasta gvSIG 2.3 RC2.
>
> Un saludo
> Joaquin
>
>
>
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en listserv.gva.es
>> Para ver histórico de mensajes, editar sus preferencias de usuario o
>> darse de baja en esta lista, acuda a la siguiente dirección:
>> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>
>
>
>
> --
> --------------------------------------
> Joaquin Jose del Cerro Murciano
> Development and software arquitecture manager at gvSIG Team
> jjdelcerro en gvsig.com
> jjdelcerro en gvsig.org
> gvSIG Association
> www.gvsig.com
> www.gvsig.org
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente dirección:
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>


-- 
Francisco Puga
iCarto | Innovación, Cooperación, Cartografía y Territorio S.L.
http://www.icarto.es/

c/ Rafael Alberti nº 13 – 1º D
15008 A Coruña
Galicia (Spain)
+34 881927808

Este correo electrónico contiene información estrictamente confidencial y
es de uso exclusivo del destinatario, quedando prohibida a cualquier otra
persona su revelación, copia, distribución, o el ejercicio de cualquier
acción relativa a su contenido. Si ha recibido este mensaje por error, por
favor conteste a su remitente mediante correo electrónico y proceda a
borrarlo de su sistema.

Sus datos personales serán tratados de forma confidencial y no serán
cedidos a terceros ajenos a ICARTO. En cualquier caso, podrá ejercer los
derecho de oposición, acceso, rectificación y cancelación de acuerdo con lo
establecido en la Ley Orgánica 15/99, de 13 de diciembre, de Protección de
Datos de Carácter Personal dirigiéndose a Innovación, Cooperación,
Cartografía e Territorio, SL. (ICARTO) en la dirección postal a C/ Rafael
Alberti, nº 13, 1ºD, 15.008 – (A Coruña).
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20160620/48f56078/attachment.htm 


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