คำแนะนำที่จำเป็นสำหรับการคงวัตถุ Java ไว้เป็น xml

เรากำลังใช้ไฮเบอร์เนตเพื่อโหลดข้อมูลจากฐานข้อมูล oracle ฉันต้องโหลดข้อมูลจากตารางใดตารางหนึ่ง จากนั้นจัดเก็บข้อมูลที่เลือกจากตารางนี้เป็นไฟล์ xml ไว้ในตารางอื่น คงจะดีไม่น้อยหากมีใครสามารถแนะนำได้ว่าอะไรคือวิธีที่ดีที่สุดในการบรรลุฟังก์ชันนี้


person awsome    schedule 26.11.2010    source แหล่งที่มา


คำตอบ (5)


ดูคำถามนี้ซึ่งกล่าวถึงไลบรารี (เช่น JAXB และ XStream) ที่คุณสามารถใช้เพื่อแปลงวัตถุ Java เป็น XML

วิธีที่ดีที่สุดในการแปลงวัตถุ Java เป็น XML ด้วย Open Source APIs คืออะไร

person dogbane    schedule 26.11.2010

ใช้ Xstream ของ ThougthWorks

"XStream เป็นไลบรารีง่ายๆ ที่ทำให้วัตถุเป็นอนุกรมเป็น XML และกลับมาอีกครั้ง"

person Boris Pavlović    schedule 26.11.2010
comment
ในคำถามนี้ วัตถุนั้นเป็นเอนทิตี JPA จริง ๆ เนื่องจาก XStream ใช้การเข้าถึงภาคสนามเพื่อประมวลผลวัตถุ ซึ่งอาจทำให้เกิดปัญหากับคุณสมบัติที่โหลดแบบสันหลังยาว (ดู stackoverflow.com/questions/328832/) - person bdoughan; 26.11.2010

XMLEncoder (java.beans.XMLEncoder) คือ รวมอยู่ใน JDK แล้ว และช่วยให้คุณสามารถคงวัตถุ Java ไว้กับ XML โดยไม่ต้องใช้ไลบรารีหรือเครื่องมือภายนอก

คลาสตัวอย่าง:

public class Foo {
   private String foo ;

   public void setFoo(String s) {
     foo = s;
   }

   public String getFoo() {
     return foo;
   }
}

คลาสตัวช่วยที่จะทำให้ซีเรียลไลซ์เป็น XML:

import java.beans.XMLEncoder;
import java.io.*;

public class FooHelper {
    public static void write(Foo f, String filename) throws Exception{
        XMLEncoder encoder =
           new XMLEncoder(
              new BufferedOutputStream(
                new FileOutputStream(filename)));
        encoder.writeObject(f);
        encoder.close();
    }
}

XML ผลลัพธ์:

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.5.0-beta" class="java.beans.XMLDecoder"> 
 <object class="Foo"> 
  <void property="foo"> 
   <string>bar</string> 
  </void> 
 </object> 
</java>
person Martin Gross    schedule 26.11.2010

หากคุณใช้ JPA เพื่อยืนยันเอนทิตีของคุณ ให้ดูว่าคุณสามารถเปลี่ยนผู้ให้บริการของคุณเป็น EclipseLink. หากสามารถแปลง pojos ถาวร JPA เดียวกันเป็น XML ให้กับคุณได้ ดังนั้นคุณจะต้องจัดการกับห้องสมุดเดียวเท่านั้น

person Aravind Yarram    schedule 26.11.2010
comment
+1 ตรวจสอบบล็อกของฉันเพื่อดูตัวอย่างเพิ่มเติมเกี่ยวกับการใช้ EclipseLink JAXB (MOXy): bdoughan.blogspot.com - person bdoughan; 26.11.2010

คุณสามารถดูได้ที่ xmlbeans

person Cyrille Ka    schedule 26.11.2010
comment
XMLBeans สร้างโมเดลออบเจ็กต์ของตัวเองและไม่สามารถใช้กับเอนทิตีที่มีอยู่ซึ่งอธิบายไว้ในคำถามนี้ - person bdoughan; 26.11.2010