以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  [求助]本体存入mysql报错  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=83588)


--  作者:minniest
--  发布时间:2/23/2010 5:16:00 PM

--  [求助]本体存入mysql报错
本体存入mysql,出现错误 ERROR [main] (RDFDefaultErrorHandler.java:40) - Exception during database access
代码就是比较普遍的那个,应该没有问题,而且我印象中之前运行没有问题的,是不是mysql的问题?
--  作者:minniest
--  发布时间:2/24/2010 1:53:00 PM

--  
我把代码贴在下面,各位帮我看一下哈。我看有一个帖子说出现了这种情况,解决方法是把mysql的表的字符集改成utf8,我改了一下还是不行。。。我这里用的是中文本体,不过我试了下英文本体也出现同样的错误。。。

package ontology;
/**将本体存入MySQL**/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.sql.SQLException;
import com.hp.hpl.jena.db.DBConnection;
import com.hp.hpl.jena.db.IDBConnection;
import com.hp.hpl.jena.db.RDFRDBException;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.ModelMaker;


public class Onto2Database {
 public static final String strDriver="com.mysql.jdbc.Driver";//path of driver class
 public static final String strURL="jdbc:mysql://localhost:3306/emeronto";//URL of database"
 public static final String strUser="root";//database user id
 public static final String strPassWord="nkzhangjing";//database password
 public static final String strDB="MySQL";//database type
 public static void main(String[] args){
  try{
   //创建一个数据库连接
   IDBConnection con=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(con);
   //创建一个默认模型,命名为MyModel
   Model defModel=maker.createModel("MyModel");
   //准备需要存入数据库的本体文件,建立输入文件流
   FileInputStream inputStreamfile=null;
   try{
    File file=new File("G://workspace//myeclipse//EmerOnto.owl");
    inputStreamfile=new FileInputStream(file);
   }catch(FileNotFoundException e){
    e.printStackTrace();
    System.out.println("Ontology File is not available...");
   }
   
   InputStreamReader in=null;
   try{
    in=new InputStreamReader(inputStreamfile,"UTF-8");
   }catch(UnsupportedEncodingException e){
    e.printStackTrace();
   }
   
   //读取文件
   defModel.read(in,null);
   //关闭输入流读取器
   try{
    in.close();
   }catch(IOException e){
    e.printStackTrace();
   }
   
   //执行数据转换,将本体数据存入数据库
   defModel.commit();
   
   //关闭数据库连接
   try{
    con.close();
   }catch(SQLException e){
    e.printStackTrace();
   }
  }catch(RDFRDBException e){
   System.out.println("Exceptions occur..");
  }
    
 }
 
}//代码结束


--  作者:minniest
--  发布时间:2/24/2010 11:10:00 PM

--  
呃,解决了,有个编码格式没改过来。。。
--  作者:fsfhappy
--  发布时间:3/9/2010 3:19:00 PM

--  
我正在学习这方面的知识,你有什么资料吗?我的qq是407478731望赐教
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms