




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章java在数据库的应用15.1 数据库的连接5.2 实例1利用Java应用程序访问 SQL Server 2000 数据库5.3 电子词典程序设计25.1 数据库的连接使用JDBC 连接数据库JDBC(Java DataBase Connectivity)是Java程序连接数据库的应用程序接口(API)。JDBC 由一群类和接口组成,通过调用这些类和接口所提供的成员方法,我们可以连接各种不同的数据库,进而使用标准的SQL命令对数据库进行查询、插入、删除、更新等操作。1.Java应用程序Java程序包括Java应用程序和小应用程序,主要是根据JDBC方法实现对数据库的访问和操作。完成的主要
2、任务有请求与数据库建立连接;向数据库发送SQL请求;为结果集定义存储应用和数据类型;查询结果;处理错误;控制传输、提交及关闭连接等操作。2.JDBC 编程要点(1)引用java.sql包:import java.sql.*;(2)使用Class.forName( )方法加载相应数据库的JDBC驱动程序:”);(3)定义JDBC的URL对象。例如:String conURL= “jdbc:odbc:TestDB”;其中TestDB是我们设置的数据源。(4)连接数据库:Connection s=DriverManager.getConnection(conURL);(5)使用SQL语句对数据库进行
3、操作。(6)解除Java与数据库的连接并关闭数据库。例如:s.close( ); 35.1.2 常用的JDBC类与方法1. DriverManage 类类是JDBC的管理器,负责管理JDBC驱动程序,跟踪可用的驱动程序并在数据库和相应驱动程序之间建立连接。如果我们要使用JDBC驱动程序,必须加载JDBC驱动程序并向DriverManage注册后才能使用。加载和注册驱动程序可以使用Class.forName( )这个方法来完成。此外,类还处理如驱动程序登录时间限制及登录和跟踪消息的显示等事务。类提供的常用成员方法如下: 4(1)public static synchronized Connect
4、ion getConnection(String url)throws SQLException方法。这个方法的作用是使用指定的数据库URL创建一个连接,使DriverManager从注册的JDBC驱动程序中选择一个适当的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException异常。(2)public static synchronized Connection getConnection(String url,Propertiesinfo)throws SQLException方法。这个方法使用指定的数据库URL和相关信息(用户名、用户密码等属性列表)来创建一个连接,使Dri
5、verManage从注册的JDBC驱动程序中选择一个适当的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException异常。(3)public static synchronized Connection getConnection(String url,String user,String password)throws SQLException方法。它使用指定的数据库URL、用户名和用户密码创建一个连接,使DriverManager从注册的JDBC驱动程序中选择一个适当的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException异常。(4)public stati
6、c Driver getDriver(String url)throws SQLException方法。它定位在给定URL下的驱动程序,让DriverManager从注册的JDBC驱动程序中选择一个适当的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException异常。(5)public static void deregisterDriver(Driverdriver)throws SQLException方法。这个方法的作用是从DriverManager列表中删除指定的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException异常。(6)public static
7、 int getLoginTimeout( )方法。它用来获取连接数据库时驱动程序可以等待的最大时间,以秒为单位。(7)public static PrintStream getLogStream( )方法。它用来获取DriverManager和所有驱动程序使用的日志PrintStream( )对象。(8)public static void println(String message)方法。它用来给当前JDBC日志流输出指定的消息。 52.Connection类类负责建立与指定数据库的连接。Connection类提供的常用成员方法如下:(1)public Statement createS
8、tatement( )throws SQLException方法,用来创建Statement类对象。(2)public Statement createStatement(int resultSetType,int resultSetConcurrecy)throws SQLException方法,用来按指定的参数创建Statement类对象。(3)public DatabaseMetaData getMetaData( )throws SQLException方法,用来创建DatabaseMetaData对象。不同数据库系统拥有不同的特性,DatabaseMetaData类不但可以保留数据库
9、的所有特性,并且还提供一系列成员方法获取数据库的特性,如取得数据库名称、JDBC驱动程序名、版本代号及连接数据库的JDBC URL。(4)public PreparedStatement prepareStatement(String sql)throws SQLException方法,用来创建PreparedStatement类对象。关于该类对象的特性将在后面介绍。(5)public void commit( )throws SQLException方法,用来提交对数据库执行添加、删除或修改记录(Record)的操作。(6)public boolean getAutoCommit( )thr
10、ows SQLException方法,用来获取Connection类对象的Auto_Commit(自动提交)状态。(7)public void setAutoCommit(boolean autoCommit)throws SQLException方法,用来设定Connection类对象的Auto_Commit(自动提交)状态。如果将Connection类对象的autoCommit设置为true,则它的每一个SQL语句将作为一个独立的事务被执行和提交。(8)public void rollback( )throws SQLException方法,用来取消对数据库执行过的添加、删除或修改记录(R
11、ecord)等操作,将数据库恢复到执行这些操作前的状态。(9)public void close( )throws SQLException方法,用来断开Connection类对象与数据库的连接。(10)public boolean isClosed( )throws SQLException方法,用来测试是否已关闭Connection类对象与数据库的连接。 63.Statement 类类的主要功能是将SQL命令传送给数据库,并将SQL命令的执行结果返回。Statement类提供的常用成员方法如下:(1)public ResultSet executeQuery(String sql)thro
12、ws SQLException 方法,用来执行指定的SQL查询语句,返回查询结果。如果发生数据库访问错误,则程序抛出一个SQLException异常。(2)public int executeUPdate(String sql)throws SQLException 方法,用来执行SQL的INSERT、UPDATE和DELETE语句,返回值是插入、修改或删除的记录行数或者是0。如果发生数据库访问错误,则程序抛出一个SQLException异常。(3)public boolean execute(String sql)throws SQLException 方法,用来执行指定的SQL语句,执行结
13、果有多种情况。如果执行结果为一个结果集对象,则返回true,其他情况返回false。如果发生数据库访问错误,则程序抛出一个SQLException异常。(4)public ResultSet getResultSet( )throws SQLException 方法,用来获取ResultSet对象的当前结果集。对于每一个结果只调用一次。如果发生数据库访问错误,则程序抛出一个SQLException异常。(5)public int getUpdateCount( )throws SQLException 方法,用来获取当前结果的更新记录数,如果结果是一个ResultSet对象或没有更多的结果,则
14、返回-1。对于每一个结果只调用一次。如果发生数据库访问错误,则程序抛出一个SQLException异常。(6)public void clearWarnings( )throws SQLException 方法,用来清除Statement对象产生的所有警告信息。如果发生数据库访问错误,则程序抛出一个SQLException异常。(7)public void close( )throws SQLException 方法,用来释放清除Statement对象的数据库和JDBC资源。如果发生数据库访问错误,则程序抛出一个SQLException异常。 74.PreparedStatement类类的对象
15、可以代表一个预编译的SQL语句,它是Statement接口的子接口。由于PreparedStatement类会将传入SQL编译并暂存在内存中,所以当某一SQL命令在程序中被多次执行时,使用PreparedStatement类的对象执行速度要快于Statement类的对象。因此,将需要多次执行的SQL语句创建为PreparedStatement对象,可以提高效率。PreparedStatement对象继承Statement对象的所有功能,另外还添加一些特定的方法。PreparedStatement类提供的常用成员方法如下:(1)public ResultSet executeQuery( )th
16、rows SQLExceptiion 方法,使用SQL指令SELECT对数据库进行记录查询操作,并返回ResultSet对象。(2)public int executeUpdate( )throws SQLException 方法,使用SQL指令INSERT、DELETE和UPDATE对数据库进行添加、删除和修改记录(Record)操作。(3)public void setDate(int parameterIndex,Date x)throws SQLExceptiion 方法,用来给指定位置的参数设定日期型数值。(4)public void setTime(int parameterInd
17、ex,Time x)throws SQLExceptiion 方法,用来给指定位置的参数设定时间型数值。(5)public void setDouble(int parameterIndex,double x)throws SQLExceptiion 方法,用来给指定位置的参数设定Double型数值。(6)public void setFloat(int parameterIndex,float x)throws SQLExceptiion 方法,用来给指定位置的参数设定浮点型数值。(7)public void setInt(int parameterIndex,int x)throws SQ
18、LExceptiion 方法,用来给指定位置的参数设定整数型数值。(8)public void setNull(int parameterIndex,int sqlType)throws SQLExceptiion 方法,用来给指定位置的参数设定NULL型数值。 85.2 实例1利用Java应用程序访问SQL Server 2000 数据库数据库技术和网络技术是当前计算机领域的两大热门话题,数据库技术自产生以来,在技术上已发展成熟。而作为前端访问的开发工具和环境仍处在不断完善和发展中,除了网络上使用的ASP、PHP、JSP 作为前端连接数据库技术外,小型系统上常用的访问数据库技术有Delphi
19、、Visual Basic、PowerBuilder及Visual C+等,而Java也是其中之一。Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据库的技术。利用Java语言中JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。JDBC (Java Database Connectivity, Java 数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如 Access
20、、SQL Server 2000、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中数据,而不必再为每一种数据库系统编写不同的Java 程序代码。SQL Server 2000 是微软公司新一代的数据库产品,它是在 SQL Server 7.0建立的坚固基础上产生的,并对SQL Server 7.0做了大量扩展。SQL Server 2000通过高端硬件平台以及最新网络和存储技术的支持,可为最大的Web站点和企业级应用提供可扩展性和高可靠性。 91.JDBC、ODBC接口Java应用程序通过JDBC API(java.sql)与数据库连接,而实际的动作则是由JDBC驱动程
21、序管理器(JDBC Driver Manager)通过JDBC驱动程序与数据库系统进行连接。ODBC(Open DataBase Connectivity)即开放式的接口,它为用户提供了一个访问关系数据库的标准接口,对于不同的数据库它提供了一套统一的API;可以使应用程序通过API访问任何提供了ODBC驱动程序的数据库,而目前所有的关系数据库都提供了ODBC驱动程序,所以OBDC已经成为数据库访问的业界标准,并得到了广泛应用。JDBC-ODBC桥是一种JDBC驱动程序,它通过将JDBC操作转换为ODBC操作来实现的。利用JDBC-ODBC桥可以使程序开发人员不需要学习更多的知识就可以编写JDB
22、C应用程序,并能够充分利用现有的ODBC数据源。JDBC-ODBC桥驱动程序可以使JDBC能够访问几乎所有类型的数据库。5.2.1 Java通过JDBC、ODBC接口访问数据库102.利用Java应用程序访问SQL Server 2000 数据库(1)建立数据库。启动“Microsoft SQL Server 2000 ”,打开“企业管理器”,在“数据库”中建立名为“mydata”的数据库,并在其下建立名为“wuzi”的数据表,如图5-1所示。(2)建立(ODBC)数据源和驱动程序。 11在控制面板上通过“管理工具”的“数据源(ODBC)”打开“ODBC数据源管理器”对话框,单击“系统DSN”
23、选项卡,然后单击“添加”按钮,得到“创建数据源”对话框,选择“SQL Server”并单击“完成”按钮,在出现的“建立新的数据源到SQL Server”对话框中的“数据源名称”项填写“wzgl”并选取“服务器名”,然后单击“下一步”按钮,选择“使用网络登录ID的Windows NT验证”项目,单击“下一步”按钮,把默认的数据库改为“mydata”,再单击“下一步”,单击“完成”按钮,然后可以单击“测试数据源”,成功后,单击“确定”按钮,就完成了(ODBC)数据源和驱动程序的建立。 123.编写代码/*程序文件名称:jdbc.java*功能:实现数据查询功能*/import java.awt.*
24、;import .*;import java.sql.*;public class jdbc /定义主类public static void main(String args ) GUI gui=new GUI( );/创建类GUI的对象 gui.pack( );/装载执行GUI类 class GUI extends Frame implements ActionListener TextArea text; Panel panel; TextField sno; 13Button btn; GUI( ) /构造方法 super(物资情况查询); setLayout(new BorderLay
25、out( ); setBackground(Color.cyan); setVisible(true); text=new TextArea( ); btn=new Button(查询); sno=new TextField(16); panel=new Panel( ); panel.add(new Label(输入被查询的物资编号:); panel.add(sno); panel.add(btn); add(North,panel); add(text, Center); text.setEditable(false); btn.addActionListener(this); addWi
26、ndowListerner(new WindowAdapter( ) public void windowClosing(WindowEvent e) System.exit(0); ); 14public void actionPerformed(ActionEvent e) if(e.getSource( )=btn) /当用户按下查询按钮时 text.setText(查询结果+n); /显示提示信息 try Liststudent( ); catch(SQLException ee) public void Liststudent( )throws SQLException /针对数据库
27、的操作 String bh,mc,xh,lb,dw,sj; int sl; float dj,je; try ); catch(ClassNotFoundException e) Connection con=DriverManager.getConnection(jdbc:odbc:wzgl); 15Statement sql=con.createStatement(); /创建Statement对象 ResultSet rs=sql.executeQuery(select * from wuzi); while(rs.next( ) /输出被查询的情况 bh=rs.getString(物资
28、编号); mc=rs.getString(物资名称); xh=rs.getString(规格型号); lb=rs.getString(类别); dw=rs.getString(计量单位); sl=rs.getInt(数量); dj=rs.getFloat(单价); je=rs.getFloat(金额); sj=rs.getDate(时间).toString( ); if(bh.trim( ).equals(sno.getText( ).trim( ) text.append(n+ 物资编号+ + 物资名称+ + 规格型号+ + 类别+ + 计量单位+ + 数量+ + 单价+ + 金额+ + 时
29、间+n); text.append(n+ bh+ +mc+ +xh+ +lb + +dw+ +sl+ +dj+ +je+ +sj+ + n); 164.运行程序首先编译:javac jdbc.java。编译成功后,执行:java jdbc。执行后在文本框中输入要查询物资的物资编号,单击“查询”按钮,在下面的文本框中显示被查询物资的所有信息。如图5-2所示。17/初始化窗体结束70: public void readRecord()71: 72: BankAccountRecord record;/从文件中输入值73: try74: 75: record=(BankAccountRecord)input.readObject
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 7300.308-2025饲料添加剂第3部分:矿物元素及其络(螯)合物苏氨酸锌螯合物
- 项目四运营抖音短视频李丽泸州97课件
- 硅酮胶采购2025年
- 2020-2025年中级注册安全工程师之安全生产法及相关法律知识全真模拟考试试卷A卷含答案
- 二零二五年度智能家居系统集成房屋修缮合同
- 二零二五年度高级会计师职业责任担保合同
- 2025年度民事违约起诉书:涉及智慧城市建设的合同纠纷解决
- 2025版车库购置与产权登记服务合同范本
- 二零二五年度#筑梦的舞者#舞蹈培训机构品牌合作合同
- 二零二五年新型餐厅部分股权转让与餐饮品牌建设协议
- 2025年广州市海珠区华洲街道招聘雇员(4人)笔试备考试题含答案详解(综合题)
- 山西省大同市恒山水库清淤及矿山修复工程
- Java程序设计全套课件完整版
- 中国石油招聘考试最新全真模拟笔试试题(通用能力卷)和答案解析(二)
- 全国县市区地名翻译中英对照
- 地下室后浇带预制免拆封堵施工工法
- 口腔疾病分子生物学课件
- 工程物料五金商品清单大全及价格
- 脏腑图点穴法(精校版)
- 小学数学六年级上册第三单元测试卷
- 表冷器性能计算书
评论
0/150
提交评论