JDBC数据库访问.ppt
《JDBC数据库访问.ppt》由会员分享,可在线阅读,更多相关《JDBC数据库访问.ppt(119页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java Web Java Web Java Web Java Web 编程技术编程技术编程技术编程技术第第7 7章章 JDBCJDBC数据库访问数据库访问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 数据库简介vPostgreSQLvMySQLvSQLServervORACLE7.1.1 PostgreSQL数据库简介vPostgreSQL是对象关系型数据库管理系统(ORD
2、BMS)v它起源于伯克利(BSD)的数据库研究计划,目前是最重要的开源数据库产品开发项目之一,有着非常广泛的用户vPostgreSQL支持事务、子查询、多版本并发控制、数据完整性检查等特性,并且支持多语言的应用开发v能在包括Linux、FreeBSD和Windows等多种平台下运行PostgreSQL的下载和安装 v计算机系统必须满足下面要求:CPU:Intel或AMD的32位或64位CPU。操作系统:Windows、Linux、FreeBSD(UNIX)、MAC。磁盘格式:文件系统为NTFS格式。用户:以系统管理员身份安装PostgreSQL。v目前的最新版本是9.1.3版。v下载地址:ht
3、tp:/ III 操作数据库 在数据库名模式public 数据表下查看或新建数据表使用工具查询工具,查询数据库数据 7.1.2 MySQL数据库简介vMySQL是目前最为流行的开放源代码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典的MySQLAB公司(开发人MichaelWideniusandDavidAxmark)于1995年开始发布v2008年2月26日,Sun公司并购MySQLAB公司,2010年1月27日,Oracle公司并购了Sun公司,现在MySQL属于Oracle。v版本:开源版MySql5.5,企业服务器版MySql5.6,集群版MySql7.1v下载地址htt
4、p:/ MySQL数据库简介v一种完全免费的产品,被广泛地应用在中小型网站和管理系统中v具有功能强大、支持跨平台、运行速度快、支持面向对象、安全性高、成本低、支持各种开发语言、数据存储量大、支持强大的内置函数等特点v能在包括Linux、FreeBSD和Windows等多种平台下运行用SQLyog工具管理MySQL数据库下载地址http:/7.1.3 SQL Server数据库简介vSQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),提供了一个可靠的、高效的、智能化的数据平台v经历7.0,2000,2005,2008等版本,其中SQLServer2008分为SQL
5、Server2008企业版、标准版、工作组版、Web版、开发者版、Express版(免费)、Compact3.5版vSQLServer2008企业版是一个全面的数据管理和业务智能平台,为关键业务应用提供了企业级的可扩展性、数据仓库、安全、高级分析和报表支持。vSQLServer2008标准版是一个完整的数据管理和业务智能平台,为部门级应用提供了最佳的易用性和可管理特性。vSQLServer2008工作组版是一个值得信赖的数据管理和报表平台,用以实现安全的发布、远程同步和对运行分支应用的管理能力。这一版本拥有核心的数据库特性,可以很容易地升级到标准版或企业版。vSQLServer2008Web版
6、是针对运行于Windows服务器中要求高可用、面向InternetWeb服务的环境而设计。这一版本为实现低成本、大规模、高可用性的Web应用或客户托管解决方案提供了必要的支持工具。vSQLServer2008开发者版允许开发人员构建和测试基于SQLServer的任意类型应用。这一版本拥有所有企业版的特性,但只限于在开发、测试和演示中使用。基于这一版本开发的应用和数据库可以很容易地升级到企业版。7.1.3 SQL Server数据库简介vSQLServer2008Express版是SQLServer的一个免费版本,它拥有核心的数据库功能,其中包括了SQLServer2008中最新的数据类型,但它
7、是SQLServer的一个微型版本。这一版本是为了学习、创建桌面应用和小型服务器应用而发布的。vSQLServerCompact是一个针对开发人员而设计的免费嵌入式数据库,这一版本的意图是构建独立、仅有少量连接需求的移动设备、桌面和Web客户端应用。SQLServerCompact可以运行于所有的微软Windows平台之上,包括WindowsXP和WindowsVista操作系统,以及PocketPC和SmartPhone设备。7.1.3 SQL Server数据库简介在配置工具Sql Server配置管理器中启动Sql Server2008服务用Sql Server management s
8、tudio打开Sql Server2008控制台7.1.4 ORACLE数据库vOracle是目前关系型数据库管理系统市场中应用最广泛的产品,最新的Oracle版本是Oracle11gv劳伦斯埃里森和他的朋友BobMiner和EdOates在1977年建立了软件开发实验室咨询公司(SDL,SoftwareDevelopmentLaboratories)。SDL开发了Oracle软件的最初版本vORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化vORACLE数据库在逻辑上是由许多表空间构成vORACLE的详细信息参见百度百科http:/
9、Developer管理Oracle数据库7.2 Java数据库技术概述 vJava程序是通过JDBC(Java DataBase Connection)访问数据库的。该工具包使得Java编程人员可以连接到一个数据库,进而使用SQL 对数据库进行查询和更新操作可以理解成是对查询分析器的模拟实现vJDBC的基本功能包括:建立与数据库的连接;发送SQL语句;处理数据库操作结果。Java数据库应用程序JDBC驱动程序管理器JDBC/ODBC桥接器ODBC驱动程序DB供应商提供的JDBC驱动程序DBJDBCAPIJDBC驱动程序APISQL命令(SQLServer、Oracle)JDBC运行原理JDBC
10、与与JDBC驱动程序的关系驱动程序的关系 JDBC=JDBC驱动程序管理器JDBCDriverAPI+供编程人员使用供数据库厂商使用JDBCAPI+JDBC驱动程序实现实现java.sql包数据库厂商提供JDBC的结构数据库访问的两层和三层模型 v两层模型即客户机/数据库服务器结构,也就是通常所说的C/S(Client/Server)结构v三层模型是指客户机/应用服务器/数据库服务器结构,也就是通常所说的B/S(Browser/Server)结构JDBC驱动程序 v在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驱动程序v使用JDBC-ODBC桥驱动程序连接数据库,不需要安装驱动程序,因为在Java API中已经包含了该驱动程序。v使用专用驱动程序连接数据库,必须安装驱动程序。在开发Web应用程序中,需要将驱动程序打包文件复制到:Tomcat安装目录的lib目录中
12、Web应用程序的WEB-INFclasseslib目录中Eclipse工程的build path中JavaJava访问数据库的过程访问数据库的过程7.3 传统的数据库连接方法 7.3.1加载驱动程序7.3.2建立连接对象7.3.3创建语句对象7.3.4获得SQL语句的执行结果7.3.5关闭建立的对象,释放资源7.3.6简单的应用示例7.3.1 加载驱动程序v使用Class类的forName()静态方法,该方法的声明格式为:public static Class forName(String className)throws ClassNotFoundExceptionv如果使用ODBC-JDB
13、C桥驱动程序,则使用JDK自带的驱动程序,名称为“sun.jdbc.odbc.JdbcOdbcDriver”Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);v数据库厂商提供的专门的驱动程序,应该给出专门的驱动程序名。几种常见数据库的加载驱动程序代码vPostgreSQL数据库:Class.forName(org.postgresql.Driver);vMySQL数据库:Class.forName(com.mysql.jdbc.Driver);vSQLServer数据库:Class.forName(com.microsoft.jdbc.sqlserver.
14、SQLServerDriver);vOracle数据库:Class.forName(oracle.jdbc.driver.OracleDriver);7.3.2 建立连接对象v使用DriverManager类的getConnection()vDriverManager类的静态方法getConnection(),该方法的声明格式为:public static Connection getConnection(String dburl)public static Connection getConnection(String dburl,String user,String password)v如
15、果通过JDBC-ODBC桥驱动程序连接数据库,URL的形式为:jdbc:odbc:DataSourcev例如:String dburl=jdbc:odbc:Bookstore;v如果使用专门的驱动程序连接数据库,JDBCURL可能更复杂一些。例如要连接PostgreSQL数据库,它的JDBCURL为:jdbc:postgresql:/localhost:5432/dbnameString dburl=jdbc:postgresql:/localhost:5432/bookstore;Connection conn=DriverManager.getConnection(dburl,bookst
16、ore,bookstore);7.3.2 建立连接对象(续)v连接MySQL数据库为:String dburl=jdbc:mysql:/localhost:3306/bankConnection conn=DriverManager.getConnection(dburl,root,111111);v连接SQLServer数据库为:String dburl=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=web2011Connection conn=DriverManager.getConnection(dburl,web,web20
17、11);v连接Oracle数据库为:String dburl=jdbc:oracle:thin:localhost:1521:ORCLConnection conn=DriverManager.getConnection(dburl,system_dba,123456);7.3.2 建立连接对象(续)7.3.3创建语句对象v对于不同的语句对象,可以使用Connection接口的不同方法创建。v例如,要创建一个简单的Statement对象可以使用createStatement()方法,Statement stmt=conn.createStatement();v创建PreparedStateme
18、nt对象(预编译的SQL语句)应使用prepareStatement()方法v创建CallableStatement对象(用于执行SQL存储过程)应使用prepareCall()方法。7.3.4获得SQL语句的执行结果v对于查询语句,调用executeQuery(Stringsql)方法,如:String sql=SELECT*FROM books;ResultSet rst=stmt.executeQuery(sql);while(rst.next()out.print(rst.getString(1)+t);v对于语句如CREATE、ALTER、DROP、INSERT、UPDATE、DEL
19、ETE等须executeUpdate(Stringsql)方法。该方法返回值为整数,用来指示被影响的行数。7.3.5关闭建立的对象,释放资源v在Connection接口、Statement接口和ResultSet接口中都定义的close()方法。v当这些对象使用完毕后应使用close()方法关闭建立的对象,关闭对象应该按与建立对象相反的顺序关闭,从而释放资源。v例如:conn.close();7.3.6 简单的应用示例v1、连接postgreSQL、MySQL和SQL Server数据库的例子(1)连接postgreSQL:testPostgreSQL.jsp(2)连接MySQL:testMy
20、SQL.jsp(3)连接SQL Server:testSqlServer.jsp 连接PostgreSQL数据库的主要代码testPostgreSQL.jspvvvvvv连接MySQL数据库的主要代码testMySQL.jspvv%vClass.forName(com.mysql.jdbc.Driver);v/Connectionconn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/bank?user=root&password=111111);vConnectionconn=DriverManager.getConnectio
21、n(jdbc:mysql:/localhost:3306/bank,root,111111);vStatementst=conn.createStatement();vst.setMaxRows(20);vStringsqlStr=select*fromT_User;vResultSetrs=st.executeQuery(sqlStr);vvvv连接SQLServer数据库的主要代码testSqlServer.jspvv%vClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);/.microsoft.jdbc.sqlServe
22、r.SQLServerDriver);vConnectionconn=DriverManager.getConnection(jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=web2011,web,web2011);vStatementst=conn.createStatement();vst.setMaxRows(20);vStringsqlStr=select*fromT_User;vResultSetrs=st.executeQuery(sqlStr);vvvv7.3.6 简单的应用示例v2、基于MVC设计模式实现数据库查询:从
23、JSP页面输入一个书号,查询该书的信息 v该应用的程序代码(P189):v模型:BookBean.javav视图:bookQuerys.jspvshowBook.jspverror.jspv控制器:BookQueryServlet.java7.4 JDBC API介绍vJDBCAPI是Java语言的标准API,目前的最新版本是JDBC4.0。在JDK6.0中,它是通过两个包提供的:java.sql包 javax.sql包vjava.sql包提供了基本的数据库编程的类和接口,如驱动程序管理类DriverManager、创建数据库连接Connection接口、执行SQL语句以及处理查询结果的类和接
24、口等。vjavax.sql包主要提供了服务器端访问和处理数据源的类和接口,如DataSource、RowSet、RowSetMetaData、PooledConnection接口等,它们可以实现数据源管理、行集管理以及连接池管理等。java.sql包包功能类、接口(斜体)JDBCAPI执行执行SQL语句语句对对SQL语句进行语句进行封装,并用此封装,并用此sql语句操作数据库语句操作数据库java.sql.Connectionjava.sql.Statementjava.sql.PreparedStatement驱动程序管理器驱动程序管理器装载和管理各装载和管理各个数据库驱动个数据库驱动jav
25、a.sql.DriverManager执行执行sql语句的结果集语句的结果集将将SQL语语句的执行结果封装成象句的执行结果封装成象java.sql.ResultSetjava.sql.ResultSetMetaData辅助类辅助类特殊数据类型包装类、异常类特殊数据类型包装类、异常类Driever API供应商必须实现的驱动程序供应商必须实现的驱动程序APIjava.sql.Driverjava.sql.DatabaseMetaDatjavax.sql包中的类和接口javax.sql.DataSource和java.sql.Connection之间的关系连接池化过程中涉及的关系分布式事务支持中涉
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JDBC 数据库 访问
限制150内