• 运用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条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部