运用jena将本体持久化到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.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);
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值