书签 分享 收藏 举报 版权申诉 / 40
上传文档赚钱

类型Java-Web应用开发技术与案例教程-教学课件-张继军-第4章JDBC数据库访问技术.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4376765
  • 上传时间:2022-12-03
  • 格式:PPT
  • 页数:40
  • 大小:377.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Java-Web应用开发技术与案例教程-教学课件-张继军-第4章JDBC数据库访问技术.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java Web 应用 开发 技术 案例 教程 教学 课件 张继军 JDBC 数据库 访问
    资源描述:

    1、在线教务辅导网:在线教务辅导网:http:/教材其余课件及动画素材请查阅在线教务辅导网教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187 或者直接输入下面地址:或者直接输入下面地址:http:/第第4章章 JDBC数据库访问技术数据库访问技术 数据库是Web应用程序重要组成部分,在Java Web应用程序中,数据库访问是通过Java数据库连接(Java DataBase Connectivity,简称JDBC)实现的。JDBC为开发人员提供了一个标准的API。本章介绍使用JDBC驱动程序连接数据库和使用连接池技术连接数据库并设计应用程序的方法、步骤和实例。第第4章章 JDBC数

    2、据库访问技术数据库访问技术4.1 JDBC技术概述技术概述4.2 JDBC访问数据库访问数据库4.3 综合案例综合案例学生身体体质信息管理系统的开发学生身体体质信息管理系统的开发4.4 数据源与连接池技术数据源与连接池技术本章小结本章小结4.1 JDBC技术概述技术概述 JDBC是一种用于执行SQL语句的Java API,由一组类与接口组成,通过调用这些类和接口所提供的方法,可以使用标准的SQL语言来存取数据库中的数据。本节内容:4.1.1 驱动程序接口Driver4.1.2 驱动程序管理器DriverManager4.1.3 数据库连接接口Connection4.1.4 执行SQL语句接口S

    3、tatement4.1.5 执行动态SQL语句接口PreparedStatement4.1.6 访问结果集接口ResultSet类或接口作用java.sql.DriverManager该类处理驱动程序的加载和建立新数据库连接java.sql.Connection该接口实现对特定数据库的连接java.sql.Satement该接口表示用于执行静态SQL语句并返回它所生成结果的对象java.sql.PreparedStatement该接口表示预编译的SQL语句的对象,派生自Satement,预编译SQL效率高且支持参数查询java.sql.CallableStatement该接口表示用于执行SQL

    4、语句存储过程的对象。派生自PreparedStatement,用于调用数据库中的存储过程java.sql.ResultSet该接口表示数据库结果集的数据表,统称通过执行查询数据库的语句生成4.1.1 驱动程序接口Driver 每种数据库都提供了数据库驱动程序,并且都提供了一个实现java.sql.Driver接口的类,简称Driver类。在应用程序开发中,需要通过java.lang.Class类的静态方法forName(String className),加载该Driver类。在加载时,创建自己的实例并向java.sql.DriverManager类注册该实例。4.1.2 驱动程序管理器驱动程

    5、序管理器DriverManager java.sql.DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟踪可用的驱动程序,并在数据库和驱动程序之间建立连接。DriverManager类即可用来建立数据库连接。DriverManager类提供的最常用的方法是:Connection getConnection(String url,String user,String password)该方法为静态方法,用来获得数据库连接,有3个入口参数,依次为要连接数据库的URL、用户名和密码,返回值类型为java.sql.Connection4

    6、.1.3 数据库连接接口数据库连接接口Connection java.sql.Connection接口负责与特定数据库的连接,形成连接对象。由该对象完成相关的操作。方法名称功能描述createStatement()创建并返回一个Statement实例,通常在执行无参数的SQL语句时创建该实例prepareStatement()创建并返回一个PreparedStatement实例,通常在执行包含参数的SQL语句时创建该实例,并对SQL语句进行了预编译处理close()立即释放Connection实例占用的数据库和JDBC资源,即关闭数据库连接表4-2 Connection接口的常用方法4.1.4

    7、 执行执行SQL语句接口语句接口Statement java.sql.Statement接口用来执行静态的SQL语句,并返回执行结果。Statement接口提供的常用方法。方法名称功能描述executeQuery(String sql)执行指定的静态SELECT语句,并返回一个永远不能为null的ResultSet实例executeUpdate(String sql)执行指定的静态INSERT、UPDATE或DELETE语句,并返回一个int型数值,为同步更新记录的条数close()立即释放Statement实例占用的数据库和JDBC资源,即关闭Statement实例4.1.5 执行动态SQL

    8、语句接口 PreparedStatement java.sql.PreparedStatement接口继承于Statement接口,是Statement接口的扩展,用来执行动态的SQL语句,即包含参数的SQL语句。PreparedStatement接口提供的常用方法。方法名称功能描述executeQuery()执行前面包含参数的动态SELECT语句,并返回一个永远不能为null的ResultSet实例executeUpdate()执行前面包含参数的动态INSERT、UPDATE或DELETE语句,并返回一个int型数值,为同步更新记录的条数setXxx()为指定参数设置Xxx型值close()

    9、立即释放Statement实例占用的数据库和JDBC资源,即关闭Statement实例4.1.6 访问结果集接口访问结果集接口ResultSet 通过该接口的实例可以获得检索结果集,以及对应数据表的相关信息。ResultSet实例是通过执行查询数据库的语句生成。ResultSet接口提供的常用方法。方法名称功能描述first()移动指针到第一行;如果结果集为空则返回false,否则返回true;如果结果集类型为TYPE_FORWARD_ONLY将抛出异常last()移动指针到最后一行;如果结果集为空则返回false,否则返回true;如果结果集类型为TYPE_FORWARD_ONLY将抛出异常

    10、previous()移动指针到上一行;如果存在上一行则返回true,否则返回false;如果结果集类型为TYPE_FORWARD_ONLY将抛出异常next()移动指针到下一行;指针最初位于第一行之前,第一次调用该方法将移动到第一行;如果存在下一行则返回true,否则返回falsegetRow()查看当前行的索引编号;索引编号从1开始,如果位于有效记录行上则返回一个int型索引编号,否则返回0findColumn()查看指定列名的索引编号;该方法有一个String型入口参数,为要查看列的名称,如果包含指定列,则返回int型索引编号,否则将抛出异常close()释放ResultSet实例占用的数

    11、据库和JDBC资源,当关闭所属的Statement实例时也将执行此操作4.2 JDBC访问数据库使用使用JDBC访问数据库,其访问流程是:访问数据库,其访问流程是:(1)注册驱动。)注册驱动。(2)建立连接)建立连接(Connection)。(3)创建数据库操作对象用于执行)创建数据库操作对象用于执行SQL的语句。的语句。(4)执行语句。)执行语句。(5)处理执行结果)处理执行结果(ResultSet)。(6)释放资源。)释放资源。本节内容:本节内容:4.2.1 注册驱动注册驱动MySQL的驱动程序的驱动程序4.2.2 JDBC连接数据库创建连接对象连接数据库创建连接对象4.2.3 创建数据库

    12、的操作对象创建数据库的操作对象4.2.4 执行执行SQL4.2.5 获得查询结果并进行处理获得查询结果并进行处理4.2.6 释放资源释放资源4.2.7 数据库乱码解决方案数据库乱码解决方案4.2.1 注册驱动MySQL的驱动程序1将驱动程序文件添加到应用项目将驱动程序文件添加到应用项目 将驱动程序将驱动程序mysql-connector-java-5.1.6-bin,拷贝到,拷贝到Web应用程序的应用程序的WEB-INFlib目录下,目录下,Web应用程序就可以通过应用程序就可以通过JDBC接口访问接口访问MySQL数据库了。数据库了。2加载注册指定的数据库驱动程序加载注册指定的数据库驱动程序

    13、 对于对于MySQL数据库,其驱动程序加载格式:数据库,其驱动程序加载格式:Class.forName(com.mysql.jdbc.Driver);其中,其中,“com.mysql.jdbc.Driver”为为MySQL数据库驱动程数据库驱动程序类名。序类名。4.2.2 JDBC连接数据库创建连接对象 创建数据库连接对象,需要首先形成创建数据库连接对象,需要首先形成“连接符号字连接符号字(URL)”,然后利用,然后利用“连接符号字连接符号字”实现连接并创建连接对象。实现连接并创建连接对象。1数据库连接的数据库连接的URL 对于对于MySQL数据库的连接符号字,可采用如下方式数据库的连接符号字

    14、,可采用如下方式创建:创建:String url1=jdbc:mysql:/数据库服务器数据库服务器IP:3306/数据库名数据库名;String url2=?user=root&password=密码密码;String url3=&useUnicode=true&characterEncoding=UTF-8;String url=url1+url2+url3;2利用连接符号字实现连接,获取连接对象利用连接符号字实现连接,获取连接对象 DriverManager类提供了类提供了getConnection方法,用来建立与方法,用来建立与数据库的连接。调用数据库的连接。调用getConnecti

    15、on()方法可返回一个数据库连方法可返回一个数据库连接对象。接对象。getConnection方法有方法有3种不同的重载形式:种不同的重载形式:第第1种:通过种:通过url指定的数据库建立连接,其语法原型为:指定的数据库建立连接,其语法原型为:static Connection getConnection(String url)第第2种:通过种:通过url指定的数据库建立连接,指定的数据库建立连接,info提供了一些属性,提供了一些属性,这些属性里包括了这些属性里包括了user和和password等属性,其语法原型为:等属性,其语法原型为:static Connection getConnec

    16、tion(String url,Properties info);第第3种:传入参数用户名为种:传入参数用户名为user,密码为,密码为password,通过,通过url指指定的数据库建立连接,其语法原型为:定的数据库建立连接,其语法原型为:static Connection getConnection(String url,String user,String password):3.利用利用JDBC连接连接MySQL数据库,获取连接对象的通用格数据库,获取连接对象的通用格式式 设设MySQL数据库为:数据库为:“students”,用户名为,用户名为“root”,密码为,密码为“12345

    17、6”,数据库读写的编码采用,数据库读写的编码采用UTF-8,连接格式:,连接格式:String driverName=com.mysql.jdbc.Driver;/驱动程序名驱动程序名String userName=root;/数据库用户名数据库用户名String userPwd=123456;/密码密码String dbName=students;/数据库名数据库名String url1=jdbc:mysql:/localhost:3306/+dbName;String url2=?user=+userName+&password=+userPwd;String url3=&useUnico

    18、de=true&characterEncoding=UTF-8;String url=url1+url2+url3;/形成连接字形成连接字Class.forName(driverName);/加载并注册驱动程序加载并注册驱动程序/获取数据库连接对象获取数据库连接对象Connection conn=DriverManager.getConnection(url);4.2.3 创建数据库的操作对象 数据库的操作对象是指能执行SQL语句的对象,需要Connection类中创建数据库的操作对象的方法实现创建。可创建两种不同的数据库操作对象:Statement对象、PrepareStatement对象。

    19、1创建创建Statement对象对象 利用Connection类的方法createStatement()可以创建一个Statement类实例,用来执行SQL操作。例如,假设通过数据库连接,得到其连接对象为conn,那么,可创建Statement的一个实例stmt:Statement stmt=conn.createStatement();2创建创建PrepareStatement对象对象(1)PreparedStatement对象使用PreparedStatement()方法创建,并且在创建时直接指定SQL语句。例如:String sql=select*from stu_info Prepar

    20、edStatement pstmt=conn.preparedStatement(sql);(2)使用带参数的SQL语句(“?”表示参数值),创建PreparedStatement对象。例如:String ss=select*from stu_info where age=?and sex=?;PreparedStatement pstmt=conn.preparedStatement(ss);但在SQL语句中,没有指定具体的年龄和性别,在实际执行该SQL前,需要向PreparedStatement对象传递参数值。设置参数值的格式为:PreparedStatement对象.setXXX(pos

    21、ition,value);4.2.4 执行SQL 创建操作对象后,就可以利用该对象,实现对数据库的具体操作,即执行SQL语句。1.Statement对象执行对象执行SQL语句语句 Statement主要提供了两种执行SQL语句的方法:(1)ResultSet executeQuery(String sql):执行select语句,返回一个结果集。(2)int executeUpdate(String sql):执行update、insert、delete,返回一个整数,表示执行SQL语句影响的数据行数。2.PreparedStatemen对象执行对象执行SQL语句语句 PreparedStat

    22、ement也有ResultSet executeQuery()和int executeUpdate()两个方法,但都不带参数。PreparedStatement两种执行SQL语句的方法:(1)ResultSet executeQuery():执行select语句,返回一个结果集。(2)int executeUpdate():执行update、insert、delete的SQL语句。它返回一个整数,表示执行SQL语句影响的数据行数。4.2.5 获得查询结果并进行处理 如果SQL语句是查询语句,执行executeQuery()方法返回的是ResultSet对象。ResultSet对象是一个由查询结

    23、果构成的数据表。对查询结果的处理,一般需要,首先定位记录位置,然。后对确定记录的字段项实现操作。1记录定位操作记录定位操作 在ResultSet结果记录集中隐含着一个数据行指针,可使用4.1节中表4-5中的方法将指针移动到指定的数据行。2.读取指定字段的数据操作读取指定字段的数据操作 有两种格式,一是用整数指定字段的索引(索引从1开始),二是用字段名来指定字段。下表列出采用“指定字段的索引号”获取各种类型的字段值的方法。方法名称方法说明boolean getBoolean(int ColumnIndex)返回指定字段的以Java的booelan类型表示的字段值String getString(

    24、int ColumnIndex)返回指定字段的以Java的String类型表示的字段值byte getByte(int ColumnIndex)返回指定字段的以Java的byte类型表示的字段值short getShort(int ColumnIndex)返回指定字段的以Java的short类型表示的字段值int getInt(int ColumnIndex)返回指定字段的以Java的int类型表示的字段值long getLong(int ColumnIndex)返回指定字段的以Java的long类型表示的字段值float getFloat(int ColumnIndex)返回指定字段的以Ja

    25、va的float类型表示的字段值double getDouble(int ColumnIndex)返回指定字段的以Java的Double类型表示的字段值byte getBytes(int ColumnIndex)返回指定字段的以Java的字节数组类型表示的字段值Date getDate(int ColumnIndex)返回指定字段的以Java.sql.Date的Date类型表示的字段值3修改指定字段的数据操作修改指定字段的数据操作 移到指定的数据行后,可使用updateXxx()方法设置字段新的数值,其中“Xxx”指的是Java的数据类型。方法的参数也有两种格式,一是用整数指定字段的索引(索引

    26、从1开始),二是用字段名来指定字段。格式:updateXxx(字段名或字段序号,新数值)例如:对数据表stu,其中的字段是xh(学号,字符串),name(姓名,字符串),cj(成绩,整型),并且查询结果集为rs,则对数据表stu当前记录中成绩改为90,则需要执行:String sql=select xh,name,cj from stu;RrsultSet rs=stmt.executeQuery(sql);rs.updateInt(3,90);/或rs.updateInt(cj,90);4.2.6 释放资源 当完成对数据库记录的一次操作后,应及时关闭这些对象并释放资源。假设建立的对象依次为:

    27、连接对象为conn(Connection conn),操作对象为pstmt(PreparedStatement pstmt),得到的查询结果集对象为rs(RrsultSet rs),则需要依次关闭的对象是:rs.close();stmt.close();con.close();4.2.7 数据库乱码解决方案 在实现对数据库操作时,对于汉字信息,有时不能正确处理,其原因是由于汉字编码的不同所造成的。为了正确处理汉字信息,必须使汉字编码使用统一的编码格式。汉字编码,目前主要使用UTF-8和GB2312。本教材中统一使用UTF-8编码。在设计Web应用程序时,涉及到汉字信息编码的组件主要有:(1)数

    28、据库和数据表建立时,所建立的数据库和数据表及其各字段的编码格式。(2)对数据库中记录的读写访问所采用的编码格式。(3)在JSP页面之间传递参数(request对象)时,其汉字编码格式。(4)在JSP页面(HTML页面)本身中汉字编码格式。(5)由服务器响应(response),返回到客户端的信息编码格式。在所设计应用程序时,需要将这几部分的编码格式统一为一种汉字编码方式,就可以解决汉字乱码问题。4.3 综合案例 学生身体体质信息管理系统的开发【案例说明】描述一个学生身体体质的信息有:有id(序号,整型),name(姓名,字符串),sex(性别,字符串),age(年龄,整型),weight(体重

    29、,实型),hight(身高,实型)。存放学生体质信息的数据库为students,数据表为stu_info。要求,利用JDBC技术实现对学生身体体质信息的管理。该问题是一个简单的数据库信息管理系统,基本操作主要有:数据库和数据表的建立;数据库记录信息的添加(插入);数据库记录信息的查询;数据库记录信息的删除;数据库记录信息的修改。设计过程:4.3.1 数据库和数据表的建立4.3.2 注册驱动并建立数据库的连接4.3.3 添加记录模块的设计与实现4.3.4 查询记录模块的设计与实现4.3.5 修改记录模块的设计与实现4.3.6 删除记录模块的设计与实现4.3.7 数据库操作的模板4.3.8 整合各

    30、设计模块形成完整的应用系统4.3.9 问题与思考4.4 数据源与连接池技术 使用连接池技术连接数据库需要两步处理:首先配置数据源,然后在程序中通过连接池建立数据库的连接,从而再访问数据库。本节主要内容:4.4.1 配置数据源4.4.2 使用连接池技术访问数据库处理步骤4.4.3 连接池应用 学生身体体质信息显示模块的设计与实现4.4.4 问题与思考4.4.1 配置数据源 在通过连接池技术访问数据库时,首先需要Web服务器下配置数据库连接池。下面以MySQL数据库为例介绍在服务器Tomcat下配置数据库连接池的方法。1在服务器上添加在服务器上添加MySQL数据库驱动程序数据库驱动程序 将MySQ

    31、L数据库的驱动程序复制到Tomcat安装路径下的commonlib文件夹中。2数据源参数配置数据源参数配置 在Web工程目录下的META-INFcontext.xml文件中,若在Web工程目录下META-INF不存在context.xml文件,则需要自己建立该文件。配置数据源的具体代码如下:配置数据源时需要配置的元素的属性及其说明属性名称说 明name设置数据源的JNDI名type设置数据源的类型auth设置数据源的管理者,有两个可选值Container和Application,Container表示由容器来创建和管理数据源,Application表示由Web应用来创建和管理数据源driver

    32、ClassName设置连接数据库的JDBC驱动程序url设置连接数据库的连接字串username设置连接数据库的用户名password设置连接数据库的密码maxActive设置连接池中处于活动状态的数据库连接的最大数目,0表示不受限制maxIdle设置连接池中处于空闲状态的数据库连接的最大数目,0表示不受限制maxWait设置当连接池中没有处于空闲状态的连接时,请求数据库连接的请求的最长等待时间(单位为ms),如果超出该时间将抛出异常,1表示无限期等待4.4.2 使用连接池技术访问数据库处理步骤通过三个步骤来使用数据源对象:(1)获得对数据源的引用:Context ctx=new Inital

    33、Context();DataSource ds=(DataSource)ctx.lookup(java:comp/env/jdbc/mysql);(2)获得数据库连接对象:Connection con=ds.getConnection();(3)返回数据库连接到连接池:con.close();4.4.3 连接池应用 学生身体体质信息显示模块的设计与实现【例4-10】应用连接池技术访问数据库students,并显示数据表stu_info中的全部数据。该数据库和数据表在4.3节中已经定义。该题目的设计过程如下:(1)JDBC驱动程序复制到Tomcat安装目录下的lib/目录下(若存在,则省略)。(

    34、2)在Web工程目录META-INF下建立文件context.xml(若已经存在,则只需添加配置信息即可),配置数据源信息,具体代码如下:(3)编写databasePool.jsp程序,通过数据池访问数据库students,并显示数据表stu_info中的全部数据,其代码如下:MySQL 数据源应用 你要查询的学生数据表中共有 人 记录条数 学号 姓名 性别 年龄体重身高 出现意外,信息是:本章小结 本章首先介绍了JDBC技术中常用的接口,然后介绍了MySQL数据库的连接方法及其访问数据库的方法,接着介绍了数据库的查询、添加、修改、删除等操作方法和处理步骤。通过较多的实例演示了设计思想和设计方

    35、法。进一步介绍了数据池技术及其利用数据源实现对数据库的访问方法和过程。上机实习1建立数据库lianxi,在该数据库下建立一个图书表book,图书包含信息:图书号、图书名、作者、价格、备注字段。设计一应用程序,完成图书信息的管理。主要完成图书信息的添加、查询、删除、修改等操作。2设计一个简单的网上名片管理系统,实现名片的增、删、改、查等操作。该名片管理系统包括如下功能:(1)用户登录与注册用户登录:在登录时,如果用户名和密码正确,进入系统页面。用户注册:新用户应该先注册,然后再登录该系统。(2)名片管理增加名片:以仿真形式(按常用的名片格式)增加名片信息。修改名片:以仿真形式(按常用的名片格式)修改名片信息。查询名片:以模糊查询方式查询名片。删除名片:名片的删除由2种方式,即把名片移到回收站,把名片彻底删除。(3)回收站管理还原:把回收站中的名片还原回收。彻底删除:把名片彻底从回收站删除。浏览/查询:可以模糊查询、浏览回收站中的名片。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java-Web应用开发技术与案例教程-教学课件-张继军-第4章JDBC数据库访问技术.ppt
    链接地址:https://www.163wenku.com/p-4376765.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库