以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  [求助]关于jena把本体写入oracle数据库的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=36271)


--  作者:chendq
--  发布时间:7/31/2006 4:37:00 PM

--  [求助]关于jena把本体写入oracle数据库的问题
我修改的一段代码如下:
import java.sql.*;
import oracle.jdbc.driver.*;
import com.hp.hpl.jena.db.*;
import com.hp.hpl.jena.rdf.model.*;
import com.hp.hpl.jena.vocabulary.*;

public class OwlToDb {
  static String tutorialURI = "http://hostname/rdf/tutorial/";
  static String briansName = "Brian McBride";
  static String briansEmail1 = "brian_mcbride@hp.com";
  static String briansEmail2 = "brian_mcbride@hpl.hp.com";
  static String title = "An Introduction to RDF and the Jena API";
  static String date = "23/01/2001";

  public static void OwlToDb() {

    try {
      String className = "oracle.jdbc.driver.OracleDriver"; // path of driver class
      Class.forName(className); // load driver
      String DB_URL = "jdbc:oracle:thin:@rdc-ser:1521:orcl"; // URL of database server
      String DB_USER = "sys as sysdba"; // database user id
      String DB_PASSWD = "admin888"; // database password
      String DB = "Oracle"; // database type

     // Create database connection
      IDBConnection conn = new DBConnection(DB_URL, DB_USER, DB_PASSWD, DB);
            
      String personURI = "http://somewhere/JohnSmith";
      String givenName = "John";
      String familyName = "Smith";
      String fullName = givenName + " " + familyName;

      ModelMaker maker = ModelFactory.createModelRDBMaker(conn);
      Model model = maker.createModel();

      Resource johnSmith
          = model.createResource(personURI)
          .addProperty(VCARD.FN, fullName)
          .addProperty(VCARD.N,
                       model.createResource()
                       .addProperty(VCARD.Given, givenName)
                       .addProperty(VCARD.Family, familyName));
      
    
      conn.close();


    }
    catch (SQLException ex) {
    }
    catch (ClassNotFoundException ex) {
      /** @todo Handle this exception */
    }

  }
}
执行以后数据库中没有变化。
请问:
1、如果用jena把本体导入数据库,oracle需要准备什么工作?
2、上面的代码需要做怎样的修改?


--  作者:chendq
--  发布时间:8/2/2006 9:36:00 AM

--  
没有哪个专家帮下忙?
--  作者:chendq
--  发布时间:8/3/2006 11:37:00 AM

--  
今天才发现,数据已经导入到数据库中了.
--  作者:skinner
--  发布时间:10/18/2006 2:19:00 AM

--  
我也学习到了一些,

--  作者:bandaotiehe
--  发布时间:11/14/2008 6:52:00 PM

--  

请问楼主,我自己写的一个链接oracle数据库的程序运行的时候老师说,错误代码如下:DBerrorjava.sql.SQLException: Io 异常: SO Exception was generated
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
 at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:361)
 at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442)
 at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at com.hp.hpl.jena.db.DBConnection.getConnection(DBConnection.java:122)
 at com.hp.hpl.jena.db.DBConnection.getDriver(DBConnection.java:283)
 at com.hp.hpl.jena.db.DBConnection.containsModel(DBConnection.java:226)
 at com.hp.hpl.jena.db.DBConnection.containsDefaultModel(DBConnection.java:239)
 at com.hp.hpl.jena.db.impl.GraphRDBMaker.getGraph(GraphRDBMaker.java:66)
 at com.hp.hpl.jena.rdf.model.impl.ModelMakerImpl.createDefaultModel(ModelMakerImpl.java:59)
 at com.dareway.cn.TestOracle.main(TestOracle.java:41)
com.hp.hpl.jena.db.RDFRDBException: Failure to instantiate DB Driver:oracle java.sql.SQLException: Io 异常: SO Exception was generated
 at com.hp.hpl.jena.db.DBConnection.getDriver(DBConnection.java:296)
 at com.hp.hpl.jena.db.DBConnection.containsModel(DBConnection.java:226)
 at com.hp.hpl.jena.db.DBConnection.containsDefaultModel(DBConnection.java:239)
 at com.hp.hpl.jena.db.impl.GraphRDBMaker.getGraph(GraphRDBMaker.java:66)
 at com.hp.hpl.jena.rdf.model.impl.ModelMakerImpl.createDefaultModel(ModelMakerImpl.java:59)
 at com.dareway.cn.TestOracle.main(TestOracle.java:41)
Caused by: java.sql.SQLException: Io 异常: SO Exception was generated
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
 at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:361)
 at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442)
 at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at java.sql.DriverManager.getConnection(Unknown Source)
 at com.hp.hpl.jena.db.DBConnection.getConnection(DBConnection.java:122)
 at com.hp.hpl.jena.db.DBConnection.getDriver(DBConnection.java:283)
 ... 5 more
Exception in thread "main"
您知道这个是什么原因吗?
我的程序是;
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 TestOracle {

 /**
  * @param args
  * @throws ClassNotFoundException
  */
 public static void main(String[] args)  {
  // TODO Auto-generated method stub
  try {
  String className = "oracle.jdbc.driver.OracleDriver";   // path of driver class
  
  
  try {
   Class.forName (className);
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }  
  
  // Load the Driver
  String DB_URL="jdbc:oracle:thin:@10.2.0.70";                // URL of database
  String DB_USER="hrserve";                              // database user id
  String DB_PASSWD="hrserve";                              // database password
  String DB="oracle";                            // database type
 
//   Create database connection
  IDBConnection conn = new DBConnection ( DB_URL, DB_USER, DB_PASSWD, DB );
  ModelMaker maker = ModelFactory.createModelRDBMaker(conn) ;
         
//   create or open the default model
  Model model = maker.createDefaultModel();
//System.out.print("成功了啊 ,呵呵"+model.isEmpty());
//   Close the database connection
  
   conn.close();
  } catch (SQLException e) {
   System.out.print("错误结果是"+e.toString());
   // TODO Auto-generated catch block
   e.printStackTrace();
   
  }

  
  
 }

}


--  作者:lordsongqing
--  发布时间:4/22/2010 6:56:00 PM

--  
楼主,能说的再详细点么  

--  作者:judia888
--  发布时间:5/7/2010 8:35:00 PM

--  
根据portege新手入门进阶篇中最后连接数据库一项,我在配置好数据库,并且已经连接上oracle数据库。但是一旦保存的时候,就出现

1. Errors at copying knowledgebase jdbc:oracle:thin:@115.145.171.68:1521:ORCL
  Exception class java.sql.BatchUpdateException. Message: ORA-01400: NULL ("TEMP"."AA"."FACET")  
我明白应该是连接过程中oracle 里自动建立了表结构,每个字段都不能为空。但是我要如何修改呢?
今天搞了一天都没把本体存入数据库。连接上却插入不了。。真是郁闷死了。
还请高手帮忙。。谢谢!!!


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms