-
运用jena将外部本体持久化到mysql
普通类 -
- 支持
- 批判
- 提问
- 解释
- 补充
- 删除
-
-
1:新建数据库
在MYSQL中新建一个数据库(在我的文件中命名为 jena),里面什么表都不用新建,这样就可以了。
-
2:新建工程
在MYECLIPSE中新建JAVA工程,导入JENA包。
-
3:从外部文件中读取本体,然后持久化到MYSQL
源码如下:
import java.io.*;
import java.sql.SQLException;
import com.hp.hpl.jena.db.*;
import com.hp.hpl.jena.rdf.model.*;
//把本体文件读入,然后存储到MySQL数据库中,持久化
public class Persistent {
//不同的开发环境,下列参数不一样
public static final String strDriver = "com.mysql.jdbc.Driver"; // path of driver class
public static final String strURL = "jdbc:mysql://localhost:3306/jena"; // URL of database
public static final String strUser = "root"; // database user id
public static final String strPassWord = "root"; // database password
public static final String strDB = "MySQL"; // database type
public static void main(String[] args) {
try {
// 创建一个数据库连接
IDBConnection conn = new DBConnection(strURL, strUser, strPassWord,strDB);
// 加载数据库驱动类,需要处理异常
try {
Class.forName(strDriver);
} catch (ClassNotFoundException e) {
System.out
.println("ClassNotFoundException, Driver is not available...");
}
// 使用数据库连接参数创建一个模型制造器
ModelMaker maker = ModelFactory.createModelRDBMaker(conn);
// 创建一个默认模型,命名为 MyOntology
Model defModel = maker.createModel("MyOntology");
// 准备需要存入数据库的本体文件,建立输入文件流
FileInputStream inputSreamfile = null;
try {
File file = new File("resources\\Expert.owl");
inputSreamfile = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("Ontology File is not available...");
}
InputStreamReader in = null;
try {
in = new InputStreamReader(inputSreamfile, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 读取文件
defModel.read(in, null);
// 关闭输入流读取器
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 执行数据转换,将本体数据存入数据库
defModel.commit();
// 关闭数据库连接
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
} catch (RDFRDBException e) {
System.out.println("Exceptions occur...");
}
System.out.print("已经持久化到数据库中");
}
} // 代码结束
说明: JENA为,2.5.7版本。执行程序之后,本体被存入MySQL数据库中。可以通过命令行查看或者使用MySQL GUI客户端工具如[MYSQLFRONT]查看。建议使用后者。 -
-
- 标签:
- static
- 文件
- string
- 学习元
- 外部文件
- 本体
- 持久化
- file
- public
- mysql
- try
- catch
- 数据库
- jena
-
学习元评论 (0条)
聪明如你,不妨在这 发表你的看法与心得 ~