JAVA程序设计:第12章 数据库与JDBC编程

上传人:s9****2 文档编号:570181105 上传时间:2024-08-02 格式:PPT 页数:53 大小:1.77MB
返回 下载 相关 举报
JAVA程序设计:第12章 数据库与JDBC编程_第1页
第1页 / 共53页
JAVA程序设计:第12章 数据库与JDBC编程_第2页
第2页 / 共53页
JAVA程序设计:第12章 数据库与JDBC编程_第3页
第3页 / 共53页
JAVA程序设计:第12章 数据库与JDBC编程_第4页
第4页 / 共53页
JAVA程序设计:第12章 数据库与JDBC编程_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《JAVA程序设计:第12章 数据库与JDBC编程》由会员分享,可在线阅读,更多相关《JAVA程序设计:第12章 数据库与JDBC编程(53页珍藏版)》请在金锄头文库上搜索。

1、第12章 数据库与JDBC编程12.1 JDBC概述在在介介绍绍JDBC前前,先先来来介介绍绍一一下下ODBC(OpenDatabaseConnectivity,开开放放数数据据库库连连接接)。ODBC是是微微软软开开发发的的一一种种技技术术,允允许许访访问问Windows平平台台(以以及及一一些些UNIX平平台台)上上的完全不同的数据库系统。的完全不同的数据库系统。JDBC是是用用于于执执行行SQL语语句句的的JavaAPI,它它由由一一系系列列Java语语言言编编写写的的类类和和接接口口组组成成。它它的的作作用用是是向向数数据据库库发发送送SQL语语句句,对对数数据据库库进进行行各各种种操

2、操作作。JDBC是是一一种种Java程程序序与与数数据据库库之之间间的的接接口口,它它是是建建立立在在ODBC的的理理论论基基础础上上。因因此此,熟熟悉悉ODBC的程序员将发现的程序员将发现JDBC很容易使用。很容易使用。JDBC与与ODBC相比有以下优点:相比有以下优点:(1)易易于于使使用用:ODBC由由C语语言言编编写写,很很复复杂杂。而而JDBC由面向对象是由面向对象是Java语言编写,易于使用。语言编写,易于使用。(2)良良好好的的移移植植性性:而而JDBC由由纯纯Java代代码码编编写写,所以所以JDBC编写的程序具有跨平台的特点。编写的程序具有跨平台的特点。(3)安全性:安全性:

3、JDBC编写的程序运行在编写的程序运行在Java虚拟机上虚拟机上具有很高的安全性。具有很高的安全性。12.2JDBC驱动程序的类型驱动程序的类型JDBC驱动程序可分为以下四个种类:驱动程序可分为以下四个种类:(1)JDBC-ODBC桥接桥接通过通过JDBC-ODBC桥连接,开发者可以很容易的使桥连接,开发者可以很容易的使用用JDBC来访问一个来访问一个ODBC数据源。该驱动的使用数据源。该驱动的使用要求将每个客户机上都要安装要求将每个客户机上都要安装ODBC驱动,同时驱动,同时还要求配置还要求配置ODBC数据源。这种连接方式虽然简数据源。这种连接方式虽然简单但是效率很低,实际的开发过程中通常不

4、建议单但是效率很低,实际的开发过程中通常不建议使用。它的实现原理如图使用。它的实现原理如图12.2。(2)部分)部分Java,部分本地驱动部分本地驱动在在这这种种驱驱动动方方式式下下,JDBC驱驱动动将将标标准准的的JDBC调调用用转转为为对对数数据据库库API的的本本地地调调用用。它它比比第第一一种种驱驱动动方方式要快。式要快。(3)JDBC网络纯网络纯Java驱动程序驱动程序这种驱动程序接受这种驱动程序接受JDBC请求,并把它们转换请求,并把它们转换成一个与成一个与DBMS无关的网络协议。这些请求发送无关的网络协议。这些请求发送到服务器,由服务器把这些数据库请求转换成到服务器,由服务器把这

5、些数据库请求转换成DBMS特有的协议。此类驱动程序很适合特有的协议。此类驱动程序很适合Internet应用。因为它不需要客户端安装数据库驱动程序,应用。因为它不需要客户端安装数据库驱动程序,而且该类型的驱动程序是跨平台的。而且该类型的驱动程序是跨平台的。(4)本地协议纯)本地协议纯Java驱动程序驱动程序这种类型的驱动程序将这种类型的驱动程序将JDBC请求直接转换为请求直接转换为DBMS所使用的网络协议。这将允许从客户所使用的网络协议。这将允许从客户机上直接调用机上直接调用DBMS服务器。由于许多这样服务器。由于许多这样的协议都是专用的,因此数据库提供者是这的协议都是专用的,因此数据库提供者是

6、这类驱动程序的主要来源,如类驱动程序的主要来源,如Oracle和和SQLServer等等DBMS都有自己的驱动程序,该类都有自己的驱动程序,该类驱动原理如图驱动原理如图12.3;实实现现第第3、4类类驱驱动动程程序序将将成成为为JDBC访访问问数数据据库库的的首首选选方方法法,但但它它们们要要求求服服务务器器端端安安装装特特有有的的JDBC驱驱动动程程序序。而而JDBC-ODBC桥桥接接的的方方式式可可以以通通过过ODBC驱驱动动访访问问绝绝大大部部分分数数据据库库,但但这这种种方方式式要要牺牺牲牲数数据据库库连连接接的的性性能能。所所以以实实际际开开发发中中通通常常不不使使用用桥桥接接的的方

7、方式式,但但在在没没有有特特定定的的数数据据库库本本地地驱驱动动时时,可可以以使使用桥接的方式连接。用桥接的方式连接。 12.3 JDBC URL JDBCURL提供了一种标识数据库的方法,它的作用提供了一种标识数据库的方法,它的作用是使程序员编写的程序能找到相应的数据库驱动程序并进是使程序员编写的程序能找到相应的数据库驱动程序并进行连接。实际上,行连接。实际上,JDBC驱动程序的编程员将决定用什么驱动程序的编程员将决定用什么JDBCURL来标识特定的驱动程序,而使用来标识特定的驱动程序,而使用JDBC驱动程驱动程序的程序员不必关心如何来形成序的程序员不必关心如何来形成JDBCURL,他们只须

8、知他们只须知道道URL的格式就可以了。的格式就可以了。JDBCURL的标准语法如下所示。它由三部分组成,各部分的标准语法如下所示。它由三部分组成,各部分间用冒号分隔:间用冒号分隔:jdbc:JDBCURL中的协议总是中的协议总是jdbc。子子协协议议为为驱驱动动程程序序名名或或数数据据库库连连接接机机制制(这这种种机机制制可可由由一一个个或或多多个个驱驱动动程程序序支支持持)的的名名称称。子子协协议议名名的的典典型型示示例例是是odbc,该名称是用于指定连接该名称是用于指定连接ODBC数据源。数据源。子名称的作用是为定位数据库提供足够的信息。子名称的作用是为定位数据库提供足够的信息。如果数据库

9、存放在网络中的主机上,则要如果数据库存放在网络中的主机上,则要JDBC根根据相应的驱动程序,设置对应的据相应的驱动程序,设置对应的URL。例例如如,通通过过JDBC-ODBC桥桥来来访访问问某某个个数数据据库库,可可以用如下所示的以用如下所示的URL:jdbc:odbc:test此此URL的的子子协协议议为为 odbc,子子名名称称为为test 。”test”是是本本地地ODBC数数据据源源名名,它它是是由由JDBC程程序开发人员在数据库端建立并设置的。序开发人员在数据库端建立并设置的。下面给出三个常用的下面给出三个常用的JDBCURL:(1)桥接方式连接的桥接方式连接的URLjdbc:odb

10、c:datasource/datasource为数据源名为数据源名(2)本地驱动连接)本地驱动连接SQLServer2000的的URLjdbc:microsoft:sqlserver:/127.0.0.1:1433;DatabaseName=pubs/pubs为数据库名为数据库名(3)本地驱动连接)本地驱动连接Oracle的的URLjdbc:oracle:thin:localhost:1521:orcl/orcl为数据库的为数据库的SID12.4 JDBC中主要的类和接口在在介介绍绍JDBC的的对对象象接接口口前前,先先引引入入一一个个JDBC访访问问Access数数据据库库的的例例子子。此此

11、例例题题采采用用数数据据库库驱驱动动的的第第一一种种JDBC-ODBC桥接的方式连接,实现这种方式要分桥接的方式连接,实现这种方式要分3步:步:l l建立数据库和数据表建立数据库和数据表l l建立数据源建立数据源l l编写编写Java代码通过代码通过JDBC-ODBC桥访问数据库桥访问数据库首先,打开首先,打开Access,点击点击“文件文件”菜单栏下的菜单栏下的“新建新建”,建,建一个空一个空“数据库数据库”。输入数据库名,建立一个名为。输入数据库名,建立一个名为“TestJDBC”的数据库。点击生成的对话框中的的数据库。点击生成的对话框中的“使用设使用设计器创建表计器创建表”来生成一个新的

12、数据表,名为来生成一个新的数据表,名为“TestStudent”,具体字段见具体字段见表表12.2:表表12.2TestStudent表结构表结构表中的数据如下图表中的数据如下图12.4:然后,我们来设置然后,我们来设置ODBC数据源。在数据源。在98系统中系统中ODBC数据源在数据源在“控制控制面板面板”下;下;2000/Xp系统中,它在系统中,它在“控制面板控制面板”,“管理工具管理工具”下,下,见图见图12.5:在弹出的对话框中选择在弹出的对话框中选择“MicrosoftAccessDriver(*.mdb)”,点击点击“完完成成”按钮后,弹出按钮后,弹出Access数据源的设置对话框。

13、填写数据源名为数据源的设置对话框。填写数据源名为“Student”,点击点击“选择选择”按钮,找到刚才建立的数据库。最后点击按钮,找到刚才建立的数据库。最后点击“确定确定”按钮,如图按钮,如图12.7。ODBC数据源的设置部分就完成了。数据源的设置部分就完成了。最后,编最后,编写代码运行结果如图写代码运行结果如图12.8:例例12.1TestJDBC_1.java源代码源代码:程序说明:程序说明:对数据库的操作要引入对数据库的操作要引入“java.sql”包。它包。它包含包含DriverManager类,类,Connection接口,接口,Statement接口,接口,ResultSet接口,

14、接口,CallableStatement接口,接口,PreparedStatement接口等接口等API。下节我们下节我们对这个程序和对这个程序和“java.sql”包中几个常用的包中几个常用的类和接口进行说明。类和接口进行说明。12.4.1 JDBC驱动设置类DriverManager1、概述概述DriverManagerDriverManager类类位位于于JDBCJDBC的的管管理理层层,作作用用于于用用户户和和驱驱动动程程序序之之间间。它它的的作作用用是是跟跟踪踪可可用用的的驱驱动动程程序序,管管理理JDBCJDBC驱驱动动程程序序接接口口,并并在在数数据据库库和和相相应应驱驱动动程程

15、序序之之间间建建立立连连接接。另另外外,DriverManagerDriverManager 类类也也处处理理诸诸如如驱驱动动程程序序登登录录时间限制及登录和跟踪消息的显示等事务。时间限制及登录和跟踪消息的显示等事务。加加载载DriverManagerDriverManager类类前前要要先先调调用用Class.forNameClass.forName( ( ) )方方法法加加载载驱驱动动程程序序类类。以以下下代代码码用用于于加加载载驱驱动动程程序类:序类: String String jdbcDriverjdbcDriver=sun.jdbc.odbc.JdbcOdbcDriversun.j

16、dbc.odbc.JdbcOdbcDriver;try try Class.forName(jdbcDriverClass.forName(jdbcDriver);); catch(ClassNotFoundExceptioncatch(ClassNotFoundException e) e) System.out.printlnSystem.out.println(未找到要加载的驱动类未找到要加载的驱动类);); 注意:注意:Class.forName()方法加载程序驱动类时,可方法加载程序驱动类时,可能会发生能会发生“ClassNotFoundException”异常,所异常,所以要用以要

17、用trycatch语句捕捉异常。语句捕捉异常。 2 2、建立连接建立连接 加加 载载 DriverManagerDriverManager类类 最最 常常 用用 的的 方方 法法 就就 是是 DriverManager.getConnectionDriverManager.getConnection( ) 方方 法法 , 该该 方方 法法 用用 于于 建建 立立 与与 数数 据据 库库 的的 连连 接接 。 DriverManager.getConnectionDriverManager.getConnection()()方法形式具体如下:方法形式具体如下:getConnection(Stri

18、nggetConnection(String urlurl, , String String user, user, String String password)password)getConnection(StringgetConnection(String urlurl) )前前一一个个方方法法针针对对SQLServerSQLServer和和OracleOracle数数据据库库等等服服务务器器数据库,而数据库,而AccessAccess数据库用后一个方法就行了。数据库用后一个方法就行了。以下代码是通常情况下用驱动程序建立连接所需所以下代码是通常情况下用驱动程序建立连接所需所有步骤的示例:

19、有步骤的示例:String String jdbcDriverjdbcDriver=sun.jdbc.odbc.JdbcOdbcDriversun.jdbc.odbc.JdbcOdbcDriver;String String jdbcURLjdbcURL=jdbc:odbc:Studentjdbc:odbc:Student;Class.forName(jdbcDriverClass.forName(jdbcDriver););Connection Connection con con = = DriverManager.getConnection(jdbcURLDriverManager.ge

20、tConnection(jdbcURL););注意:注意:getConnection方法可能导致方法可能导致“SQLException”异常,所以编写程序时要用异常,所以编写程序时要用trycatch语句捕捉异常。语句捕捉异常。12.4.2连接接口Connection下下 述述 代代 码码 的的 作作 用用 是是 打打 开开 一一 个个 URLURL为为 jdbc:odbc:Studentjdbc:odbc:Student 的数据库的连接。的数据库的连接。String String jdbcURLjdbcURL=jdbc:odbc:Studentjdbc:odbc:Student;Connec

21、tion Connection con con = = DriverManager.getConnection(jdbcURLDriverManager.getConnection(jdbcURL););Connection接口的作用是建立接口的作用是建立Java程序与数据库之程序与数据库之间的连接,并生成可以执行间的连接,并生成可以执行SQL语句的语句的Statement对象。一个对象。一个Java程序可与单个数据库程序可与单个数据库有一个或多个连接。有一个或多个连接。Connection对象是通过对象是通过DriverManager.getConnection()()方法获得的。方法获得的

22、。12.4.3语句接口StatementStatement接接口口用用于于将将SQL语语句句发发送送到到已已连连接接的的数数据据库库中中。实实际际上上有有三三种种Statement接接口口:Statement、PreparedStatement( 它它 从从 Statement 继继 承承 而而 来来 ) 和和 CallableStatement(它它从从PreparedStatement继继承承而而来来)。它它们们用用于于发发送送特特定定类类型型的的SQL语语句句:Statement接接口口用用于于执执行行不不带带参参数数的的简简单单SQL语语句句;PreparedStatement接接口口

23、用用于于执执行行带带或或不不带带 IN参参 数数 的的 预预 编编 译译 SQL语语 句句 ;CallableStatement接接口口用用于于执执行行对对数数据据库库存储过程的调用。存储过程的调用。 1 1、创建创建 Statement Statement 接口对象接口对象 建建立立了了到到特特定定数数据据库库的的连连接接之之后后,就就可可用用该该连连接接发发送送 SQLSQL语语 句句 。 Statement Statement 对对 象象 用用 ConnectionConnection类类 的的 createStatementcreateStatement( )( )方法创建,以下是它两

24、个重载方法:方法创建,以下是它两个重载方法: Statement stmt = Statement stmt = con.createStatementcon.createStatement();();Statement Statement stmt stmt = = con.createStatement(intcon.createStatement(intresultSetTyperesultSetType, , intintresultSetConcurrencyresultSetConcurrency ); ); 2 2、使用使用 Statement Statement 对象执行语句对

25、象执行语句 实实现现StatementStatement接接口口的的对对象象有有三三种种执执行行 SQL SQL 语语句句的的方方 法法 : executeQueryexecuteQuery( ( ) )、 executeUpdateexecuteUpdate( ( ) ) 和和 executeexecute( ( ) )。具具体体使使用用哪哪一一个个方方法法由由 SQL SQL 语语句句所所产产生生的的内容决定。内容决定。(1)(1)方方法法 executeQueryexecuteQuery ( ( ) )用用于于返返回回单单个个结结果果集集对对象象( (ResultSetResultSet

26、对象对象) ),它可以执行,它可以执行SELECT SELECT 查询语句。查询语句。(2)方法方法executeUpdate()用于执行用于执行INSERT、UPDATE或或DELETE语句以及语句以及SQLDDL(数据数据定义语言)语句,例如定义语言)语句,例如CREATETABLE和和DROPTABLE等。等。(3)方方法法execute()用用于于执执行行返返回回多多个个结结果果集集、多多个更新计数或二者组合的语句。个更新计数或二者组合的语句。Statement对对象象在在执执行行SQL语语句句时时,将将关关闭闭之之前前生生成成的的ResultSet对对象象(如如果果存存在在)。这这意

27、意味味着着Statement对对象象重重新新执执行行SQL语语句句之之前前,需需要要完完成对当前成对当前ResultSet对象的处理。对象的处理。3、关闭、关闭Statement对象对象调用调用Statement对象的对象的close()方法关闭方法关闭Statement对象。对象。Statement对象将由对象将由Java垃圾收集程序垃圾收集程序自动关闭。而作为一种好的编程风格,应在不需自动关闭。而作为一种好的编程风格,应在不需要要Statement对象时显式地关闭它们。这将立即对象时显式地关闭它们。这将立即释放释放DBMS资源,有助于避免潜在的内存问题。资源,有助于避免潜在的内存问题。当一

28、个当一个Statement对象调用对象调用close()方法时,它产方法时,它产生的生的ResultSet对象也将被关闭。对象也将被关闭。注注意意:使使用用StatementStatement接接口口进进行行查查询询时时可可能能导导致致“SQLExceptionSQLException”异异常常,所所以以编编写写程程序序时时要用要用try catchtry catch语句捕捉异常。语句捕捉异常。12.4.4记录集对象ResultSetResultSet对象是对象是Statement对象执行对象执行SQL语语句后生成的记录集。可以认为它是一个二维句后生成的记录集。可以认为它是一个二维的表格,包含

29、符合要查询的的表格,包含符合要查询的SQL语句的条件语句的条件的所有行。的所有行。1 1、记录列、记录列 若想获得当前游标指向记录的列值,可若想获得当前游标指向记录的列值,可通过调用通过调用getXXXgetXXX方法来完成,见表方法来完成,见表12.3。其。其中中XXXXXX是与该参数相应的类型。例如,如果是与该参数相应的类型。例如,如果参数是参数是intint型数据,则使用的方法就是型数据,则使用的方法就是getIntgetInt。ResultSet对象的对象的getXXX方法以一方法以一个列号(个列号(int型)或者一个列名(型)或者一个列名(String型)型)为参数来表示要获取哪一列

30、的值,假如要获为参数来表示要获取哪一列的值,假如要获得数据类型为得数据类型为int的学生的学号,可以用的学生的学号,可以用getInt(1)或或getInt(“学号学号”),“1”的意思是的意思是记录集的第一列,记录集的第一列,“学号学号”为列名。为列名。表表12.3getXXX方法方法2、记录行、记录行使用使用next()可以向后移动可以向后移动游标,指向游标,指向下一条记下一条记录。如果当前游标指向的记录有效,录。如果当前游标指向的记录有效,next()方法将返回方法将返回true,否则返回否则返回false。注意:一个注意:一个ResultSet对象开始时,指针是指对象开始时,指针是指向

31、第一条记录的前一个位置。也就是说,如向第一条记录的前一个位置。也就是说,如果要使用第一条记录就要先执行果要使用第一条记录就要先执行next()方法方法让游标向让游标向后移动一条记录。后移动一条记录。ResultSetResultSet rsrs = = stmt.executeQuery(selectstmt.executeQuery(select * * from from TestStudentTestStudent););while(rs.nextwhile(rs.next()()System.out.print( System.out.print( 号号码码: + + rs.getIn

32、t(1);rs.getInt(1);System.out.print( System.out.print( 姓姓名名: + + rs.getString(2);rs.getString(2);System.out.print( System.out.print( 性性 别别 + + rs.getString(3);rs.getString(3);System.out.print( System.out.print( 年年 龄龄 + + rs.getInt(4);rs.getInt(4);System.out.printlnSystem.out.println();();上上面面举举例例使使用用

33、的的是是顺顺序序查查询询,若若使使用用的的是是游游动查询,即按如下格式创建动查询,即按如下格式创建StatementStatement对象:对象: Statement Statement stmt stmt = = con.createStatement(intcon.createStatement(intresultSetTyperesultSetType, ,intintresultSetConcurrencyresultSetConcurrency ); ); ResultSetResultSet rsrs = = stmt.executeQuery(SQLstmt.executeQue

34、ry(SQL语句语句););那那么么stmt对对象象执执行行SQL语语句句返返回回的的ResultSet对对象象,可可以以使使用用如如下下方方法法对对记记录录集集进进行行游游动动查询:查询: 表表12.4实现游动查询的主要方法实现游动查询的主要方法当当产产生生Resutl对对象象的的Statement关关闭闭时时,虚虚拟拟机机将将自自动动关关闭闭ResultSet对对象象。不不过过立立即即关关闭闭不不再再使使用用的的资资源源是是好好的的编编程程习习惯惯,所所以以建建议读者手动关闭议读者手动关闭Result对象。对象。12.4.5 PreparedStatement接口以以下下程程序序使使用用P

35、reparedStatementPreparedStatement接接口口用用于于向向数据表中添加一条学生的记录:数据表中添加一条学生的记录:例例12.2TestJDBC_2.java的源代码的源代码:PreparedStatementPreparedStatement接接口口继继承承 StatementStatement,它它与与StatementStatement接接口有两个不同之处:口有两个不同之处:(1 1)PreparedStatementPreparedStatement语语句句包包含含编编译译好好的的SQLSQL语语句句,而而StatementStatement的语句是当程序要执

36、行时才去编译它们。的语句是当程序要执行时才去编译它们。(2 2)PreparedStatementPreparedStatement语语句句具具有有一一个个或或多多个个参参数数,每每个个参参数数 用用 “? ”代代 替替 ( 见见 程程 序序 第第 1111行行 ) , 在在 执执 行行 PreparedStatementPreparedStatement对对象象之之前前(第第1818行行),必必须须通通过过调调用用setXXXsetXXX方方法法设设置置每每个个? ?参参数数的的值值(第第13-1713-17行行)。其其中中XXXXXX是是与与该该参参数数相相应应的的类类型型。setXXXs

37、etXXX方方法法的的第第一一个个参参数数是是要要设设置置的数据表的列号,第二个参数是设置给该参数的值。的数据表的列号,第二个参数是设置给该参数的值。注注 意意 : PreparedStatementPreparedStatement接接 口口 的的 名名 字字 和和 ConnectionConnection对对 象象 的的 prepareStatementprepareStatement( )( )方法的写法很相像,请读者注意区别。方法的写法很相像,请读者注意区别。 由于由于PreparedStatement对象已预编译过,对象已预编译过,所以其执行速度要快于所以其执行速度要快于Statem

38、ent对象。因此,对象。因此,多次执行的多次执行的SQL语句经常创建为语句经常创建为PreparedStatement对象,以提高效率。对象,以提高效率。12.4.6 CallableStatement 接口 很多很多DBMSDBMS都包含内部编程语言,允许数据库都包含内部编程语言,允许数据库开发人员在数据库中直接嵌入过程应用代码,然开发人员在数据库中直接嵌入过程应用代码,然后可从其他的应用中调用这些代码。使用内部编后可从其他的应用中调用这些代码。使用内部编程语言可编写一些由若干程语言可编写一些由若干SQLSQL语句组成的过程,经语句组成的过程,经过预编译存储起来,需要时再调用,这样的过预编译

39、存储起来,需要时再调用,这样的SQLSQL语语句称为存储过程。句称为存储过程。JDBCJDBC提供的提供的CallableStatementCallableStatement接口用来对存储过程进行存取,该接口继承接口用来对存储过程进行存取,该接口继承PreparedStatementPreparedStatement接口。下面的程序片段将介绍接口。下面的程序片段将介绍如何使用如何使用CallableStatementCallableStatement接口:接口: 如下名为如下名为myProceduremyProcedure的存储过程。的存储过程。CREATE PROCEDURE CREATE

40、PROCEDURE myProceduremyProcedure(num (num in in 学学号号, , name name in in 姓姓名名, , sex sex in in 性性别别, , age age in in 年龄年龄, , specialityspeciality in in专业专业) )ASASBEGIN BEGIN INSERT INSERT INTO INTO TestStudent(numTestStudent(num, , name, name, sex, sex, age, age, specialityspeciality););END;END;Java调

41、用存储过程的代码如下:调用存储过程的代码如下:JavaJava调用存储过程的代码如下:调用存储过程的代码如下:CallableStatementCallableStatement cstmtcstmt = = con.prepareCall(callcon.prepareCall(call myProceduremyProcedure(?, (?, ?, ?, ?, ?, ?, ?) );?, ?) );cstmt.setInt(1, 5);cstmt.setInt(1, 5);cstmt.setString(2, cstmt.setString(2, 刘枫刘枫););cstmt.setStr

42、ing(3, cstmt.setString(3, 男男););cstmt.setInt(4, 23);cstmt.setInt(4, 23);cstmt.setString(5, cstmt.setString(5, 经济管理经济管理););cstmt.executeUpdate();12.5 JDBC本地驱动连接SQLServer2000数据库 SQLServer2000SQLServer2000的的本本地地驱驱动动程程序序是是第第四四种种JDBCJDBC驱驱动动,它它是是MicrosoftMicrosoft公公司司提提供供的的纯纯JavaJava驱驱动动。使使用用本本地地驱驱动动不不用用

43、设设置置数数据据源源,直直接接操操作作数数据据库库,而而且且速速度度很很快快。所所以以这这种种连连接接方方式式在在实实际际的的开开发发中中应用比较广泛。应用比较广泛。第一步:下载第一步:下载SQL_JDBCSQL_JDBC本地驱动本地驱动 SQL_JDBCSQL_JDBC本本地地驱驱动动是是免免费费的的,可可以以在在网网上上搜搜索索自自行行下载或在微软的官方主页下载,下载或在微软的官方主页下载,URLURL如下:如下:http:/ 在在 “C:Microsoft C:Microsoft SQL SQL Server Server 2000 2000 Driver Driver for for

44、JDBCJDBC”下下第二步:配置第二步:配置SQL_JDBCSQL_JDBC驱动驱动把把C:Microsoft C:Microsoft SQL SQL Server Server 2000 2000 Driver Driver for for JDBClibJDBClib文文件件夹夹下下的的mssqlserver.jarmssqlserver.jar,msutil.jarmsutil.jar,msbase.jarmsbase.jar拷拷贝贝到到“JDKJDK安装目录安装目录 jrejrelibextlibext”下下第三步:编码第三步:编码为了测试方便,我们采用了为了测试方便,我们采用了SQ

45、LServer2000数据库中默认的数据库中默认的“pubs”数据库。数据库。JDBC的的URL为为jdbc:microsoft:sqlserver:/127.0.0.1:1433;DatabaseName=pubs,如果是本地就设置为如果是本地就设置为127.0.0.1, 如果是远程就设置为远程如果是远程就设置为远程IP地址。地址。IP后面加后面加“:”用于设用于设置置SQLServer2000的端口,默认为的端口,默认为1433号端口。号端口。DatabaseName项设置要连接的数据库的名字。具体连接项设置要连接的数据库的名字。具体连接代码如下:代码如下:例例12.3SQL_JDBC.j

46、ava的源代码的源代码: :12.6 综合范例这节将配合这节将配合SwingAPI和和JDBC数据库技术写个简数据库技术写个简单的登陆程序。程序运行的界面见图单的登陆程序。程序运行的界面见图12.10。第一步:配置环境第一步:配置环境按按照照前前面面介介绍绍的的将将SQLServer2000SQLServer2000本本地地驱驱动动配配置置好好,并并能能正正确确运行程序。运行程序。第二步:建表第二步:建表启动启动SQLServer2000服务器,打开数据库中默认的服务器,打开数据库中默认的“pubs”数据库表数据库表(或自己指定,但要与程序对应或自己指定,但要与程序对应),右击,右击“表表”,

47、选择选择“新建表新建表”,建立如下图所示表,并,建立如下图所示表,并保存表,名为保存表,名为“Admin”。第三步:向表中添加记录第三步:向表中添加记录在在 SQLServer2000SQLServer2000的的 “企企 业业 管管 理理 器器 ”中中 的的“pubspubs”数数据据库库下下找找到到“AdminAdmin”表表,右右键键点点击击它它,选选择择“打打开开表表”、“返返回回所所有有行行”,打打开开表表后后向向其其中中添添加加要要登登陆陆的的用用户户的的用用户户名名和和密密码码。这这里里我我们们添添加加一一条条用用户户名名为为“adminadmin”,密码为密码为“123456123456”的记录。的记录。第四步:编写代码:第四步:编写代码:例例12.4源代码源代码

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号