用于SaaS和NoSQL的Jdbi

一个自然的接口,用于与CRM,ERP,会计,营销自动化,NoSQL,平面文件等基于Java的数据集成

Jdbi是Java的SQL便利库,它为JDBC提供更自然的Java数据库接口,该接口易于绑定到域数据类型。 该库包含构建基块,使开发人员可以更轻松地映射应用程序内的关系和对象。

通常,Java开发人员会考虑使用Jdbi处理关系数据库。 但是,已经出现了新的JDBC驱动程序,可以通过各种SaaS,NoSQL和大数据存储提供实时数据连接,从而将Jdbi的适用性扩展到新一代项目。

以CData Software( www.cdata.com/jdbc/ )中的JDBC驱动程序为例 。 CData提供了纯Java JDBC驱动程序,可以实时访问应用程序源,例如Salesforce,NetSuite,Eloqua,Marketo,Dynamics,Hubspot以及其他100多个。 它们甚至提供与NoSQL数据源的SQL连接,例如MongoDB,Couchbase,Redis,Athena,BigQuery等。

利用这些驱动程序,Java开发人员可以轻松地将实时数据连接集成到他们的应用程序中。 本文的其余部分简要概述了如何使用用于Salesforce的CData JDBC驱动程序在Jdbi中为Salesforce数据创建SQL Object API。

Jdbi访问Salesforce

Jdbi公开了两种不同的样式API:流利的样式和SQL对象样式。 用于Salesforce的CData JDBC驱动程序将连接性集成到Java应用程序中的实时Salesforce数据。 通过将这些技术配对,您可以获得对Salesforce数据的简单编程访问。 以下代码逐步构建了用于读写Salesforce数据的基本数据访问对象(DAO)。

为Salesforce客户实体创建DAO

下面的接口为SQL对象声明了所需的行为,以便为每个要实施的SQL语句创建一个方法。

// 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的连接

收集必要的连接属性,并构建适当的JDBC URL以连接到Salesforce,该URL通常如下所示:

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

有多种身份验证方法可用于连接到Salesforce:

  • 登录
  • OAuth
  • 单点登录

登录方法要求您具有用户名,密码和安全令牌。 如果您无权访问用户名和密码,或者不想使用它们,则可以使用OAuth身份验证。

可以通过设置SSOProperties,SSOLoginUrl和TokenUrl连接属性来使用SSO(单点登录),这些属性允许您向身份提供者进行身份验证。 有关更多信息,请参见帮助文档中的“入门”一章。

使用配置的JDBC URL获取DAO接口的实例。 下面显示的特定方法将打开绑定到实例的句柄,因此需要显式关闭实例以释放该句柄和绑定的JDBC连接。

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的连接后,只需调用先前定义的方法即可从Salesforce中的Account实体检索数据。

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

写入Salesforce数据

使用先前定义的方法将数据写入Salesforce也很简单。

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

由于Jdbi库能够使用JDBC连接,因此您可以通过与用于Salesforce的CData JDBC驱动程序集成来轻松生成用于Salesforce的SQL Object API。

就这么简单

Jdbi提供了一个易于使用的数据界面,可以简化数据连接的复杂性。 与CData的JDBC驱动程序配合使用时,Jdbi提供了一个干净的对象接口,可以在您的下一个集成项目中使代码减少10倍或更多,同时还增强了可维护性和重用性。

有关Jdbi的更多信息,可以在线找到: http ://jdbi.org/

从CData网站下载免费试用版Salesforce JDBC驱动程序(以及100多个其他JDBC驱动程序): https ://www.cdata.com/jdbc/

翻译自: https://www.javacodegeeks.com/2018/04/jdbi-for-saas-nosql.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【卷积码系列3】(n,k,m)卷积码的维特比译码实现(不使用MATLAB库函数)及性能对比(vitdec函数不使用MATLAB库函数【全部代码需私信另外付费获取】)

理论基础 MATLAB库函数polly2trellis(卷积码生成多项式转网格图描述)的实现过程详解 上面这篇仅作为了解!!! 【卷积码系列1】(n,k,m)卷积码的编码原理详解及MATLAB实现 【卷积码系列2】(n,k,m)卷积码的生成多项式矩阵系数转网格图描述(不使用MATLAB库函数) 维特比译码曲…

Java批处理教程

在当今世界,互联网已经改变了我们的生活方式,其主要原因之一是大多数日常琐事都使用互联网。 这导致可用于处理的大量数据。 其中涉及大量数据的一些示例是处理工资单,银行对帐单,利息计算等。因此,请设想一下&#x…

编写junit 测试_使用JUnit和Repeat注​​释编写有效的负载测试

编写junit 测试EasyTest最近推出了一组新的注释,可帮助其用户编写有效的测试用例。 进入EasyTest的两个主要注释是: 重复 持续时间 今天,我们将讨论重复标注。 一种新的方法级别注释 重复已添加到EasyTest Framework。 此批注可用于重复…

【数字信号处理】基于DFT的滤波系列3之插值滤波(含MATLAB代码)

四、基于DFT的(理想)滤波 例2:一个“警告” “理想DFT滤波器”虽然简单、有效,但可能会导致意想不到的问题。在博客 【数字信号处理】基于DFT的滤波系列2(含MATLAB代码) 中,数据本身是理想的,由完美的谐波组成,这些谐波在频域中以单一频率理想地表示(无频谱泄漏),这…

【数字信号处理】基于DFT的滤波系列4之加窗(含MATLAB代码)

四、基于DFT的(理想)滤波 加窗以减少频谱泄漏 在上面的例子中,整数次谐波被用来产生理想中的示例。这意味着一个完整的整数周期适合正在使用的样本数。一个明显的问题是,如果使用非整数周期数(以及谐波)会怎样?答案是远没有那么有效。 在现实世界中,从这个意义上说,数…

【数字信号处理】基于DFT的滤波系列5之二维DFT滤波(含MATLAB代码)

五、二维DFT滤波 前几节介绍的用于对时间序列滤波的原理也可用于对图像的滤波,采用二维傅里叶变换技术。 下图为一幅图像的二维DFT(2D DFT)变换后的幅度值,该图像仅由一个恒定强度组成,因此它是0Hz分量——背景强度。在可视化 2D DFT 的结果时通常使用fftshift(),因此 DC…

Vaadin教程

1.简介 当您是后端开发人员时,您会听到人们说您无法创建内置HTML的UI页面并且无法使用CSS设置样式时所引起的痛苦。 就像成为后端开发人员一样,它具有已知的局限性,即我们可以播放和运行大型生产后端应用程序,但不能创建漂亮的页面…

jee web_您基于JEE的Web项目的结构是什么?

jee web在这篇文章中,我将尝试讨论基于Web的项目的各种组织结构,主要是使用JSF。 开始新项目时,首先想到的是如何组织Java包? 想象一下,您开发了一个基于Web的用户和组管理系统。 很长时间以来,我使用了以下…

开源mindmap_Java开发人员访谈的MindMap

开源mindmap多年来,我在许多Java开发人员的访谈中担任小组成员。 之前,我曾写过一篇标题为成功参加软件工程师技术面试的7大技巧的文章,其中涵盖了很少的一般准则。 在本文中,我将分享一个思维导图,其中包含Java开发人…

【数字信号处理】希尔伯特变换系列2之基于定向多普勒超声的胎儿心率监测(含MATLAB代码)

希尔伯特变换的应用 希尔伯特变换在许多工程应用中都有使用,此处主要介绍两种用法。 首先,它解决了多普勒超声胎儿心率监测器中出现的运动方向不明确的问题。第二,它与众所周知的解析信号联系起来了,在极坐标中,它能够找到信号的瞬时幅度和瞬时频率。 基于定向多普勒超…

轻松地与Java完全集成

这里介绍了如何编写完整的堆栈数据库Web应用程序,而无需使用SQL,HQL,PHP,ASP,HTML,CSS或Javascript,而是使用Vaadin的UI层和Speedment Stream ORM完全依赖Java。 是否曾经想过快速创建连接到您…

【自适应盲均衡11】基于Volterra级数的双线性CMA盲均衡算法与MATLAB仿真(采用16QAM信号模型)

结果预览 16QAM信号的星座图: 输入信号的星座图: Volterra-CMA盲均衡算法的MSE曲线: 均衡后的星座图: 一、Volterra级数 由于多方面的原因,Volterra级数模型是非线性系统广泛采用的模型。简单起见,本文仍采用线性系统进行测试。 Volterra级数展开是由非递归级数组成…

矩形和升余弦成型下OQPSK信号的调制与解调仿真(最大功率法定时)

关注公号【逆向通信猿】更精彩!!! 仿真结果预览 OQPSK矩形和升余弦成型误码率曲线: 关于QPSK信号的仿真在之前的博客里已经 一、OQPSK调制原理 在QPSK体制中,它的相邻码元最大相位差达到180。由于这样的相位突变在频带受限的系统中会引起信号包络的很大起伏,这是不希…

VB语言与测量程序设计之水准网平差程序(任务8-3含代码,完整工程文件见CSDN资源)

一、程序总体设计 二、程序界面设计 对象属性设置 三、程序代码 矩阵计算类代码 文件名:Matrix.cls 操作矩阵的类 Matrix Option Explicit Const eps As Double = 0.00000001 缺省精度 Dim nRo

Gradle教程

1.简介 在本课程中,我们将学习Gradle ,它是一个构建工具和一个依赖管理系统,与Maven和Ant非常相似,并且是专门为构建基于Java的项目而设计的。 与Maven和Ant构建系统不同,Gradle不使用XML。 它实际上是基于Groovy构建…

【定时同步系列6】Gardener误差检测算法原理

关注公号【逆向通信猿】更精彩!!! 引言 离散时间符号定时同步方法 如下图所示为比较常用的一种符号定时同步的离散时间方法,通常由三个基本单元组成离散时间锁相环,分别为:定时误差检测器(TED)、环路滤波器和插值控制。其中,插值器和TED作用相当于鉴相器,插值控制相…

【数字信号处理】卷积和乘法系列3之测不准原理

关注公号【逆向通信猿】更精彩!!! 声明:底部的小广告标签并不是博主所加!! Heisenberg测不准原理 信息在时域中的扩展(尖峰之间的距离)与其在频域中的对应扩展之间的这种关系是Heisenberg不确定性原理的一个例子。时域中的扩展(方差)乘以频域中的扩展具有不能被突破的…

【数字信号处理】卷积和乘法系列3之傅里叶变换对II

关注公号【逆向通信猿】更精彩!!! 声明:底部的小广告标签并不是博主所加!! 采样 傅里叶变换对(FT)很重要的原因是,如果有一个连续时间 (CT) 信号,则可以通过将信号乘以梳状函数来对其进行采样,产生的样本将只是尖峰处的值。采样过程产生离散时间 (DT) 信号,因为采…

【定时同步系列8】QPSK基带调制+Gardener定时误差检测+解调误码率曲线之MATLAB并行仿真姊妹篇一

结果预览 误码率曲线 关于反馈型定时同步技术的原理已经陆陆续续讨论了好久了,涉及的各个细节内容较多,且不容易理解,整个流程框图如下所示: 符号定时同步的离散时间方法(异步) 其中, interpolator模块在博客: 【定时同步系列5】Farrow内插器结构原理和MATLAB实现 TED模…

eclipse 隐藏项目_前5个有用的隐藏Eclipse功能

eclipse 隐藏项目Eclipse是野兽。 仅凭其力量才能超越其神秘感的设备。 有人将其称为连续体跨功能器 。 其他人则称它为透湿器 。 是的,它是如此之大,需要花费数年才能掌握。 然后,您的经理出现并告诉您:我们正在使用NetBeans。 …