如何将自定义对象(及其列表)作为列存储到SQLite数据库中?

时间:2017-10-31 20:06:32

标签: android sql xml database sqlite

我使用Retrofit从端点检索一些对象。答案是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<crm method="getclients”>
    <result>0</result>
    <clients>
          <client>
               <idcliente>101</idcliente>
               <name> SpaceX </name>
               <addresses> 
                      <address>
                           <idaddress>1</idaddress>
                           <name> 1 Rocket Rd Hawthorne </name>
                           <persons>
                                 <person>
                                      <idperson>1</idperson>
                                      <name>Elon Musk</name>
                                 </person>
                                 <person>
                                      <idperson>2</idperson>
                                      <name>Gwynne Shotwell</name>
                                 </person>
                           </persons>
                           <places> 
                                <place>
                                     <idplace>1</idplace>
                                     <name>Engineering Room</name>
                                </place>
                                <place>
                                     <idplace>2</idplace>
                                     <name>Main Hall</name>
                                </place>
                                <place>...</place>  
                                <place>...</place>      
                           </places>
                      </address>
                      <address>
                         ....
                      </address>
               </addresses>
          </client>
          <client>...</client>
          <client>...</client>
          <client>...</client>
    </clients>
</crm>

因此,我需要将所有Client与其各自的Address es存储在一起,每个Person个es PlaceClient s。 因此,我的目标是创建一个可以存储客户端的数据库,并通过检索Address我可以访问其Person es,然后访问其地址“PlacesClient

通过使用Retrofit和SimpleXml作为转换器,我将这些作为POJO的对象。 那么,我怎么能将这些Address对象存储到数据库中?我需要具体的是发现如何将Client列表存储到{{1}列中如何获取此列表中的每个Address,以及PersonPlace的相应列表。

在尝试完成时,我读到我需要将这些对象存储为XML或JSON。因此,例如,使用gson会将Address转换为json地址对象,但是我需要为Address创建另一个表,为Person和{{Place创建其他表。 1}}?

我是数据库的初学者,因此我很丢失。如果有人能够以教程,完整的解释形式回答这个问题,那将是无法抗拒的。

1 个答案:

答案 0 :(得分:0)

我可以想到两种可行的方法:

  1. 将POJO存储为包含列的表。也许Room会是一个很好的选择。我认为这是更多的工作要实施。

  2. 拥有一个包含数据结构的XML,并将XML存储在数据库中(例如String)。然后,您可以在从数据库中检索XML时读取和解析XML。例如,您可以使用SimpleXML。