关于jena OWL持久化 Table 'jena.jena_sys_stmt' doesn't exist的解决
来源:互联网 发布:网络自制剧最新排行榜 编辑:程序博客网 时间:2024/06/05 01:16
最近两天刚接触jena,其实就是想解析将owl入库,很快就从网上找到了程序,但是一直不能通过,一直的问题是
WARNING: Problem formatting database
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jena.jena_sys_stmt' doesn't exist
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jena.jena_sys_stmt' doesn't exist
貌似又有很多人没有遇到这个问题,因为解决方案没找到。
找到的程序博主说用的是jena2.5,反正我刚开始下的版本是2.11,包都已经找不到了,只能用低版本。
废话不多说,重点:
下载下来的jena包都可以看看,首先要把scr里所有程序都加载进来,这些对应的是lib里的各个包,但是这个可以看到源代码
里面有很多 example,其中jena.examples.ontology.persistentOntology这个包里就是把数据持久化的例子,修改好一些参数后,发现出现的异常还是一个,于是顺着程序慢慢找。(如果从一开始下载的那个程序找,会发现找到的是抽象类,没有具体方法)
最终在SQLCache.java里面找到了runSQLGroup(String opname, String [] attr)这个方法,问题就在这里~!!!
捕获异常时有一句:System.out.println("Exec failure: " + op + ": " + e);被屏蔽了,去掉屏蔽就发现问题啦~~
其实异常时对表里的字段建立索引的时候出现的,但是要建索引的表不存在。。。。
op是执行的sql语句,把所有的op输出,可发现根源问题不是建索引的时候,而是 建表的时候!!
可能是数据库版本问题,有些语句是不符合的,如
CREATE TABLE jena_g11t0_reif (
//此处省略一万字。。。
) TYPE = INNODB
) TYPE = INNODB
我用的mysql 5.5 ,最后的“TYPE = INNODB”不执行,所以每次新建表的时候就出现异常。。
解决办法:
我的数据库可以识别 ENGINE=InnoDB。。。不过我没有用,根据需要可以把op 的最后一句替换掉,我只是在execute(op)之前加了个替换:
if(op.indexOf("TYPE = INNODB") > 0){
op = op.substring(0,op.indexOf("TYPE = INNODB"));
}
if(op.indexOf("TYPE = INNODB") > 0){
op = op.substring(0,op.indexOf("TYPE = INNODB"));
}
}
if(op.indexOf("TYPE = INNODB") > 0){
op = op.substring(0,op.indexOf("TYPE = INNODB"));
}
这两句if条件有区别吗?有! 第一个等号前有两个空格,第二个只有一个空格。。。。。我也没有深入查看op到底是怎么拼成的,反正op真的有这两种情况。。。。然后就ok啦~~~~
0 0
- 关于jena OWL持久化 Table 'jena.jena_sys_stmt' doesn't exist的解决
- owl jena
- 使用jena持久化OWL本体到MySQL
- Jena将owl文件持久化到数据库中
- Jena将owl文件持久化到数据库中
- Jena持久化模型
- 解决Mutillidae的错误:Table 'metasploit.accounts' doesn't exist
- jena持久化到数据库
- jena解析关于基因的go.owl文件(正在学习中)
- 一、jena解析关于基因的go.owl文件(正在学习中)
- 二、jena解析关于基因的go.owl文件(创建、新增类、以及一些节点)
- 二、jena解析关于基因的go.owl文件(创建、新增复杂类)
- 三、jena解析关于基因的go.owl文件(读取信息)
- Semantic Web, OWL, RDF, JENA
- 关于jena的API说明
- Mysql table '' doesn`t exist
- Jena API 在OWL中应用的体会
- Table 'uc.uc_pms' doesn't exist,uc_pms不存在解决
- maven 常用命令
- poj3461 Oulipo,Kmp
- C++堆栈实现及拷贝构造函数的使用注意事项
- 反编译教程
- 一顺眸
- 关于jena OWL持久化 Table 'jena.jena_sys_stmt' doesn't exist的解决
- /dev/tty /dev/ttyS0 /dev/tty0区别
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- How to connect oracle databse
- 一直伴随着互联网的成熟
- JavaScript权威指南 第一部分 读书笔记
- HDCP的key交互
- mysql相似于oracle的to_char() to_date()方法
- IOS7新特性之Xcode