Java中带有NetSuite数据实体的对象关系映射(ORM)

对象关系映射(ORM)技术使使用关系数据源更容易,并且可以将逻辑业务模型与物理存储模型联系在一起。 遵循本教程,将与NetSuite数据的连接集成到基于Java的ORM框架Hibernate中。

您可以使用Hibernate将面向对象的域模型映射到传统的关系数据库。 下面的教程显示了如何使用NetSuite的CData JDBC驱动程序通过Hibernate生成NetSuite存储库的ORM。

尽管Eclipse是本文的首选IDE,但是NetSuite的CData JDBC驱动程序可在任何支持Java运行时环境的产品中使用。 在知识库中,您将找到从IntelliJ IDEA和NetBeans连接到NetSuite数据的教程。

安装休眠

请按照以下步骤在Eclipse中安装Hibernate插件。

  1. 在Eclipse中,导航到“帮助”->“安装新软件”。
  2. 在“使用方式”框中输入“ http://download.jboss.org/jbosstools/neon/stable/updates/”。
  3. 在过滤器框中输入“休眠”。
  4. 选择休眠工具。
对象关系映射

开始一个新项目

请按照以下步骤在新项目中添加驱动程序JAR。

  1. 创建一个新项目。 选择Java Project作为您的项目类型,然后单击Next。 输入项目名称,然后单击完成。
  2. 右键单击项目,然后单击属性。 单击“ Java构建路径”,然后打开“库”选项卡。
  3. 单击“添加外部JAR”以添加cdata.jdbc.netsuite.jar库,该库位于安装目录的lib子文件夹中。

添加休眠配置文件

请按照以下步骤配置NetSuite数据的连接属性。

  1. 右键单击新项目,然后选择新建->休眠->休眠配置文件(cfg.xml)。
  2. 选择src作为父文件夹,然后单击“下一步”。
  3. 输入以下值:
    • 休眠版本 :5.2
    • 数据库方言 :Derby
    • 驱动程序类 :cdata.jdbc.netsuite.NetSuiteDriver
    • 连接URL :一个JDBC URL,以jdbc:netsuite:开头 ,后跟以分号分隔的连接属性列表。“身份验证”部分下的“用户”和“密码”属性必须设置为有效的NetSuite用户凭据。 此外,必须将AccountId设置为指定用户可以使用的公司帐户的ID。 可以选择指定RoleId来以有限的权限登录用户。有关连接到NetSuite的更多信息,请参见帮助文档的“入门”一章。内置连接字符串设计器有关构造JDBC URL的帮助,请使用连接NetSuite JDBC驱动程序内置的字符串设计器。 双击JAR文件或从命令行执行jar文件。
java -jar cdata.jdbc.netsuite.jar

填写连接属性,然后将连接字符串复制到剪贴板。

对象关系映射

典型的JDBC URL如下:

jdbc:netsuite:Account Id=XABC123456;Password=password;User=user;Role Id=3;Version=2013_1;

将Hibernate连接到NetSuite数据

请按照以下步骤选择在上一步中创建的配置。

  1. 切换到“ Hibernate配置”透视图:窗口->打开透视图->休眠。
  2. 右键单击“休眠配置”面板,然后单击“添加配置”。
  3. 将Hibernate版本设置为5.2。
  4. 单击浏览按钮,然后选择项目。
  5. 对于“配置文件”字段,单击设置->使用现有文件,然后选择hibernate.cfg.xml文件的位置(在此演示中的src文件夹中)。
  6. 在“类路径”选项卡中,如果“用户条目”下没有任何内容,请单击“添加外部JARS”,然后再次添加驱动程序jar。 配置完成后,单击“确定”。
  7. 展开新创建的Hibernate配置文件的Database节点。
对象关系映射

逆向工程师NetSuite数据

请按照以下步骤生成reveng.xml配置文件。 您将要访问的表指定为对象。

  1. 切换回Package Explorer。
  2. 右键单击您的项目,选择新建-> Hibernate-> Hibernate反向工程文件(reveng.xml)。 点击下一步。
  3. 选择src作为父文件夹,然后单击“下一步”。
  4. 在控制台配置下拉菜单中,选择上面创建的Hibernate配置文件,然后单击刷新。
  5. 展开节点,然后选择要反向工程的表。 完成后,单击“完成”。
对象关系映射

配置休眠以运行

请按照以下步骤为NetSuite表生成简单的旧Java对象(PO​​JO)。

  1. 从菜单栏中,单击运行->休眠代码生成->休眠代码生成配置。
  2. 在控制台配置下拉菜单中,选择在上一节中创建的Hibernate配置文件。 单击“按输出浏览目录”,然后选择src。
  3. 从JDBC连接启用反向工程师复选框。 单击设置按钮,单击使用现有文件,然后选择hibernate.reveng.xml文件的位置(在此演示中的src文件夹中)。
  4. 在“导出器”选项卡中,选中“域代码(.java)”和“ Hibernate XML映射”(hbm.xml)。
  5. 单击运行。

根据上一步中的逆向工程设置创建一个或多个POJO。

插入映射标签

对于生成的每个映射,您将需要在hibernate.cfg.xml中创建一个映射标记,以将Hibernate指向您的映射资源。 打开hibernate.cfg.xml并按以下方式插入映射标记:

<hibernate-configuration>
<session-factory name="">
<property name="hibernate.connection.driver_class">
cdata.netsuite.NetSuiteDriver
</property>
<property name="hibernate.connection.url">
jdbc:netsuite:Account Id=XABC123456;Password=password;User=user;Role Id=3;Version=2013_1;<!--?xml version="1.0" encoding="UTF-8"?-->
</property>
<property name="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</property><mapping resource="SalesOrder.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>

执行SQL

现在,使用在上一步中创建的实体,您可以搜索和修改NetSuite数据:

import java.util.*;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;public class App {
public static void main(final String[] args) {
Session session =  new
Configuration().configure().buildSessionFactory().openSession();
String SELECT = "FROM SalesOrder S WHERE Class_Name = :Class_Name";
Query q = session.createQuery(SELECT, SalesOrder.class);
q.setParameter("Class_Name","Furniture : Office");
List<SalesOrder> resultList = (List<SalesOrder>) q.list();for(SalesOrder s: resultList){
System.out.println(s.getCustomerName());
System.out.println(s.getSalesOrderTotal());}}
}

准备开始了吗?

了解有关用于NetSuite的CData JDBC驱动程序的更多信息,或下载免费试用版:


翻译自: https://www.javacodegeeks.com/2019/06/object-mapping-netsuite-data-entities-java.html

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

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

相关文章

vmware中ubuntu虚拟机扩容

两种扩容方式&#xff1a; 重新创建一块虚拟硬盘 扩大原来的硬盘&#xff1a;如果装系统时没有进行手动分区&#xff0c;系统只有两个分区&#xff08;根分区和交换分区&#xff09;&#xff0c;这种情况我们直接扩展根分区的大小。 我们是为了解决当前用户空间不够的问题&…

pat 乙级 1021 个位数统计(C++)

题目 给定一个 k 位整数 Nd​k−1​​10​k−1​​⋯d​1​​10​1d​0(0≤d​i≤9, i0,⋯,k−1, d​k−1>0)&#xff0c;请编写程序统计每种不同的个位数字出现的次数。例如&#xff1a;给定 N100311&#xff0c;则有 2 个 0&#xff0c;3 个 1&#xff0c;和 1 个 3。 输…

该虚拟机似乎正在使用

该虚拟机似乎正在使用 点击获取所有权&#xff0c;此时虚拟机还是不能打开。 打开Vmware虚拟机虚拟磁盘文件和配置文件存放的位置 删除后缀为.lck的文件夹 然后开启此虚拟机就可以啦

PAT 乙级(Basic Level) 题解汇总(持续更新)(C++)

前言 为了准备3月份的CCF CSP认证&#xff0c;以及提升自己的编程能力和数据结构与算法基础&#xff0c;目前我坚持每天刷pat乙级题库&#xff0c;然后记录在CSDN。一则&#xff0c;希望夯实我做过的题和学到的东西&#xff1b;二则&#xff0c;希望对和我一样的小伙伴有些许帮…

反射是最重要的Java API

前几天我在想-这是最重要的Java API。 哪种SE和EE API可以使大多数Java生态系统成为可能&#xff0c;而哪些API不能刚刚被重新创建为第三方库。 正如您可能已经猜到标题一样&#xff0c;我认为它是Reflection API 。 是的&#xff0c;它不可避免地是每个项目的直接或间接的一部…

Wireshark常用过滤使用方法

过滤源ip、目的ip。 在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包&#xff0c;ip.dst192.168.101.8&#xff1b;查找源地址为ip.src1.1.1.1 端口过滤。 如过滤80端口&#xff0c;在Filter中输入&#xff0c;tcp.port80&#xff0c;这条规…

pat 乙级 1003 我要通过!(C++)

题目 “答案正确"是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件&#xff0c;系统就输出“答案正确”&#xff0c;否则输出"答案错误”。 得到"答案正确"的条件是&#xff1a; 字符串中必…

【C】printf按8进制、10进制、16进制输出以及高位补0

#include <iostream> #include <iomanip> #include "Circle.h" // Circle class declaration file int main() { int PrintVal 9;/*按整型输出&#xff0c;默认右对齐*/printf("%d\n",PrintVal);/*按整型输出&#xff0c;补齐4位的宽度&#…

pat 乙级 1005 继续(3n+1)猜想(C++)

题目 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里&#xff0c;情况稍微有些复杂。 当我们验证卡拉兹猜想的时候&#xff0c;为了避免重复计算&#xff0c;可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候&#xff0c;我们需要计算 3、5、8、4、…

带有Spring Boot和Spring Cloud的Java微服务

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 Java是开发微服务架构时使用的一种很棒的语言。 实际上&#xff0c;我们行业中的一些知名人士…

pat 乙级 1018 锤子剪刀布(C++)

题目 两人玩锤子剪刀布&#xff0c;现给出两人的交锋记录&#xff0c;请统计双方的胜、平、负次数&#xff0c;并且给出双方分别出什么手势的胜算最大。 输入格式&#xff1a; 输入第 1 行给出正整数 N&#xff08;≤105 &#xff09;&#xff0c;即双方交锋的次数。随后 N …

Terminal中输入一行命令快速移动光标至行首行尾

Linux&#xff1a;### ①快速移动光标至行首 **Home或CtrlA ** ②快速移动光标至行尾 **End或CtrlE ** ③从光标处开始删除&#xff0c;直到行尾 **CtrlK ** ④到下一行 **CtrlN 或 方向键&#xff1a;↓ ** ⑤到上一行 **CtrlP 或 方向键&#xff1a;↑ **

nio2和nio2_列出和过滤NIO.2中的目录内容

nio2和nio2在Java 7发行之前&#xff0c;列出目录内容的领域并没有发生太多事情。但是&#xff0c;由于NIO.2引入了一种新的方法来做到这一点&#xff0c;因此覆盖这一领域可能是值得的。 NIO.2的一大优点是能够在一个方法调用中立即使用列表和过滤。 这为与文件系统相关的大多…

pat 乙级 1033 旧键盘打字(C++)

题目 旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键&#xff0c;打出的结果文字会是怎样&#xff1f; 输入格式&#xff1a; 输入在 2 行中分别给出坏掉的那些键、以及应该输入的文…

修改typora主题的字体

简 述&#xff1a; 在 mac 中修改 typora 主题的英文和中文的字体&#xff0c;使得码字更加舒服&#xff08;win 也有效&#xff09;。 [TOC] 本文初发于 “偕臧的小站“&#xff0c;同步转载于此。 书写环境&#xff1a; &#x1f4bb;&#xff1a; MacOS 10.14.6 &#x1…

在ADF 12.2.1.3中使用基于JSON的REST Web服务

以前&#xff0c;我曾发布过有关在ADF中使用基于ADF BC的REST Web服务的信息。 现在&#xff0c;本文讨论使用通用数据控件使用基于JSON的REST Web服务。 您也可以查看有关Web服务的先前文章&#xff0c;以获取更多信息。 在ADF 12.2.1中使用应用程序模块快速创建SOAP Web服务…

C++中字符型和整型的关系

文章目录结论测试字符与字符字符与数字实用小技巧字符转数字数字转字符ASCII的特点结论 字符型就是整型&#xff0c;对应的整数由ASCII(美国信息交换标准代码)规定。字符和整数&#xff0c;或者字符和字符进行运算时&#xff0c;结果为int。与整型的运算规则完全一样。 测试 …

hibernate 调试_Hibernate调试–查找查询的来源

hibernate 调试Hibernate为何在程序的哪个部分以及在哪个部分中生成给定SQL查询并不总是立即的&#xff0c;尤其是当我们处理的是我们自己编写的代码时。 这篇文章将介绍如何配置Hibernate查询日志记录&#xff0c;并将其与其他技巧一起使用&#xff0c;以找出在程序中执行给定…