Jena:如何从SPARQL结果动态创建JavaBeans?

时间:2011-08-17 03:03:48

标签: java javabeans jena

是否可以让Jena或其他库自动为从SPARQL查询返回的结果生成Javabean?我发现通过Jena的Resultset访问结果是令人厌倦的,所以我希望有一个更面向对象的方式。

JenaBean可以在这方面提供帮助吗?如果我有一个RDF文件,我如何将Jena与JeanBean结合使用以从Resultset生成Javabeans?

1 个答案:

答案 0 :(得分:1)

当然可以!

只需实现一个Jena的Model接口并编写如下例子的代码。这是scala。

您的代码将如下所示:

    val fileName = "ffff.rdf"
    var in = new java.io.FileInputStream(fileName)
    var model = ModelFactory.createOntologyModel.read(in, null, null)
                .asInstanceOf[OntModel]

    val modeMetaId = "someid"
    val queryString =
    """
    PREFIX sbml: <http://wikimodels.cnbc.pt/ontologies/sbml.owl#>
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    SELECT ?s WHERE
    { ?s rdf:type sbml:Model .
    """ + "?s sbml:metaid \"" + modelMetaId + "\"^^<http://www.w3.org/2001/XMLSchema#string> } "

    val l: java.util.LinkedList[SomeBean]
    = Sparql.exec(model, classOf[SomeBean], queryString)

这足以与任何Jena后端一起使用。我正在使用带有postgresql的SDB。