您的位置:首页 > 数据库 > MySQL

运用jena将本体持久化到Mysql

2013-11-27 11:05 489 查看
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.rdf.model.*;
import com.hp.hpl.jena.db.DBConnection;
import com.hp.hpl.jena.db.IDBConnection;
import com.hp.hpl.jena.ontology.*;

public class OntoMySql  {

//private final static String URI="http://www.iqas.com/DSOM#";
private final static String filePath="C:\\Users\\dell\\Documents\\MyEclipise 8.6\\IQAS\\file\\DSOM.owl";
private final static String driver = "com.mysql.jdbc.Driver";
private final static String url = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8";
private final static String db = "MySQL";
private final static String user = "root";
private final static String pwd = "123456";
/**
* @param args
*/
public static void main(String[] args) {
try {
IDBConnection con = getConnection(url, user, pwd, db);

Class.forName(driver);
createModel(con, "iqas", filePath);
con.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

/**
* get db connection
*
* @param dbUrl
* @param dbUser
* @param dbPwd
* @param dbName
* @return
*/
public static DBConnection getConnection(String dbUrl, String dbUser,
String dbPwd, String dbName) {
return new DBConnection(dbUrl, dbUser, dbPwd, dbName);
}

/**
* read owl file, create the ontModel, and store in db
*
* @param conn
* @param name
* @param filePath
* @return
*/
public static OntModel createModel(IDBConnection conn, String name,
String filePath) {
ModelMaker maker = ModelFactory.createModelRDBMaker(conn);
Model model = maker.createModel(name);

try {
File file = new File(filePath);
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
model.read(isr, null);

isr.close();
fis.close();

model.commit();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

OntModelSpec spec = new OntModelSpec(OntModelSpec.OWL_MEM);
return ModelFactory.createOntologyModel(spec, model);
}

}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 本体 jena