0
닉네임이 jd
이고 이메일이 [email protected]
인 사람을 영구적 인 Apache Jena 데이터베이스에 만들고 싶습니다. Apache Jena에 레코드를 저장하려면 어떻게해야합니까?
var dataSet:Dataset? = null
val Dir = "data/MyDataSet"
dataSet = TDBFactory.createDataset(Dir)
dataSet.begin(ReadWrite.WRITE)
val model = dataSet.defaultModel
createPerson("[email protected]", model, "jd")
dataSet.end()
dataSet.close()
private fun createPerson(email: String, model: Model, nick: String) {
val uuid = UUID.randomUUID()
val uri = "http://mycompany.com/data/p-${uuid}"
val person = model.createResource(uri)
person.addProperty(VCARD.EMAIL, email)
person.addProperty(VCARD.N,
model.createResource()
.addProperty(VCARD.NICKNAME, nick))
}
내가 그것을 실행하면, 나는 오류를 얻을 수 없습니다.
그러나 파일 (아래 코드 참조)에서 데이터를 읽으려고하면 쿼리에서 아무 것도 찾지 못합니다.
ds.begin(ReadWrite.READ)
val query = QueryFactory.create("""SELECT ?x
WHERE { ?x <http://www.w3.org/2001/vcard-rdf/3.0#EMAIL> "[email protected]" }""")
val qexec: QueryExecution
try {
qexec = QueryExecutionFactory.create(query, ds.defaultModel)
val rs = qexec.execSelect()
while (rs.hasNext()) {
val solution = rs.nextSolution()
System.out.println("")
}
}
catch (throwable:Throwable) {
logger.error("", throwable)
}
finally {
ds.end()
}
내 코드에 어떤 문제가 있습니까?