您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 92JSP中JDBC课件
第6章JDBC基础知识2本章目标了解JDBC的概念及必要性了解JDBC驱动程序类型理解JDBC程序的结构运用JDBC进行数据库编程3JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC是一套面向对象的应用程序接口,它制定了统一的访问各类关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现。通过使用JDBC技术,开发人员可以用纯Java语言和标准的SQL语句编写完整的数据库应用程序,并且真正的实现了软件的跨平台型。同时,JDBC也是个商标名。48.2.1JDBC技术介绍JDBC是用于执行SQL语句的API类包,由一组用Java语言编写的类和接口组成。JDBC提供了一种标准的应用程序设计接口,通过它可以访问各类关系数据库。通常情况下使用JDBC完成以下操作:(1)同数据库建立连接;(2)向数据库发送SQL语句;(3)处理从数据库返回的结果。5数据库访问技术简介客户机/服务器应用程序数据库编程ODBCJDBC两个常用的API数据库执行SQL语句检索查询结果在Jsp页面上可以通过ODBC或JDBC来对数据库进行访问6数据库ODBC客户机/服务器GUI应用程序ODBC(开放式数据库连接)(Microsoft提供)插入删除修改应用程序编程接口查询7JDBCJDBC(Java数据库连接)(sun公司提供)Java应用程序编程接口Java应用程序数据库插入修改删除查询8JDBC技术介绍ODBC可能是使用最广的、用于访问关系数据库的编程接口。它能在几乎所有平台上连接几乎所有的数据库。Java可以使用ODBC,但最好是在JDBC的帮助下以JDBC-ODBC桥的形式使用。ODBC不适合直接在Java中使用,因为它使用C语言接口。从Java调用本地C代码在安全性、实现、坚固性和程序的自动移植性方面都有许多缺点。从ODBCCAPI到JavaAPI的字面翻译是不可取的。例如,Java没有指针,而ODBC却对指针用得很广泛(包括很容易出错的指针void*)。您可以将JDBC想象成被转换为面向对象接口的ODBC,而面向对象的接口对Java程序员来说较易于接收。JDBC尽量保证简单功能的简便性。如果使用ODBC,就必须手动地将ODBC驱动程序管理器和驱动程序安装在每台客户机上。如果完全用Java编写JDBC驱动程序则JDBC代码在所有Java平台上(从网络计算机到大型机)都可以自动安装、移植并保证安全性。JDBC保留了ODBC的基本设计特征。它们之间最大的区别在于:JDBC以Java风格与优点为基础并进行优化,因此更加易于使用。9JDBC技术介绍JDBC具有下列优点:(1)JDBC与ODBC十分相似,便于软件开发人员理解;(2)JDBC使软件开发人员从复杂的驱动程序编写工作中解脱出来,可以完全专著与业务逻辑的开发;(3)JDBC支持多种关系型数据库,大大增加了软件的可移植性;(4)JDBCAPI是面向对象的,软件开发人员可以将常用的方法进行二次封装,从而提高代码的重用性。10JDBC技术介绍与此同时,JDBC也具有下列缺点:(1)通过JDBC访问数据库时速度将受到一定影响;(2)虽然JDBCAPI是面向对象的,但通过JDBC访问数据库依然是面向关系的;(3)JDBC提供了对不同厂家的产品的支持,这将对数据源带来影响。11JDBC技术介绍JDBC是一种底层API,在访问数据库时需要在业务逻辑中直接嵌入SQL语句。由于SQL语句是面向关系的,依赖于关系模型,所以JDBC传承了简单直接的优点,特别是对于小型应用程序十分方便。需要注意的是,JDBC不能直接访问数据库,必须依赖于数据库厂商提供的JDBC驱动程序。12JDBC驱动程序的类型JDBC驱动程序的类型JDBC-ODBC桥驱动程序及ODBC驱动程序本地API部分Java驱动程序JDBC-Net纯Java驱动程序本地协议纯Java驱动程序每种不同的数据库的驱动程序都不同,但从类型上分为四类13数据库驱动程序使用JDBC操作数据库首先必须要安装驱动程序,大多数数据库都有JDBC驱动程序,常见的驱动程序如表所示。数据库名称类包名驱动名称与URL地址SQLServer2000msbase.jar、mssqlserver.jar、msutil.jarcom.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名称SQLServer2005sqljdbc.jarcom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://localhost:1433;databaseName=数据库名称MYSQLmysql-connector-java-3.0.16-ga-bin.jarcom.mysql.jdbc.Driverjdbc:mysql://localhost:3306/数据库名称oracleclass12.jaroracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@dssw2k01:1521:数据库名称DB2db2jcc.jarcom.ibm.db2.jdbc.net.DB2Driverjdbc:db2://localhost:6789/数据库名称Derbyderby.jarorg.apache.derby.jdbc.EmbeddedDriverjdbc:derby://localhost:1527:数据库名称;create=false14Java或JSP中连接数据库的方式主要有两种:JDBC-ODBC桥专用的JDBC驱动程序示例:JDBC—ODBC连接access数据库示例:JDBC—ODBC连接SQL数据库15JDBC程序访问数据库的步骤开始导入java.sql包加载并注册驱动程序创建一个Connection对象创建一个Statement对象执行语句关闭ResultSet对象关闭Statement对象关闭连接结束使用ResultSet对象16JDBC-ODBC桥装载驱动程序并建立连接。1.创建数据源2.装载驱动程序成功加载后,会将加载的驱动类注册给DriverManager类,如果加载失败,将抛出ClassNotFoundException异常,即未找到指定的驱动类,所以需要在加载数据库驱动类时捕捉可能抛出的异常。try{Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);}catch(ClassNotFoundExceptione){System.out.println(加载数据库驱动时抛出异常,内容如下:);e.printStackTrace();}173.用适当的驱动程序类与DBMS建立一个连接。Connectioncon=DriverManager.getConnection(url,myLogin,myPassword);在上面的代码中,url指要连接的数据源,登录用户为myLogin,密码为myPassword。184.读取数据Statementstmt=con.createStatement();Statement接口提供了3种执行SQL语句的方法:executeQuery()将返回一个ResultSet型的结果集,其中不仅包含所有满足查询条件的记录,还包含相应数据表的相关信息,例如,列的名称、类型和列的数量等。executeUpdate()将返回一个int型数值,代表影响数据库记录的条数,即插入、修改或删除记录的条数。execute()返回类型boolean,代表执行此语句是否有resultset返回,有就是ture。用于执行返回多个结果集、多个更新计数或二者组合的语句195.处理数据库的返回结果ResultSetrs=stmt.executeQuery(“查询语句”);6.关闭连接对象con.close();con.isClosed();20Statement接口提供了3种执行SQL语句的方法:executeQuery()executeUpdate()execute()4处理数据库的返回结果ResultSetrs=stmt.executeQuery(“SELECT*FROMteacher”);215关闭连接对象con.close();con.isClosed();6JSP针对几种数据库的连接方法22驱动器接口:Driver任何一种数据库驱动程序都提供一个java.sql.Driver接口的驱动类,在加载某个数据库驱动程序的驱动类时,都创建自己的实例对象并向java.sql.DriverManage类注册该实例对象。数据库驱动加载在DriverManage类的执行过程如图所示。某个数据库的驱动名称将驱动名称设置为String类型DriverManager类加载驱动名称判断加载是否成功成功失败执行其他的操作抛出ClassNotFoundException返回23驱动管理类:DriverManager2.建立连接加载驱动类并在DriverManager类中注册后,即可用来与数据库建立连接。当调用DriverManager类中getConnection()方法发出连接请求时,DriverManager类将检查每个驱动程序,并查看该类是否可以建立连接。例如,通过SQLServer2000数据库的驱动和URL获取数据库的连接。Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);Stringurl=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=wy_userInfo;DriverManager.getConnection(url,user,password);DriverManager类除了getConnection()方法外,还存在其他的方法,如表所示。方法名称功能描述setLoginTimeout(intsecond)该方法是静态方式,表示等待数据库建立连接的时间setLogWriter(java.io.PrintWriterout)该方法是静态方式,表示设置日志输出流对象println(Stringmessages)该方法是静态方式,表示输出指定消息返回24执行静态SQL语句接口:Statement(1)java.sql.Statement接口用来执行静态的SQL语句,并返回执行结果。处理静态的SQL语句主要分为3种Statement对象:Statement、PreparedStatement、CallableStatement。它们作为在指定连接上执行SQL语句的容器。这3种Statement对象的关系如图所示。StatementPreparedStatementCallableStatement继承继承25执行静态SQL语句接口:Statement(2)1.创建Statement对象取得数据库连接对象后,就可以通过该连接发送SQL语句。Statement对象可以通过Connection对象中的createStatement()方法进行创建,例如:Connectioncon=DriverManager.getConnection(url,sa,);//取得数据库连接Statementstmt=con.createStatement();//获取Statement对象为了执行Statement对象,被发送到数据库的SQL语句将被作为参数提供给Statement类中的指定方法。例如,通过Statement对象执行查询的SQL语句:ResultSetrs=stmt.executeQuery
本文标题:92JSP中JDBC课件
链接地址:https://www.777doc.com/doc-3223188 .html