Discussions
Categories
- 197K All Categories
- 2.5K Data
- 546 Big Data Appliance
- 1.9K Data Science
- 450.8K Databases
- 221.9K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 552 MySQL Community Space
- 479 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.1K ORDS, SODA & JSON in the Database
- 556 SQLcl
- 4K SQL Developer Data Modeler
- 187.2K SQL & PL/SQL
- 21.4K SQL Developer
- 296.3K Development
- 17 Developer Projects
- 139 Programming Languages
- 293K Development Tools
- 110 DevOps
- 3.1K QA/Testing
- 646.1K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 158 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.2K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 19 Java Essentials
- 162 Java 8 Questions
- 86K Java Programming
- 81 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 205 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 468 LiveLabs
- 39 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 175 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 233 Portuguese
How to create a JAVA consumer to update an oracle database

I will be provided a stream of data that is encoded in XML looking something like this:
<transaction tid='00000000000000001121' ts='2013-06-02 22:14:36.000000' ops='4' commitTs='2013-06-02 22:14:36.000000'>
<operation table='TEST.CUSTOMER' type='INSERT' ts='2013-06-02 22:14:36.000000' pos='00000000000000001121' numCols='4'>
<col name='CODE' index='0'>
<after><![CDATA[ABCD]]></after>
</col>
<col name='NAME' index='1'>
<after><![CDATA[JOHNNY APPLEBY]]></after>
</col>
<col name='CITY' index='2'>
<after><![CDATA[SEATTLE]]></after>
</col>
<col name='STATE' index='3'>
<after><![CDATA[WA]]></after>
</col>
</operation>
</transaction>
How do set up a consumer to accept this and insert this into an Oracle database?
Sorry I know this is very basic JAVA as I have never done this.
Thanks
Keith
Answers
-
Java is not needed if the complete XML document is to be stored as such. Store the complete XML document in XMType column. Refer "Oracle XML DB: Choosing the Best XMLType Storage Option for Your Use Case"
Java is needed if the XML is to be parsed and element values stored in different columns. Use a SAX parser. Refer tutorial "Parsing an XML File Using SAX".
-
Using a model-view-controller approach, you need an object for each table in the database that maps to it. You could create an instance of the object that maps to TEST.CUSTOMER table, store the values according to the xml, which could be done using libraries manipulating tags, and then store it in the database. There are tools that create objects which map database tables automatically.
Updated
See Java DOM API for XMLType https://docs.oracle.com/database/121/ADXDB/xdb11jav.htm