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 org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
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;
import com.hp.hpl.jena.ontology.*;
public class testing {
private static Logger log = LogManager.getLogger(testing.class.getName());
/*链接数据库*/
public static final String strDriver = "com.mysql.jdbc.Driver"; //jdbc
public static final String strURL = "jdbc:mysql://localhost:3306/camera"; //URL“camera”mysql数据库的名称
public static final String strUser = "root"; // database user id
public static final String strPassWord = "xxxxx"; // database password如:123456
public static final String strDB = "MySQL"; // database type
public static void main(String[] args) throws SQLException, ClassNotFoundException {
try {
// 创建一个数据库连接
IDBConnection connection = new DBConnection(strURL, strUser, strPassWord,strDB);
// 加载数据库驱动类,需要处理异常
Class.forName("com.mysql.jdbc.Driver");
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("驱动程序已经安装。");
}
catch(ClassNotFoundException e)
{System.out.println("ClassNotFoundException,Driver is not available");}
if(connection.getConnection()!=null)
System.out.println("数据库连接成功");
ModelMaker maker=ModelFactory.createModelRDBMaker(connection);
Model defModel=null;
if(connection.containsModel("testDB"))
{
defModel = maker.openModel("testDB",true);//数据存在则打开此模型
System.out.println("打开已存在的模型");
}
else {
defModel=maker.createModel("testDB");
System.out.println("创建一个新模型");
}
OntModelSpec spec=new OntModelSpec(OntModelSpec.OWL_MEM);
OntModel DBModel=ModelFactory.createOntologyModel(spec,defModel);
FileInputStream read=null;
try {
File file=new File("D:/eclipse-workspace/Expert.owl");//本体库存放的位置
read=new FileInputStream(file);
}
catch(FileNotFoundException e)
{
e.printStackTrace();
System.out.println("未找到要存储的本体文件,请检查文件地址及名称");
}
System.out.println("已将本体文件转换为字节流文件。");
InputStreamReader in=null;
try
{
in=new InputStreamReader((FileInputStream)read, "UTF-8");
System.out.println("已将字节流文件转换为UTF-8编码。");
}
catch(UnsupportedEncodingException e)
{
e.printStackTrace();
System.out.println("不支持上述字符集。");
}
defModel.read(in,null);//将流文件读入数据库模型
defModel.commit();//将模型保存到数据库中
System.out.println("数据转换执行完毕,已将本体文件存入数据库。");
try
{
in.close();
System.out.println("已将字节流文件关闭");
}
catch(IOException e)
{
e.printStackTrace();
System.out.println("无法关闭字节流文件。");
}
try
{
connection.close();//关闭连接
System.out.println("已将连接关闭。");
}
catch (SQLException e)
{
e.printStackTrace();
System.out.println("连接无法关闭。");
}
}
catch (RDFRDBException e)
{
System.out.println("出现异常");
}
System.out.println("已将本体文件持久化到数据库中,无异常");
}
}