安裝好必要的軟件并配置好開(kāi)發(fā)環(huán)境
創(chuàng)新互聯(lián)是一家專(zhuān)注于做網(wǎng)站、網(wǎng)站制作與策劃設(shè)計(jì),崇左網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:崇左等地區(qū)。崇左做網(wǎng)站價(jià)格咨詢(xún):13518219792
Eclipse
MySQL?Server?5.5-win32
jena2.6.4
protege4.3
mysql-connector-java-5.1.35(MySQL的JDBC)
1.?利用MySQL創(chuàng)建一個(gè)數(shù)據(jù)庫(kù):create?database?military_ontology;
2.?打開(kāi)Eclipse,新建一個(gè)Java工程,起名為military_ontology。(File-New-Java?Project,輸入名字military_ontology,點(diǎn)擊next)
3.?新建工程的同時(shí),分別導(dǎo)入Jena包和MySQL的JDBC。(點(diǎn)擊Libraries-點(diǎn)擊Add?External?JARs,分別加入JDBC和Jena中全部.jar文件,C:\Program?Files\MySQL\MySQL?Connector?J和G:\Jena\lib目錄中,點(diǎn)Finish)
4.?在工程military_ontology\src\目錄下新建一個(gè)Java文件(New-Class),名字為military_ontology.java;
5.?在military_ontology.java中開(kāi)始編寫(xiě)以下代碼:
package?military_ontology;
import?java.io.*;//導(dǎo)入IO包的所有類(lèi)
import?java.sql.SQLException;//導(dǎo)入SQL有關(guān)異常處理包
import?com.hp.hpl.jena.db.*;//導(dǎo)入jena鏈接數(shù)據(jù)庫(kù)的包
import?com.hp.hpl.jena.rdf.model.*;//導(dǎo)入jena有關(guān)模型的包
import?com.hp.hpl.jena.ontology.OntModel;//導(dǎo)入OntModel包
import?com.hp.hpl.jena.ontology.OntModelSpec;//導(dǎo)入OntModelSpec包
Model?defModel?=?null;
if(connection.containsModel("militaryDB"))//判斷名為militaryDB的模型是否已經(jīng)存在數(shù)據(jù)
{
defModel?=?maker.openModel("militaryDB",true);//數(shù)據(jù)存在則打開(kāi)此模型
System.out.println("打開(kāi)已存在的模型");
}
else
{ ????
defModel?=?maker.createModel("militaryDB");//數(shù)據(jù)不存在則創(chuàng)建此模型
System.out.println("創(chuàng)建一個(gè)新模型");
}
OntModelSpec?spec?=?new?OntModelSpec(OntModelSpec.OWL_MEM);
OntModel?DBModel?=?ModelFactory.createOntologyModel(spec,?defModel);
//將臨時(shí)模型轉(zhuǎn)換成本體模型(OWL格式),其中spec參數(shù)表示該模型是在內(nèi)存中存在的。
FileInputStream?read?=?null;//定義并初始化文件輸入流變量read
try
{
File?file?=?new?File("g:/畢業(yè)設(shè)計(jì)/軟件/本體實(shí)例/Ontology1428926241032/Ontology1428926241032.owl");
read?=?new?FileInputStream(file);//讀入OWL本體文件
}
catch?(FileNotFoundException?e)//抓取讀入文件異常
{
e.printStackTrace();
System.out.println("未找到要存儲(chǔ)的本體文件,請(qǐng)檢查文件地址及名稱(chēng)");
}
System.out.println("已將本體文件轉(zhuǎn)換為字節(jié)流文件。");
InputStreamReader?in?=?null;//定義并初始化輸入流轉(zhuǎn)換變量in
try
{
in?=?new?InputStreamReader((FileInputStream)read,?"UTF-8");//將字節(jié)流文件轉(zhuǎn)換為UTF-8編碼
System.out.println("已將字節(jié)流文件轉(zhuǎn)換為UTF-8編碼。");
}
catch?(UnsupportedEncodingException?e)//抓取轉(zhuǎn)換異常
{
e.printStackTrace();
System.out.println("不支持上述字符集。");
}
defModel.read(in,null);//將流文件讀入數(shù)據(jù)庫(kù)模型
defModel點(diǎn)抗 mit();//將模型保存到數(shù)據(jù)庫(kù)中
System.out.println("數(shù)據(jù)轉(zhuǎn)換執(zhí)行完畢,已將本體文件存入數(shù)據(jù)庫(kù)。");
try
{
in.close();
System.out.println("已將字節(jié)流文件關(guān)閉。");
}
catch?(IOException?e)//抓取輸入輸出異常
{
e.printStackTrace();
System.out.println("無(wú)法關(guān)閉字節(jié)流文件。");
}?
try
{
connection.close();//關(guān)閉連接
System.out.println("已將連接關(guān)閉。");
}
catch?(SQLException?e)
{
e.printStackTrace();
System.out.println("連接無(wú)法關(guān)閉。");
}
}
catch?(RDFRDBException?e)
{
System.out.println("出現(xiàn)異常");
}
System.out.println("已將本體文件持久化到數(shù)據(jù)庫(kù)中,無(wú)異常");
}
}
執(zhí)行程序之后,本體被存入MySQL數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)會(huì)生成以下幾張表:
jena_g1t0_reif????存儲(chǔ)經(jīng)過(guò)處理的本體數(shù)據(jù)
jena_g1t1_stmt???存儲(chǔ)了本體的數(shù)據(jù)信息
jena_graph???????存儲(chǔ)每一個(gè)用戶(hù)圖的名字和唯一標(biāo)志符
jena_long_lit?????存儲(chǔ)陳述表中不便于直接存儲(chǔ)的長(zhǎng)字符創(chuàng)常量
jena_long_uri?????存儲(chǔ)陳述表中不便于直接存儲(chǔ)的長(zhǎng)資源URI
jena_prefix???????存儲(chǔ)URI的前綴。前綴只存儲(chǔ)一次,節(jié)省空間
jena_sys_stmt????存儲(chǔ)了本體的元數(shù)據(jù)信息
主要數(shù)據(jù)存在兩個(gè)表中。
1)????military_ontology.jena_g1t1_stmt?存儲(chǔ)了本體的數(shù)據(jù)信息
2)????military_ontology.jena_sys_stmt?存儲(chǔ)了本體的元數(shù)據(jù)信息
1、下載一個(gè)數(shù)據(jù)庫(kù)管理工具(可以使用navicat)
2、導(dǎo)出oracle數(shù)據(jù)
3、導(dǎo)入到mysql
如有不懂,可以到【IT愛(ài)好者聯(lián)盟】貼吧提問(wèn)
您好,很高興為您解答。\x0d\x0a\x0d\x0a1、MYSQL的工具使用navicat;\x0d\x0a2、SQL在安裝的時(shí)候,需要安裝SQL native Clent,并且開(kāi)啟服務(wù);\x0d\x0a3、在navicat中創(chuàng)建數(shù)據(jù)連接,創(chuàng)建一個(gè)對(duì)應(yīng)的空數(shù)據(jù)庫(kù)\x0d\x0a4、創(chuàng)建數(shù)據(jù)庫(kù)后,打開(kāi)數(shù)據(jù)庫(kù),選擇導(dǎo)入向?qū)x0d\x0a\x0d\x0a5、導(dǎo)入向?qū)Ю?,選擇ODBC\x0d\x0a\x0d\x0a6、點(diǎn)下一步,導(dǎo)入里面選擇sql native client;\x0d\x0a\x0d\x0a7、下一步,選擇使用windows NT 集成安全設(shè)置,數(shù)據(jù)庫(kù)選擇你要轉(zhuǎn)換的數(shù)據(jù)庫(kù),確定\x0d\x0a\x0d\x0a8、如表結(jié)構(gòu)完全一樣,那么就全選數(shù)據(jù)表吧,確定,因我們是新建的數(shù)據(jù)庫(kù),里面是空的,那么默認(rèn)是創(chuàng)建表,如果是要導(dǎo)入到已經(jīng)有的表結(jié)構(gòu)里,則在目標(biāo)表里選擇要導(dǎo)入的目標(biāo)表,然后選字段。注意在第6步的時(shí)候,選對(duì)表的主鍵進(jìn)行設(shè)置!\x0d\x0a\x0d\x0a9、如果是添加數(shù)據(jù),則選擇:添加記錄到目標(biāo)表;如果是需要ID值跟源數(shù)據(jù)庫(kù)一致,則選擇復(fù)制,刪除目標(biāo)全部數(shù)據(jù),并從源數(shù)據(jù)重新導(dǎo)入\x0d\x0a\x0d\x0a注意,導(dǎo)入的時(shí)候,如果是已存在表結(jié)構(gòu),則鍵位不能空,如果是添加數(shù)據(jù),則ID值空著,不要添加主鍵,在導(dǎo)入過(guò)程中如果出現(xiàn)錯(cuò)誤,則根據(jù)出錯(cuò)提示處理,此方法絕對(duì)可以!\x0d\x0a\x0d\x0a如若滿(mǎn)意,請(qǐng)點(diǎn)擊右側(cè)【采納答案】,如若還有問(wèn)題,請(qǐng)點(diǎn)擊【追問(wèn)】\x0d\x0a\x0d\x0a希望我的回答對(duì)您有所幫助,望采納!\x0d\x0a\x0d\x0a ~ O(∩_∩)O~