Статьи

JDBI для SaaS & NoSQL

Естественный интерфейс для интеграции данных на основе Java с CRM, ERP, бухгалтерией, автоматизацией маркетинга, NoSQL, плоскими файлами и многим другим

Jdbi — это удобная библиотека SQL для Java, которая предоставляет JDBC более естественный интерфейс базы данных Java, который легко привязать к типам данных домена. Библиотека включает в себя строительные блоки, которые позволяют разработчикам легче сопоставлять отношения и объекты в приложениях.

Часто разработчики Java думают об использовании Jdbi для работы с реляционными базами данных. Тем не менее, появились новые драйверы JDBC, обеспечивающие возможность оперативной передачи данных из различных хранилищ SaaS, NoSQL и больших данных, которые расширяют применимость Jdbi для проектов нового поколения.

Взять, к примеру, драйверы JDBC от CData Software ( www.cdata.com/jdbc/ ). CData предлагает чистые драйверы Java JDBC с доступом в режиме реального времени к источникам приложений, таким как Salesforce, NetSuite, Eloqua, Marketo, Dynamics, Hubspot и более чем 100+ других. Они даже обеспечивают подключение SQL к источникам данных NoSQL, таким как MongoDB, Couchbase, Redis, Athena, BigQuery и т. Д.

Используя эти драйверы, разработчики Java могут легко интегрировать подключение живых данных в свои приложения. В оставшейся части этой статьи дается краткий обзор создания API объекта SQL для данных Salesforce в Jdbi с использованием драйвера JDBC CData для Salesforce.

Доступ Jdbi к Salesforce

Jdbi предоставляет два разных API стиля: свободный стиль и стиль объекта SQL. Драйвер CData JDBC для Salesforce интегрирует подключение к действующим данным Salesforce в приложениях Java. Сопрягая эти технологии, вы получаете простой программный доступ к данным Salesforce. В следующем коде описывается создание базового объекта доступа к данным (DAO) для чтения и записи данных Salesforce.

Создайте DAO для учетной записи Salesforce

Приведенный ниже интерфейс объявляет желаемое поведение объекта SQL, чтобы создать отдельный метод для каждого оператора SQL, который будет реализован.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
// JavaScript source code
public interface MyAccountDAO {
  //insert new data into Salesforce
@SqlUpdate("INSERT INTO Account (Name, AnnualRevenue) values (:name, :annualRevenue)")
  void insert(@Bind("name") String name, @Bind("annualRevenue") String annualRevenue);
  
  //request specific data from Salesforce (String type is used for simplicity)
@SqlQuery("SELECT AnnualRevenue FROM Account WHERE Name = :name")
  String findAnnualRevenueByName(@Bind("name") String name);
  
  /*
  * close with no args is used to close the connection
  */
  void close();
}

Откройте соединение с Salesforce

Соберите необходимые свойства подключения и создайте соответствующий URL JDBC для подключения к Salesforce, который обычно будет выглядеть следующим образом:

1
jdbc:salesforce:User=username;Password=password;SecurityToken=Your_Security_Token;

Для подключения к Salesforce доступно несколько методов аутентификации:

  • Авторизоваться
  • OAuth
  • SSO

Метод входа требует, чтобы у вас были имя пользователя, пароль и маркер безопасности пользователя. Если у вас нет доступа к имени пользователя и паролю или вы не хотите их запрашивать, вы можете использовать аутентификацию OAuth.

SSO (единый вход) можно использовать, задав свойства соединения SSOProperties, SSOLoginUrl и TokenUrl, которые позволяют выполнять аутентификацию для поставщика удостоверений. См. Главу «Начало работы» в справочной документации для получения дополнительной информации.

Используйте настроенный URL JDBC для получения экземпляра интерфейса DAO. Конкретный метод, показанный ниже, откроет дескриптор, связанный с экземпляром, поэтому экземпляр необходимо явно закрыть, чтобы освободить дескриптор и связанное соединение JDBC.

1
2
3
4
5
DBI dbi = new DBI("jdbc:salesforce:User=username;Password=password;SecurityToken=Your_Security_Token;");
MyAccountDAO dao = dbi.open(MyAccountDAO.class);
 
//do stuff with the DAO
dao.close();

Читать данные Salesforce

Открыв соединение с Salesforce, просто вызовите ранее определенный метод для извлечения данных из сущности Account в Salesforce.

1
2
3
//display the result of our 'find' method
String annualRevenue = dao.findAnnualRevenueByName("GenePoint");
System.out.println(annualRevenue);

Запись данных Salesforce

Также легко записывать данные в Salesforce, используя ранее определенный метод.

1
2
//add a new entry to the Account entity
dao.insert(newName, newAnnualRevenue);

Поскольку библиотека Jdbi может работать с соединениями JDBC, вы можете легко создать API объектов SQL для Salesforce путем интеграции с драйвером JDBC CData для Salesforce.

Это так просто

Jdbi предоставляет простой в использовании интерфейс данных, который может упростить сложность подключения к данным. В сочетании с драйверами JDBC от CData Jdbi обеспечивает чистый интерфейс объекта, который может способствовать уменьшению кода в 10 и более раз в вашем следующем проекте интеграции, одновременно повышая удобство сопровождения и повторного использования.

Более подробную информацию о Jdbi можно найти в Интернете по адресу: http://jdbi.org/

Загрузите бесплатную пробную версию драйвера Salesforce JDBC (и более 100 дополнительных драйверов JDBC) с веб-сайта CData: https://www.cdata.com/jdbc/