JDBC数据库访问.ppt
《JDBC数据库访问.ppt》由会员分享,可在线阅读,更多相关《JDBC数据库访问.ppt(119页珍藏版)》请在三一办公上搜索。
1、Java Web 编程技术,第7章 JDBC数据库访问,7.1 数据库简介 7.2 Java数据库技术概述 7.3 传统的数据库连接方法7.4 JDBC API介绍7.5 访问数据库元数据(自学)7.6 预处理语句7.7 使用数据源连接数据库(自学)7.8 DAO设计模式介绍7.9可调用语句7.10事务处理(自学),7.1 数据库简介,PostgreSQL MySQLSQL ServerORACLE,7.1.1 PostgreSQL数据库简介,PostgreSQL是对象关系型数据库管理系统(ORDBMS)它起源于伯克利(BSD)的数据库研究计划,目前是最重要的开源数据库产品开发项目之一,有着非
2、常广泛的用户PostgreSQL支持事务、子查询、多版本并发控制、数据完整性检查等特性,并且支持多语言的应用开发能在包括Linux、FreeBSD和Windows等多种平台下运行,PostgreSQL的下载和安装,计算机系统必须满足下面要求:CPU:Intel或AMD的32位或64位CPU。操作系统:Windows、Linux、FreeBSD(UNIX)、MAC。磁盘格式:文件系统为NTFS格式。用户:以系统管理员身份安装PostgreSQL。目前的最新版本是9.1.3版。下载地址:http:/,使用pgAdmin III 操作数据库,在数据库名模式public 数据表下查看或新建数据表,使用
3、工具查询工具,查询数据库数据,7.1.2 MySQL数据库简介,MySQL是目前最为流行的开放源代码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典的MySQL AB 公司(开发人Michael Widenius and David Axmark)于1995年开始发布2008年2月26日,Sun公司并购MySQL AB 公司,2010年1月27日,Oracle公司并购了Sun公司,现在MySQL属于Oracle。版本:开源版MySql5.5,企业服务器版MySql5.6,集群版MySql7.1下载地址http:/,7.1.2 MySQL数据库简介,一种完全免费的产品,被广泛地应用在
4、中小型网站和管理系统中具有功能强大、支持跨平台、运行速度快、支持面向对象、安全性高、成本低、支持各种开发语言、数据存储量大、支持强大的内置函数等特点能在包括Linux、FreeBSD和Windows等多种平台下运行,用SQLyog工具管理MySQL数据库下载地址http:/,7.1.3 SQL Server数据库简介,SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),提供了一个可靠的、高效的、智能化的数据平台经历7.0,2000,2005,2008等版本,其中SQL Server 2008分为SQL Server 2008企业版、标准版、工作组版、Web版、
5、开发者版、Express版(免费)、Compact 3.5版SQL Server 2008企业版是一个全面的数据管理和业务智能平台,为关键业务应用提供了企业级的可扩展性、数据仓库、安全、高级分析和报表支持。,SQL Server 2008标准版是一个完整的数据管理和业务智能平台,为部门级应用提供了最佳的易用性和可管理特性。SQL Server 2008工作组版是一个值得信赖的数据管理和报表平台,用以实现安全的发布、远程同步和对运行分支应用的管理能力。这一版本拥有核心的数据库特性,可以很容易地升级到标准版或企业版。SQL Server 2008 Web版是针对运行于Windows服务器中要求高可
6、用、面向Internet Web服务的环境而设计。这一版本为实现低成本、大规模、高可用性的Web应用或客户托管解决方案提供了必要的支持工具。SQL Server 2008开发者版允许开发人员构建和测试基于SQL Server的任意类型应用。这一版本拥有所有企业版的特性,但只限于在开发、测试和演示中使用。基于这一版本开发的应用和数据库可以很容易地升级到企业版。,7.1.3 SQL Server数据库简介,SQL Server 2008 Express版是SQL Server的一个免费版本,它拥有核心的数据库功能,其中包括了SQL Server 2008中最新的数据类型,但它是SQL Server
7、的一个微型版本。这一版本是为了学习、创建桌面应用和小型服务器应用而发布的。SQL Server Compact是一个针对开发人员而设计的免费嵌入式数据库,这一版本的意图是构建独立、仅有少量连接需求的移动设备、桌面和Web客户端应用。SQL Server Compact可以运行于所有的微软Windows平台之上,包括Windows XP和Windows Vista操作系统,以及Pocket PC和SmartPhone设备。,7.1.3 SQL Server数据库简介,在配置工具Sql Server配置管理器中启动Sql Server2008服务,用Sql Server management st
8、udio打开Sql Server2008控制台,7.1.4 ORACLE数据库,Oracle是目前关系型数据库管理系统市场中应用最广泛的产品,最新的Oracle版本是Oracle 11g劳伦斯埃里森和他的朋友Bob Miner和Ed Oates在1977年建立了软件开发实验室咨询公司(SDL,Software Development Laboratories)。SDL开发了Oracle软件的最初版本ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化ORACLE数据库在逻辑上是由许多表空间构成ORACLE的详细信息参见百度百科http:/
9、,用PL/SQL Developer管理Oracle数据库,7.2 Java数据库技术概述,Java程序是通过JDBC(Java DataBase Connection)访问数据库的。该工具包使得Java编程人员可以连接到一个数据库,进而使用SQL 对数据库进行查询和更新操作可以理解成是对查询分析器的模拟实现JDBC的基本功能包括:建立与数据库的连接;发送SQL语句;处理数据库操作结果。,Java数据库应用程序,JDBC驱动程序管理器,JDBC/ODBC桥接器,ODBC驱动程序,DB供应商提供的JDBC驱动程序,DB,JDBC API,JDBC驱动程序 API,SQL命令,(SQL Serve
10、r、Oracle),JDBC运行原理,JDBC与JDBC驱动程序的关系,JDBC,=,JDBC驱动程序管理器,JDBC DriverAPI,+,供编程人员使用,供数据库厂商使用,JDBCAPI,+,java.sql包,数据库厂商提供,JDBC的结构,数据库访问的两层和三层模型,两层模型即客户机/数据库服务器结构,也就是通常所说的C/S(Client/Server)结构三层模型是指客户机/应用服务器/数据库服务器结构,也就是通常所说的B/S(Browser/Server)结构,JDBC驱动程序,在Java程序中可以使用的数据库驱动程序主要有四种类型,常用的有下面两种:JDBC-ODBC桥驱动程序
11、专为某种数据库而编写的驱动程序postgreSQL驱动包:postgresql-9.0-801.jdbc4.jarMySQL驱动包:mysql-connector-java-5.0.8-bin.jarSql Server驱动包:sqljdbc.jarOracle驱动包:classes12.jar以上驱动包可到进入Web应用开发课程的教学材料学习参考资料 下载,安装JDBC驱动程序,使用JDBC-ODBC桥驱动程序连接数据库,不需要安装驱动程序,因为在Java API中已经包含了该驱动程序。使用专用驱动程序连接数据库,必须安装驱动程序。在开发Web应用程序中,需要将驱动程序打包文件复制到:Tom
12、cat安装目录的lib目录中Web应用程序的WEB-INFclasseslib目录中Eclipse工程的build path中,Java访问数据库的过程,7.3 传统的数据库连接方法,7.3.1 加载驱动程序7.3.2 建立连接对象7.3.3创建语句对象7.3.4获得SQL语句的执行结果7.3.5关闭建立的对象,释放资源7.3.6简单的应用示例,7.3.1 加载驱动程序,使用Class类的forName()静态方法,该方法的声明格式为:public static Class forName(String className)throws ClassNotFoundException如果使用OD
13、BC-JDBC桥驱动程序,则使用JDK自带的驱动程序,名称为“sun.jdbc.odbc.JdbcOdbcDriver”Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);数据库厂商提供的专门的驱动程序,应该给出专门的驱动程序名。,几种常见数据库的加载驱动程序代码,PostgreSQL数据库:Class.forName(org.postgresql.Driver);MySQL数据库:Class.forName(com.mysql.jdbc.Driver);SQL Server数据库:Class.forName(com.microsoft.jdbc.sqlse
14、rver.SQLServerDriver);Oracle数据库:Class.forName(oracle.jdbc.driver.OracleDriver);,7.3.2 建立连接对象,使用DriverManager类的getConnection()DriverManager类的静态方法getConnection(),该方法的声明格式为:public static Connection getConnection(String dburl)public static Connection getConnection(String dburl,String user,String passwor
15、d),如果通过JDBC-ODBC桥驱动程序连接数据库,URL的形式为:jdbc:odbc:DataSource例如:String dburl=jdbc:odbc:Bookstore;如果使用专门的驱动程序连接数据库,JDBC URL可能更复杂一些。例如要连接PostgreSQL数据库,它的JDBC URL为:jdbc:postgresql:/localhost:5432/dbnameString dburl=jdbc:postgresql:/localhost:5432/bookstore;Connection conn=DriverManager.getConnection(dburl,bo
16、okstore,bookstore);,7.3.2 建立连接对象(续),连接MySQL数据库为:String dburl=jdbc:mysql:/localhost:3306/bankConnection conn=DriverManager.getConnection(dburl,root,111111);连接SQL Server数据库为:String dburl=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=web2011Connection conn=DriverManager.getConnection(dburl,web,
17、web2011);连接Oracle数据库为:String dburl=jdbc:oracle:thin:localhost:1521:ORCLConnection conn=DriverManager.getConnection(dburl,system_dba,123456);,7.3.2 建立连接对象(续),7.3.3创建语句对象,对于不同的语句对象,可以使用Connection接口的不同方法创建。例如,要创建一个简单的Statement对象可以使用createStatement()方法,Statement stmt=conn.createStatement();创建PreparedSta
18、tement对象(预编译的 SQL 语句)应使用prepareStatement()方法创建CallableStatement对象(用于执行 SQL 存储过程)应使用prepareCall()方法。,7.3.4获得SQL语句的执行结果,对于查询语句,调用executeQuery(String sql)方法,如:String sql=SELECT*FROM books;ResultSet rst=stmt.executeQuery(sql);while(rst.next()out.print(rst.getString(1)+t);对于语句如CREATE、ALTER、DROP、INSERT、UP
19、DATE、DELETE等须executeUpdate(String sql)方法。该方法返回值为整数,用来指示被影响的行数。,7.3.5关闭建立的对象,释放资源,在Connection接口、Statement接口和ResultSet接口中都定义的close()方法。当这些对象使用完毕后应使用close()方法关闭建立的对象,关闭对象应该按与建立对象相反的顺序关闭,从而释放资源。例如:conn.close();,7.3.6 简单的应用示例,1、连接postgreSQL、MySQL和SQL Server数据库的例子(1)连接postgreSQL:testPostgreSQL.jsp(2)连接MyS
20、QL:testMySQL.jsp(3)连接SQL Server:testSqlServer.jsp,连接PostgreSQL数据库的主要代码testPostgreSQL.jsp,连接MySQL数据库的主要代码testMySQL.jsp,连接SQLServer数据库的主要代码testSqlServer.jsp,7.3.6 简单的应用示例,2、基于MVC设计模式实现数据库查询:从JSP页面输入一个书号,查询该书的信息,该应用的程序代码(P189):模型:BookBean.java 视图:bookQuerys.jsp showBook.jsp error.jsp控制器:BookQueryServle
21、t.java,7.4 JDBC API介绍,JDBC API是Java语言的标准API,目前的最新版本是JDBC 4.0。在JDK 6.0中,它是通过两个包提供的:java.sql包 javax.sql包java.sql包提供了基本的数据库编程的类和接口,如驱动程序管理类DriverManager、创建数据库连接Connection接口、执行SQL语句以及处理查询结果的类和接口等。javax.sql包主要提供了服务器端访问和处理数据源的类和接口,如DataSource、RowSet、RowSetMetaData、PooledConnection接口等,它们可以实现数据源管理、行集管理以及连接池
22、管理等。,java.sql包,javax.sql包中的类和接口,javax.sql.DataSource和java.sql.Connection之间的关系,连接池化过程中涉及的关系,分布式事务支持中涉及的关系,行集涉及的关系,Connection对象代表与数据库的连接,也就是在加载的驱动程序与数据库之间建立连接。一个应用程序可以与一个数据库建立一个或多个连接,或者与多个数据库建立连接。得到连接对象后,可以调用Connection接口的方法创建SQL语句对象以及在连接对象上完成各种操作,下面是Connection接口的常用方法:public Statement createStatement()
23、,7.4.1 Connection接口,public DatabseMetaData getMetaData()所连接的数据库的元数据public void setAutoCommit(boolean autoCommit)public boolean getAutoCommit()获取自动提交模式public void commit()提交对数据库的更新操作,使更新写入数据库。只有当setAutoCommit()设置为false时才应该使用该方法。public void rollback()回滚对数据库的更新操作。只有当setAutoCommit()设置为false时才应该使用该方法。pub
24、lic void close()public boolean isClosed(),7.4.2 Statement对象,通过Connection对象可以创建SQL语句对象,SQL语句对象有三种:Statement、PreparedStatement和CallableStatement。通过调用Connection接口的相应方法可以得到这三种语句对象。Statement接口对象主要用于执行一般的对数据库操作SQL语句,调用Statement对象的方法可以执行SQL语句,返回一个ResultSet结果集对象。,public ResultSet executeQuery(String sql)该方法
25、用来执行SQL查询语句。查询结果以ResultSet对象返回。public int executeUpdate(String sql)执行由字符串sql指定的SQL语句,该语句可以是INSERT、DELETE、UPDATE语句或者无返回的SQL语句,如CREATE TABLE。返回值是更新的行数,如果语句没有返回则返回值为0。public boolean execute(String sql)执行可能有多个结果集的SQL语句,sql为任何的SQL语句。如果语句执行的第一个结果为ResultSet对象,该方法返回true,否则返回false。public Connection getConnec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JDBC 数据库 访问
链接地址:https://www.31ppt.com/p-6510350.html