一个自然的接口,用于与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