Arhn - архитектура программирования

Получение Postgis/JDBC для работы с BoneCP в Spring

Итак, я использую BoneCP и создаю свой источник данных в Spring:

<bean id="baseDataSource" abstract="true" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
   <property name="driverClass" value="#{T(io.bigsense.spring.MySpring).dbDriver('${dbms}')}" />
   <property name="jdbcUrl" value="#{T(io.bigsense.spring.MySpring).dbConnectionString('${dbms}','${dbHostname}','${dbDatabase}','${dbPort}')}" />
   <property name="maxConnectionsPerPartition" value="${dbPoolMaxPerPart}"/>
   <property name="minConnectionsPerPartition" value="${dbPoolMinPerPart}"/>
   <property name="partitionCount" value="${dbPoolPartitions}"/>
   <property name="acquireIncrement" value="5"/>
   <property name="statementsCacheSize" value="100"/>
   <property name="releaseHelperThreads" value="3"/>
</bean>

Большинство этих значений поступают из файла свойств. В данном конкретном случае driverClass — это org.postgresql.Driver, а мой jdbcUrl — это jdbc:postgresql://[hostname]:[port]/[database], возвращаемый некоторыми пользовательскими функциями.

У меня установлен postgis на моем экземпляре postgres-9.4, и я нашел документацию, в которой говорится, что для отправки объектов Geography в Postgres через JDBC вам необходимо добавить типы данных в соединение:

import java.sql.*; 
import java.util.*; 
import java.lang.*; 
import org.postgis.*; 

...
  java.sql.Connection conn; 

  try { 
    Class.forName("org.postgresql.Driver"); 
    String url = "jdbc:postgresql://localhost:5432/database"; 
    conn = DriverManager.getConnection(url, "postgres", ""); 
    ((org.postgresql.Connection)conn).addDataType("geometry","org.postgis.PGgeometry")
;   ((org.postgresql.Connection)conn).addDataType("box3d","org.postgis.PGbox3d");

Мой вопрос: как мне это сделать с моей настройкой BoneCP? Если я сделаю getConnection() из своего источника данных BoneCP, я не смогу преобразовать его в org.postgresql.PGConnection, потому что его тип фактически соответствует типу com.jolbox.bonecp.ConnectionHandle.

Как настроить типы данных PostGIS с базовыми драйверами Postgres при использовании источника данных BoneCP, определенного в контексте приложения Spring?


Ответы:


1

Я обнаружил ответ. Мне нужно использовать класс postgis DriverWrapper: http://postgis.refractions.net/documentation/javadoc/org/postgis/DriverWrapper.html

16.06.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..