Java中带有NetSuite数据实体的对象关系映射(ORM)
對(duì)象關(guān)系映射(ORM)技術(shù)使使用關(guān)系數(shù)據(jù)源更容易,并且可以將邏輯業(yè)務(wù)模型與物理存儲(chǔ)模型聯(lián)系在一起。 遵循本教程,將與NetSuite數(shù)據(jù)的連接集成到基于Java的ORM框架Hibernate中。
您可以使用Hibernate將面向?qū)ο蟮挠蚰P陀成涞絺鹘y(tǒng)的關(guān)系數(shù)據(jù)庫(kù)。 下面的教程顯示了如何使用NetSuite的CData JDBC驅(qū)動(dòng)程序通過(guò)Hibernate生成NetSuite存儲(chǔ)庫(kù)的ORM。
盡管Eclipse是本文的首選IDE,但是NetSuite的CData JDBC驅(qū)動(dòng)程序可在任何支持Java運(yùn)行時(shí)環(huán)境的產(chǎn)品中使用。 在知識(shí)庫(kù)中,您將找到從IntelliJ IDEA和NetBeans連接到NetSuite數(shù)據(jù)的教程。
安裝休眠
請(qǐng)按照以下步驟在Eclipse中安裝Hibernate插件。
開(kāi)始一個(gè)新項(xiàng)目
請(qǐng)按照以下步驟在新項(xiàng)目中添加驅(qū)動(dòng)程序JAR。
添加休眠配置文件
請(qǐng)按照以下步驟配置NetSuite數(shù)據(jù)的連接屬性。
- 休眠版本 :5.2
- 數(shù)據(jù)庫(kù)方言 :Derby
- 驅(qū)動(dòng)程序類(lèi) :cdata.jdbc.netsuite.NetSuiteDriver
- 連接URL :一個(gè)JDBC URL,以jdbc:netsuite:開(kāi)頭 ,后跟以分號(hào)分隔的連接屬性列表。“身份驗(yàn)證”部分下的“用戶(hù)”和“密碼”屬性必須設(shè)置為有效的NetSuite用戶(hù)憑據(jù)。 此外,必須將AccountId設(shè)置為指定用戶(hù)可以使用的公司帳戶(hù)的ID。 可以選擇指定RoleId來(lái)以有限的權(quán)限登錄用戶(hù)。有關(guān)連接到NetSuite的更多信息,請(qǐng)參見(jiàn)幫助文檔的“入門(mén)”一章。內(nèi)置連接字符串設(shè)計(jì)器有關(guān)構(gòu)造JDBC URL的幫助,請(qǐng)使用連接NetSuite JDBC驅(qū)動(dòng)程序內(nèi)置的字符串設(shè)計(jì)器。 雙擊JAR文件或從命令行執(zhí)行jar文件。
填寫(xiě)連接屬性,然后將連接字符串復(fù)制到剪貼板。
典型的JDBC URL如下:
jdbc:netsuite:Account Id=XABC123456;Password=password;User=user;Role Id=3;Version=2013_1;將Hibernate連接到NetSuite數(shù)據(jù)
請(qǐng)按照以下步驟選擇在上一步中創(chuàng)建的配置。
逆向工程師NetSuite數(shù)據(jù)
請(qǐng)按照以下步驟生成reveng.xml配置文件。 您將要訪問(wèn)的表指定為對(duì)象。
配置休眠以運(yùn)行
請(qǐng)按照以下步驟為NetSuite表生成簡(jiǎn)單的舊Java對(duì)象(PO??JO)。
根據(jù)上一步中的逆向工程設(shè)置創(chuàng)建一個(gè)或多個(gè)POJO。
插入映射標(biāo)簽
對(duì)于生成的每個(gè)映射,您將需要在hibernate.cfg.xml中創(chuàng)建一個(gè)映射標(biāo)記,以將Hibernate指向您的映射資源。 打開(kāi)hibernate.cfg.xml并按以下方式插入映射標(biāo)記:
<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>執(zhí)行SQL
現(xiàn)在,使用在上一步中創(chuàng)建的實(shí)體,您可以搜索和修改NetSuite數(shù)據(jù):
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());}} }準(zhǔn)備開(kāi)始了嗎?
了解有關(guān)用于NetSuite的CData JDBC驅(qū)動(dòng)程序的更多信息,或下載免費(fèi)試用版:
翻譯自: https://www.javacodegeeks.com/2019/06/object-mapping-netsuite-data-entities-java.html
總結(jié)
以上是生活随笔為你收集整理的Java中带有NetSuite数据实体的对象关系映射(ORM)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Valhalla项目:LW2内联类型的初
- 下一篇: 反射是最重要的Java API