Java 数据库映射库

Java 数据库映射库,java,android,sqlite,Java,Android,Sqlite,我使用它将JSON数据(从Internet服务器检索)映射到应用程序对象(例如艺术家、剪辑、播放列表)。大多数情况下,数据是静态的,因此我不需要过度加载数据,因此我希望将其存储在数据库中。我需要一个类似于Jackson的映射器,它将解析数据库输出并为我构建对象(例如艺术家、剪辑、播放列表)。有吗 谢谢。您正在寻找的是ORM(对象关系映射)库。中对ORM解决方案进行了很好的讨论。使用以下解决方案解决此问题的一种方法 您可以使用对象关系映射(ORM)技术(例如Hibernate、TopLink)将数

我使用它将JSON数据(从Internet服务器检索)映射到应用程序对象(例如艺术家、剪辑、播放列表)。大多数情况下,数据是静态的,因此我不需要过度加载数据,因此我希望将其存储在数据库中。我需要一个类似于Jackson的映射器,它将解析数据库输出并为我构建对象(例如艺术家、剪辑、播放列表)。有吗


谢谢。

您正在寻找的是ORM(对象关系映射)库。中对ORM解决方案进行了很好的讨论。

使用以下解决方案解决此问题的一种方法

您可以使用对象关系映射(ORM)技术(例如Hibernate、TopLink)将数据库表映射到Java对象。 对于从Java对象到JSON对象的解析,可以使用JAXB注释。 JaxB注释类和封送处理示例如下

JaxB注释Java示例

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class UserJaxB {

private String name;
private String id;

public UserJaxB() {
}

@XmlElement(name = "id")
public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

@XmlElement(name = "name")
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
}
import java.io.*;
import javax.xml.bind.*;
import javax.xml.stream.XMLStreamWriter;
import org.codehaus.jettison.mapped.*;

public class MarshalDemo {

public static void main(String[] args) throws JAXBException {
    JAXBContext jc = JAXBContext.newInstance(UserJaxB.class);
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    UserJaxB userJaxB = new UserJaxB();
    userJaxB.setId("123");
    userJaxB.setName("ravi");

    Configuration config = new Configuration();
    MappedNamespaceConvention con = new MappedNamespaceConvention(config);
    Writer writer = new OutputStreamWriter(System.out);
    XMLStreamWriter xmlStreamWriter = new MappedXMLStreamWriter(con, writer);

    Marshaller marshaller = jc.createMarshaller();
    marshaller.marshal(userJaxB, xmlStreamWriter);
}

}
封送处理示例

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class UserJaxB {

private String name;
private String id;

public UserJaxB() {
}

@XmlElement(name = "id")
public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

@XmlElement(name = "name")
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
}
import java.io.*;
import javax.xml.bind.*;
import javax.xml.stream.XMLStreamWriter;
import org.codehaus.jettison.mapped.*;

public class MarshalDemo {

public static void main(String[] args) throws JAXBException {
    JAXBContext jc = JAXBContext.newInstance(UserJaxB.class);
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    UserJaxB userJaxB = new UserJaxB();
    userJaxB.setId("123");
    userJaxB.setName("ravi");

    Configuration config = new Configuration();
    MappedNamespaceConvention con = new MappedNamespaceConvention(config);
    Writer writer = new OutputStreamWriter(System.out);
    XMLStreamWriter xmlStreamWriter = new MappedXMLStreamWriter(con, writer);

    Marshaller marshaller = jc.createMarshaller();
    marshaller.marshal(userJaxB, xmlStreamWriter);
}

}

ORMLite可能是一个不错的选择: