教学中java连接大型数据库Oracle几个关键问题研究

2016-05-30 23:30徐洪丽王志军
教育教学论坛 2016年20期

徐洪丽 王志军

摘要:计算机、网络、物联网等专业都开设了《数据库原理》、《数据库应用技术(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.