(第三、四讲)ch04 JDBC编程技术ppt课件

上传人:我*** 文档编号:148780448 上传时间:2020-10-22 格式:PPT 页数:31 大小:249.50KB
返回 下载 相关 举报
(第三、四讲)ch04 JDBC编程技术ppt课件_第1页
第1页 / 共31页
(第三、四讲)ch04 JDBC编程技术ppt课件_第2页
第2页 / 共31页
(第三、四讲)ch04 JDBC编程技术ppt课件_第3页
第3页 / 共31页
(第三、四讲)ch04 JDBC编程技术ppt课件_第4页
第4页 / 共31页
(第三、四讲)ch04 JDBC编程技术ppt课件_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《(第三、四讲)ch04 JDBC编程技术ppt课件》由会员分享,可在线阅读,更多相关《(第三、四讲)ch04 JDBC编程技术ppt课件(31页珍藏版)》请在金锄头文库上搜索。

1、JDBC编程技术,MySQL数据库 JDBC编程基本概念 JDBC高级编程 数据库分层设计,本章主要目标,MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。另外MySQL尤其受到Java教育的欢迎。是学习Java EE编程者的首选数据库。,MySQL数据库,JDBC是一种可用于执行SQL语句的JavaAPI (Application Prog

2、ramming Interface,即应用程序设计接口)。它由一些Java类组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。 通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问SyBase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在

3、不同的平台上编写不同的应用。,JDBC编程基本概念(1),简单地说,JDBC能完成下列三件事: (1) 同一个数据库建立连接; (2) 向数据库发送SQL语句; (3) 处理数据库返回的结果。,JDBC编程基本概念(2),JDBC是一种可用于执行SQL语句的JavaAPI (Application Programming Interface,即应用程序设计接口)。它由一些Java类组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。 通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一

4、种数据库。也就是说,开发人员可以不必写一个程序访问SyBase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。,JDBC数据库编程基本步骤(1),第1步:将驱动程序导入到工程,程序中加载驱动。 应用程序与数据库是两个独立的产品,如果我们使用Java连接数据库,我们需要驱动将两者联系起来。如果把连接对象看做是应用程序同数据库连接的桥梁的话,驱动程序类似于建造该桥梁的原材料。

5、随着连接的数据库不同,驱动也不同。JDBC驱动程序是由很多访问数据库的类构成,为了管理方便将这些类打包成一个.jar文件。驱动可以在网上下载。并且需要添加到工程中。我们访问MySQL数据库驱动文件为”mysql-connector-java-3.1.10-bin.jar” String driver=com.mysql.jdbc.Driver;/驱动程序描述字符串 Class.forName(driver);/在程序中根据驱动程序描述字符串加载驱动程序,JDBC数据库编程基本步骤(2),第2步:创建连接对象Connection 在主函数中定义的连接数据库字符串url,url包括数据库服务器地址

6、及数据库名。我在这里使用的是MySQL数据库,所以我用的是MySQL驱动程序,不同的数据库用不同的驱动程序,如果你用的不是MySQL,请替换此行。服务器地址是你安装数据库的主机的IP,如果在本机,你也可以用localhost来连接。数据库名是你已经在数据库系统中建立过的,这里是support. String url=jdbc:mysql:/127.0.0.1:3306/support; /一般形式是jdbc:mysql:/数据库IP地址:端口/数据库名 Connection con=DriverManager.getConnection(url,root,1234); /root,1234是连

7、接MySQL的用户名,密码,根据实际情况修改,JDBC数据库编程基本步骤(3),第3步:在连接对象上创建命令对象Statement 通过Statement类所提供的方法,可以利用标准的SQL命令,对数据库直接新增、删除或修改操作 Statement cmd=con.createStatement(); 第4步:执行SQL语句 String sql=select * from customers; 执行select语句,返回结果集ResultSet,ResultSet本质上是指向数据行的游标。每调用一次 next() 方法,游标向下移动一行。最初它位于第一行之前,因此第一次调用 next 将把光

8、标置于第一行上,使它成为当前行。随着每次调用 next 导致游标向下移动一行,按照从上至下的次序获取ResultSet 行。,JDBC数据库编程基本步骤(4),create table students( sno int not null primary key, sname varchar(15) , ssex varchar(2), sdept varchar(15) ); 则我们执行查询命令之后取数据语句如下: Statement cmd=con.createStatement(); String sql=select * from students; ResultSet rs=cmd.

9、executeQuery(sql);,JDBC数据库编程基本步骤(5),while(rs.next() int sno=rs.getInt(1);/表示取当前行第一列,因为这列数据类型是int类型的所以使用getInt()方法 String sname=rs.getString(2); /表示取当前行第二列 String ssex=rs.getString(3); /表示取当前行第三列 String sdept=rs.getString(4); /表示取当前行第四列 System.out.printf(%-8d%-20s%-3s%-20sn,sno,sname,ssex,sdept); 第5步

10、:关闭连接。 关闭连接是一种好的编程习惯。不使用数据库就不要占着连接了。 con.close();,JDBC数据库编程基本步骤(6),完整示例 连SQL Server 数据库的加载驱动、创建连接 : driver=com.microsoft.jdbc.sqlserver.SQLServerDriver url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=usermanager;,JDBC数据库编程基本步骤(7),JDBC高级编程(1),1、PreparedStatement 概念 什么是带参数的Sql语句,在JDBC中如果Sql语句带有?(占位符)号

11、,如:String sql= select * from students where sno=?;这里并不是表示查询学号为?的学生,而是表示这里是一个参数,在执行该语句之前,必须到参数赋值。 在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,减少使用Statement。基于以下的原因:,(1) 代码的可读性和可维护性 虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码好多了。 cmd.executeUpda

12、te(insert into tb_name (col1,col2,col2,col4) values (+var1+,+var2+,+var3+,+var4+); cmd = con.prepareStatement(insert into tb_name (col1,col2,col2,col4) values (?,?,?,?),JDBC高级编程(2),(2) PreparedStatement提高性能 每一种数据库都会尽最大努力对预编译语句提供最大的性能优化.因为预编译语句有可能被重复调用。所以语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要

13、编译,只要将参数直接传入编译过的语句执行代码中(相当于一个涵数)就会得到执行。,JDBC高级编程(3),2、如何使用PreparedStatement 第1步:通过连接获得PreparedStatement对象,用带占位符(?)的构造sql语句。 PreparedStatement cmd = con.preparedStatement( “select * from Students where sname=?”); 第2步:设置输入参数值 。一定要在执行sql语句设置值。 cmd.setString(1,张三);/1表示从左到右数的第一个参数,张三是为第一个参数设置的值,如果还有其它参数需

14、要一个一个赋值。,JDBC高级编程(4),第3步:执行sql语句 rs = cmd.excuteQuery(); Statement发送完整的Sql语句到数据库不是直接执行而是由数据库先编译,再运行。每次都需要编译。而PreparedStatement是先发送带参数的Sql语句,由数据库先编译,再发送一组组参数值。,JDBC高级编程(5),JDBC高级编程(6),元数据最本质、最抽象的定义为:data about data (关于数据的数据)。它是一种广泛存在的现象,在许多领域有其具体的定义和应用。简单的说元数据就是关于数据的数据或关于信息的信息。例如:书的文本就是书的数据,而书名、作者、版权

15、数据都是书的元数据。一般数据库系统用他来表示数据的信息,例如数据的类型,长度,存放位置等关于数据的信息用来管理和维护数据。元数据的使用,可以大大提高系统的检索和管理的效率。连接和结果集的大量信息可以从元数据对象中得到,JDBC提供了两个元数据对象类型DatabaseMetaData和ResultSetMetaData。,如何获得元数据 MetaData(1),JDBC通过元数据(MetaData)来获得具体的表的相关信息,例如,可以查询数据库中有哪些表,表有哪些字段,以及字段的属性等。MetaData中通过一系列getXXX将这些信息返回给我们。 数据库元数据 Database MetaDat

16、a 用connection.getMetaData()获得;包含了关于数据库整体元数据信息。 结果集元数据 ResultSet MetaData 用resultSet.getMetaData()获得;比较重要的是获得表的列名,列数等信息。,如何获得元数据 MetaData(2),1、结果集元数据对象:ResultSetMetaData meta = rs.getMetaData(); 字段个数:meta.getColomnCount(); 字段名字:meta.getColumnName(); 字段JDBC类型:meta.getColumnType(); 字段数据库类型:meta.getColumnTypeName(); 2、数据库元数据对象:DatabaseMetaData dbmd = con.getMetaData(); 数据库名:dbmd.getDatabaseProductName(); 数据库版本号:dbmd.getDatabaseProductVe

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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