徐洪麗 王志軍
摘要:計算機、網絡、物聯網等專業都開設了《數據庫原理》、《數據庫應用技術(Oracle版)》、《web編程技術》等課程,在具體的實施過程中,需要注意課程間的接口,如web編程技術中用到后臺數據庫為Oracle時的連接問題。本文主要從后臺數據庫Oracle監聽的設置、配置文件.ora文件的檢查、高權限用戶對相對權限低的用戶的解鎖和密碼的重新設定等方面,探討JDBC連接Oracle后臺數據庫的幾個關鍵問題。
關鍵詞:Oracle數據庫;監聽器;用戶權限;JDBC訪問數據庫
中圖分類號:G642 文獻標志碼:A 文章編號:1674-9324(2016)20-0189-02
一、Oracle的特點
《國家中長期教育改革和發展規劃綱要》指出,要加快解決經濟社會發展對高質量多樣化人才需要與教育培養能力不足的矛盾。當前我國,除少部分研究型大學(如“985”大學)主要定位于學術型人才(其中仍然有應用型人才)培養之外,絕大多數高等院校一直以來都在強調培養理論與實踐相結合的應用型人才。目前,針對北京大學的教育改革,也強調了部分專業理論與實踐結合的人才培養方案。在計算機科學的培養方案中開設的關于數據庫類的課程包括《數據庫原理》、《數據庫應用技術》、《web編程技術》等。目前常用的DBMS有:SQL SERVER、ORACLE、MY SQL等。實際應用中,以Oracle所占的市場份額比重最高。
Oracle具有以下特點:(1)Oracle支持大型關系數據庫;支持多種操作系統,具有良好的跨平臺性。(2)支持分布式數據庫和分布處理,將存放在多臺計算機上的數據組合成一個邏輯數據庫,分布式系統的物理分布、邏輯整體、站點自治能力、透明性。(3)遵守數據存取語言、操作系統、用戶接口和網絡通信協議的工業標準。(4)完善的安全性控制和完整性控制,具有可移植性、可兼容性和可連接性。
具體的實施過程,需注意課程間接口,如數據庫原理SQL在Oracle中的實現,JDBC與后臺數據庫連接問題,本文主要探討java連接Oracle后臺數據庫的幾個關鍵技術。
二、Java連接大型數據庫Oracle的幾個關鍵技術
Java數據庫連接(JDBC)API是一個能夠讓Java編程人員訪問數據庫的接口。教學中常用到oracle 10g及以上版本,對于Oracle 10g,要加載的驅動程序為classes12.jar(在Oracle安裝目錄中),該文件在Oracle目錄中搜索即可得到。
(一)后臺數據庫oracle監聽的配置
java連接Oracle后臺數據庫,需要關注兩個配置文件(linstener.ora和tnsnames.ora)。監聽器(LISTENER):主要用于監聽客戶端向數據庫服務器端提出的連接請求,其設置在服務器端完成。本地服務名(Tnsname):客戶端與服務器端的連接是通過客戶端發出連接請求,由服務器端監聽器進行檢查,如果連接請求有效,則進行連接,否則拒絕該連接。
本文中介紹的也是基于本地服務名的配置。檢查監聽文件linstener.ora和tnsnames.ora中的host的值是否為Oracle服務器所在計算機的名字,如用的是本機,則為當前計算機名稱,否則是服務器的IP地址,另外注意監聽器的端口port的值,本例為1521。
(二)后臺監聽服務的檢查
除此之外,需要查看后臺的監聽服務是否啟動,如果沒有啟動,則通過控制面板—管理工具—服務,查看監聽是否啟動,或者通過net start命令啟動,如圖1所示。
(三)通過PL/SQL developer工具進入oracle的會話
實際上,學生在實驗中常常用到Oracle scott用戶下的雇員表(emp)和部門表(dept),默認情況下需登陸system用戶給scott用戶解鎖,如圖2所示。解鎖后,當前會話是system,需通過PL/SQL developer檢驗scott用戶是否可用,登陸時選擇數據庫名,本文為ORCL1,登陸后標題欄顯示scott@orcl1,而非scott,至此后臺數據庫調通。
(四)java連接后臺數據庫oracle步驟
JDBC訪問數據庫,需要加載數據庫的驅動程序,然后利用連接符號串實現連接,創建連接對象,再創建執行SQL的執行語句,并實現數據庫操作。其訪問數據庫的流程如下:
● 注冊驅動 class.forName("Oracle.jdbc.driver.OracleDriver");
● 建立連接(Connection):DriverManager.getConnection("jdbc:oracle:thin:
● @192.168.8.1:1521:數據庫名","scott","test");
● 創建數據庫操作對象用于執行SQL語句:Statement stm=conn.CreatStatement();
● 執行語句:ResultSetrs=stm.executeQuery(select * from dept);
● 處理執行結果(ResultSet)后釋放資源。
(五)具體操作如下
1.先啟動桌面上的tomcat工具(myeclipse工具欄啟動)。
2.修改listener.ora和tnsnames.ora。
3.導入驅動程序文件classes12.jar(該文件在oracle目錄下),請復制到c:\下,供導入時使用。Build path中選擇Configure-Build-path。
4.選擇add External Jars選項卡中的add external Jars——class12.jar即可(從oracle目錄中找)。
5.整體程序和程序執行結果如圖3所示,該例為經scott/test連接Oracle后臺數據庫,并取出該用戶下部門表(dept)的部分數據(部門號和部門地址),其執行結果如圖3所示。
三、結語
計算機、網絡、物聯網等專業開設了《數據庫原理》、《數據庫應用技術(Oralce版)》、《web編程技術》等課程,在具體的實施過程中,要特別關注課程間的接口,如JDBC連接后臺Oracle。實踐中,大部分學生的問題出在對Oracle的掌控上,本著各回各家的原則,用到的對象屬于哪個用戶就連接那個用戶。監聽文件測試通,前臺代碼主要關注class.forname和get connection,另外,本部分內容事件性比較強,用到的學科比較多,需要學生融會貫通才能達到學以致用的效果。
參考文獻:
[1]國家中長期教育改革和發展規劃綱要(2010-2020)
http://www.china.com.cn/policy/txt/2010-07/30/content_
20605477.htm
[2]干洪,徐達奇. 高素質工程應用型人才培養途徑研究[J].高等工程教育研究,2010,(11):44-47.
[3]徐洪麗,葛平俱.大學教育——博學與精深平衡之道[J].大學教育,2013:45-46.
[4]王明芳.基于元認知策略的《Java程序設計》課堂教學研究[J].教育理論與實踐,2015,35(6):52-53.
[5]Philip H.P.Nguyen,DanCorbett.A Basic Mathematical Framework for Conceptual Graphs[J].IEEE transactions on knowledge and data engineering,2006,18(2):261-271.