以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Semantic Web(语义Web)/描述逻辑/本体 』 (http://bbs.xml.org.cn/list.asp?boardid=2) ---- 请高手解答:使用Jena将本体存入MySQL (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=71029) |
-- 作者:javacaihai -- 发布时间:12/30/2008 5:14:00 PM -- 请高手解答:使用Jena将本体存入MySQL 本人使用的是 Jena-2.5.7 MySQL 5.0 mysql-connector-java-3.1.10 jdk1.6.0_07 源代码: import java.io.*; import java.sql.SQLException; import com.hp.hpl.jena.db.*; import com.hp.hpl.jena.rdf.model.*; public class MysqlTest{ public static final String strDriver = "com.mysql.jdbc.Driver"; // path of driver class public static final String strURL = "jdbc:mysql://localhost/ontodb"; // URL of database public static final String strUser = "root"; // database user id public static final String strPassWord = "4408"; // 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.createDefaultModel(); // 准备需要存入数据库的本体文件,建立输入文件流 FileInputStream inputSreamfile = null; try { File file = new File("D:/Person.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) { System.out.println("Exceptions occur33..."); e.printStackTrace(); } // 读取文件 defModel.read(in,null); // 关闭输入流读取器 try { in.close(); } catch (IOException e) { System.out.println("Exceptions occurclose1..."); e.printStackTrace(); } // 执行数据转换,将本体数据存入数据库 defModel.commit(); // 关闭数据库连接 try { conn.close(); } catch (SQLException e) { System.out.println("Exceptions occur22..."); e.printStackTrace(); } }catch(RDFRDBException e){ System.out.println("Exceptions occur..."); } ..... Exceptions occur... 请高手解答一下
|
-- 作者:zhenzixiong -- 发布时间:1/5/2009 9:27:00 AM -- 你好,我测试过你的程序,没有什么问题。可以将本体存入mysql。我用的是jena2.5.2,mysql用的驱动是mysql-connector-java-3.1.13-bin。我觉得你从这几个方面看看: 1、你的owl文件是否是格式良好的?我用自己的owl文件测试的,你可以用protege自带的owl文件试试。 2、jena的包导入是否全面?我没有仔细考虑,将jena2.5.2中lib下面的所以jar都导入了。 3、mysql驱动是否匹配? |
-- 作者:javacaihai -- 发布时间:1/5/2009 8:59:00 PM -- 知道错哪了 我的MySQL端口号 是 3309 不是 3306 哎。。 郁闷了好久 搞忘记了。。 |
-- 作者:Humphrey -- 发布时间:3/11/2009 2:11:00 PM -- 很多时候如果可以还是使用默认配置,这样就不容易出现上面的错误了。 二位对本体持久化的讨论很有意义,是一个有价值的参考。 同时我觉得,如果把更改的端口号在程序中指明也可以吧?
|
-- 作者:lipeiqiang1997 -- 发布时间:4/13/2009 10:54:00 AM -- 你好,我用你编写的程序在运行时总报Exceptions occur这个错误,我的MYSQL是4.1,端口也配置正确,zhenzixiong朋友说的几项要注意的也都注意了, 请问还有别的问题吗?谢谢 |
-- 作者:lipeiqiang1997 -- 发布时间:4/13/2009 10:55:00 AM -- 你好,我用你编写的程序在运行时总报Exceptions occur这个错误,我的MYSQL是4.1,端口也配置正确,你说的几项要注意的也都注意了, 请问还有别的问题吗?谢谢 |
-- 作者:Humphrey -- 发布时间:4/13/2009 2:13:00 PM -- Jena和MySQL的版本要匹配才不容易出错,请参考Jena官方站点的说明。 |
-- 作者:lipeiqiang1997 -- 发布时间:4/14/2009 10:13:00 PM -- 我的JENA的版本号和驱动都对应,但是在运行这个程序时在这一步Model defModel = maker.createDefaultModel();出现错误,我想问已经弄通这个程序的朋友,你们在运行时就没有出现问题吗?并且我还看到有的版本是Model defModel = maker.createDefaultModel(Ontology);他们说他们的程序也可以用,这我就不明白了,并且有点程序是createModel说也能通过运行,我都按照他们的程序走了一遍,结果总出现异常Exceptions occur.,哪位朋友知道请告诉我一声,谢谢。
|
-- 作者:jpz6311whu -- 发布时间:4/16/2009 8:28:00 PM -- 抛异常的时候,把stacktrace打印出来看看 |
-- 作者:lipeiqiang1997 -- 发布时间:4/17/2009 4:19:00 PM -- 非常感谢各位朋友的帮助,谢谢了。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
109.375ms |