模块7Java数据库编程.ppt
《模块7Java数据库编程.ppt》由会员分享,可在线阅读,更多相关《模块7Java数据库编程.ppt(72页珍藏版)》请在三一办公上搜索。
1、模块7 Java数据库编程,教学目标,JDBC技术JDBC的体系结构JDBC驱动程序类型JDBC API的主要类和接口简介创建SQL Server服务器上的数据库SQL Server的组件简单介绍创建用户数据库student和ODBC数据源创建ODBC数据源Java应用程序通过JDBC存取数据库的过程应用JDBC存取数据库的步骤JDBC存取SQL Server数据库的简单实例,教学目标(续),JDBC中的主要接口和类DriverManager类 Connection接口Statement接口PreparedStatement接口CallableStatement接口Java数据类型和SQL中支
2、持的数据类型的对应关系ResultSet接口ResultSetMetaData接口DatabaseMetaData接口数据库开发应用实例student数据库的插入、修改、删除记录的程序设计查询student数据库的程序设计,7.1 JDBC技术,Java程序使用JDBC(Java Database Connectivity,Java数据库连接)API与数据库进行通信,并用它操纵数据库中的数据。这种API与特定数据库的驱动程序相分离,使开发人员能够改变底层的数据库,而不必修改访问数据库的Java代码。,7.1.1 JDBC的体系结构,图13-1 JDBC的体系结构,7.1.2 JDBC驱动程序类
3、型,1JDBC-ODBC bridge plus ODBC driver(类型1):JDBC-ODBC桥接驱动程序。其底层通过ODBC(Open databas Connectivity)驱动程序来连接数据库。2 Native-API partly-Java driver(类型2):本地 API-部份用 Java 来编写的驱动程序。此种方式先将JDBC函数调用转换成数据库客户端函数库的API(位于客户端计算机),然后与数据库相连。3JDBC-Net pure Java driver(类型3):JDBC 网络纯 Java 驱动程序。首先JDBC驱动程序会将JDBC函数调用解释成与数据库无关的网络
4、通信协议,经过中介服务器的第二次解析,最后才转换成相对应的数据库通信协议.4、Native-protocol pure Java driver(类型4)本地协议纯 Java驱动程序。这种驱动程序将 JDBC 调用直接转换为 DBMS 所使用的网络协议。,7.1.3 JDBC API的主要类和接口简介,JDBC API由一系列与数据库访问有关的类和接口组成,它们放在java.sql子包中。其中主要的类和接口有:DriverManager类:Connection接口Statement接口PreparedStatement与CallableStatement;ResultSet;CallableSt
5、atement接口,7.创建SQL Server服务器上的数据库,SQL Server 2000数据库逐渐成为Windows操作系统平台下进行数据库应用开发中较为理想的选择之一,它可作为大型Web站点、企业OLTP(联机事务处理)以及数据仓库系统等的产品数据库服务器。,7.2.1 SQL Server的组件简单介绍,SQL Server 2000 提供了一整套的管理工具和实用程序,使用这些工具和程序,可以设置和管理SQL Server 进行数据库管理和备份,并保证数据的安全和一致。1 企业管理器(Enterprise Manager)企业管理器是SQL Server 中最重要的管理工具,在使用
6、SQL Server的过程中大部分的时间都是和它打交道。通过企业管理器可以管理所有的数据库系统工作和服务器工作。详细说明请参考SQL SERVER 2000技术手册。2 查询分析器(Query Analyzer)查询分析器用于执行Transaction-SQL 命令等SQL 脚本程序,以查询分析或处理数据库中的数据,这是一个非常实用的工具,对掌握SQL 语言、理解SQL Server 的工作有很大帮助。,企业管理器主界面,查询分析器的界面,7.2.1 SQL Server的组件简单介绍(续),3.服务管理器(Service Manager)服务管理器用于启动、暂停或停止SQL Server。4
7、 客户端网络实用工具(Client Network Utility)客户端网络实用工具用于配置客户端的连接、测定网络库的版本信息以及设定本地数据库的相关选项。5 服务器网络实用工具(Server Network Utility)服务器网络实用工具用于配置服务器端的连接、测定网络库的版本信息。6 导入和导出数据(Import and Export Data)导入和导出数据采用 DTS Import/Export 向导来完成,此向导包含了所有的DTS(Data Transformation Services 数据转换服务)工具,提供了在OLE DB数据源之间复制数据的最简捷的方法。7 在IIS中配
8、置SQL XML支持(Configure SQL XML Support in IIS)IIS(Internet Information Services 因特网信息服务),此工具可以在运行IIS的计算机上定义、注册虚拟目录,并在虚拟目录和SQL Server 实例之间创建关联。,7.2.2 创建用户数据库student和ODBC数据源,SQL Server服务器上存放着一组系统数据库和用户数据库。用户数据库Student是我们本章要用的数据库,存放着学生的基本信息、课程情况和学生学习各门课程的学习成绩。Student数据库中有学生情况表S、课程情况表C和学习成绩表SC。S由学号、姓名、性别、
9、年龄和所在系各字段组成;C由课程号、课程名和学分各字段组成;SC由学号、课程号和学习成绩各字段组成。,1.在Microsoft SQL Server服务器上创建数据库student,进入查询分析器(Query Analyzer),通过运行下面的脚本文件student.sql,完成创建数据库student和三张表S、C和SC。,2.创建ODBC数据源,用window控制面板中数据源“ODBC”管理器,创建一个连接到SQL Server的数据源数据源名称为studentDSN,连接的数据库是student,用户为sa,口令为1(空)。此数据源名studentDSN本章中的例子中使用。,7.3 Ja
10、va应用程序通过JDBC存取数据库的过程,本节首先介绍通过JDBC存取数据库的步骤,然后通过一个简单实例演示整个过程。,7.3.1 应用JDBC存取数据库的步骤,Java应用程序通过JDBC存取数据库时应该遵循五个步骤:1.加载(注册)适当的JDBC驱动程序 2.建立数据库连接 3.建立与执行SQL语句 4.处理结果集 5.关闭数据库连接,1.加载(注册)JDBC驱动程序,加载JDBC驱动程序通常有下列两种方法:(1)使用Class.forName()语法:Class.forName(驱动程序名称);例如:加载jdbc-odbc驱动程序,Class.forName(sun.jdbc.odbc.
11、JdbcOdbcDriver);例如:加载Oracle JDBC驱动程序:Class.forName(oracle.jdbc.driver.OracleDriver);此操作只是向JVM注册,并没有建立一个实例对象,如果需要在程序中参照Driver对象,必须用new进行实例化。如:Driver oracledry=new oracle.jdbc.driver.OracleDriver();,1.加载(注册)JDBC驱动程序(续),(2)使用DriverManager.registerDriver()DriverManager.registerDriver(new oracle.jdbc.dri
12、ver.OracleDriver();,2 建立数据库连接,使用DriverManger.getConnection(),建立一个新的数据库连接。方法:Connnetion getConnection(String URL);返回连接到特定数据库的Connnetion对象。参数String用来定义JDBC URL。JDBC URL由三部分组成:jdbc:subProtocol:subName 即主通信协议、子通信协议和子名称。如连接SQL server 2005数据库可设URL为jdbc:odbc:MSSQL,其中主通信协议为jdbc,子通信协议为odbc,子名称是ODBC的DSN。,2 建立
13、数据库连接(续),建立数据库连接的代码段如下:通过数据源连接:String url=jdbc:odbc:studentDSN;String login=sa;String password=“1”;Connection conn=DriverManager.getConnection(url,login,password);通过机器名或IP连接:String url=jdbc:odbc:Driver=SQLerver;Server=image;uid=sa;pwd=;Database=jspdb;如果用IP只需将服务器名image改为即可.,2 建立数据库连接(续),如果URL中不包含uid和
14、pwd,也可写成:Connection conn=DriverManager.getConnection(URL,sa,null);如果是Access数据库只需将URL改为:String url=jdbc:odbc:Driver=Microsoft Access Driver(*.mdb);DBQ=c:/data/test.mdb;,3建立SQL语句对象,执行查询,建立新数据库连接以后,必须先建立一个Statement对象才能执行SQL语句。在Java中,定义了三种类型的Statememt,它们是Statement、PreparedStatement和CallableStatement。三种均
15、包含用于进行数据库操作的SQL语句。(1)使用Statement。示例如下:Statement Stmt=conn.createStatement();String sqlQuery=“select*from Employee”;ResultSet rs=Stmt.executeQuery(sqlQuery);,3建立SQL语句对象,执行查询(续),(2)使用PreparedStatement用于处理预编译的SQL语句,可重复执行。示例如下:PreparedStatement prepStmt=conn.prepareStatement(SELECT*FROM Employee);Result
16、Set rset=prepStmt.executeQuery();利用WHERE来限制SELECT语句的查询结果,示例如下:PreparedStatement prepStmt=conn.prepareStatement(SELECT*FROM Employee WHERE ename=?)prepStmt.setString(1,SCOTT);/setString设置要传入的第一个参数的值是SCOTT ResultSet rset=prepStmt.executeQuery();,3建立SQL语句对象,执行查询(续),执行UPDATE语句,示例如下:PreparedStatement pre
17、pStmt=conn.prepareStatement(UPDATE emp SET sal=?WHERE ename=?);prepStmt.setInt(1,100000);/设置要传入的第一个参数(?)值是100000 prepStmt.setString(2,Rich);/设置要传入的第二个参数(?)值是Rich prepStmt.executeUpdate();,3建立SQL语句对象,执行查询(续),(3)使用CallableStatement用来调用数据库存储过程 语法:CallableStatement 变量名=conn.prepareCall(call 存储过程名称);示例如下
18、:CallableStatement callStmt=conn.prepareCall(call update_salary(?,?);callStmt.setInt(1,7788);/设置要传入的第一个输入参数(?)值是7788 callStmt.setInt(2,10000);/设置要传入的第二个输入参数(?)值是10000 callStmt.execute();,3建立SQL语句对象,执行查询(续),上面的建立Statement对象之后,有3种方法执行SQL语句,分别是:executeQuery():执行select的SQL查询语句executeUpdate():执行insert、de
19、lete、update 更新语句,以及DDL语句。execute():执行select的SQL查询语句。,3建立SQL语句对象,执行查询(续),例如:/SQL查询语句ResultSet rset=stmt.executeQuery(SELECT*FROM emp);/update语句stmt.executeUpdate(update emp set age=sge+1);/delete语句stmt.executeUpdate(delete emp for age=20);/DDL语句stmt.executeUpdate(CREATE TABLE table+(no CHAR(10),name
20、CHAR(10);,4.处理结果集,可用while循环打印出ResultSet记录集内所有记录。while(rs.next()System.out.println(rs.getInt(1);System.out.println(rs.getString(2);1、2、3、表示各字段相对位置,5.关闭数据库连接,通过JDBC存取数据库时最后一个操作是关闭Connection、Statement、ResultSet等对象.rs.close();stmt.close();con.close();,7.3.2 JDBC存取SQL Server数据库的简单实例,例7-1 编写通过JDBC存取studen
21、t数据库中的表C的Java程序。本例利用前面7.2节创建好的ODBC数据源,名称为studentDSN,存取student数据库,/jdbcExample1.javaimport java.sql.*;import javax.swing.*;class jdbcExample1 public static void main(String args)try/加载JDBC驱动程序 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/String url=jdbc:odbc:studentDSN;String login=sa;String password
22、=“1;/通过数据源连接Connection conn=DriverManager.getConnection(url,login,password);/建立SQL语句对象Statement statement=conn.createStatement();String sqlQuery=select*from course;/执行查询ResultSet rs=statement.executeQuery(sqlQuery);while(rs.next()/处理结果集 System.out.print(rs.getString(1)+,);System.out.print(rs.getStri
23、ng(2)+,);System.out.print(rs.getInt(3)+,);,/关闭数据库连接 statement.close();conn.close();/捕获异常 catch(SQLException sqlException)JOptionPane.showMessageDialog(null,sqlException.getMessage(),Database Error,JOptionPane.ERROR_MESSAGE);System.exit(1);/detect problems loading database driver catch(ClassNotFoundE
24、xception classNotFound)JOptionPane.showMessageDialog(null,classNotFound.getMessage(),Driver Not Found,JOptionPane.ERROR_MESSAGE);System.exit(1);/end of main/end of class,c1,数据库,4c2,数学,2.5c3,信息系统,4c4,英语,3,7.4 JDBC中的主要接口和类,Java应用程序访问数据库主要是通过JDBC API实现的,通过下面几个重要接口和类:DriverManager类 Connection接口 Statemen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模块 Java 数据库 编程

链接地址:https://www.31ppt.com/p-5992318.html