1、第第4章章 JDBC数据库访问技术数据库访问技术 数据库是数据库是Web应用程序重要组成部分。应用程序重要组成部分。在在Java Web应用程序中,数据库访问是通过应用程序中,数据库访问是通过Java数据库连接(数据库连接(Java DataBase Connectivity,简称,简称JDBC)实现的。)实现的。JDBC为开发人员提供了一个标准的为开发人员提供了一个标准的API。本章介绍本章介绍使用使用JDBC驱动程序连接数据库技术驱动程序连接数据库技术,实现实现Java语言对数据库的访问,并给出语言对数据库的访问,并给出应用程序的设计方法、步骤和实例应用程序的设计方法、步骤和实例。基础基础
2、简单回顾数据库的有关知识简单回顾数据库的有关知识1、首先要选择一种数据库(、首先要选择一种数据库(MySQL、SQL Server、oracle),并会对数据库操作),并会对数据库操作2、对于要使用的数据库,需下载相关的、对于要使用的数据库,需下载相关的系统系统并安装。并安装。(安装数据库,就是安装数据库程序,该程序称为(安装数据库,就是安装数据库程序,该程序称为数据库服务器,在后台运行数据库服务器,在后台运行)3、利用数据库有关的命令,实现对数据库的操作。、利用数据库有关的命令,实现对数据库的操作。但必须有如下信息:但必须有如下信息:用户名、用户密码、数据库名、数据表名用户名、用户密码、数据
3、库名、数据表名等。等。4、对数据库及其数据表的最基本的操作为:、对数据库及其数据表的最基本的操作为:添加记录、删除记录、修改记录、查询记录(称为添加记录、删除记录、修改记录、查询记录(称为CRUD)5、所有操作都是使用、所有操作都是使用SQL语句实现的。这种语句实现的。这种对数据库的操作是面向结构的对数据库的操作是面向结构的,即是结构,即是结构化数据库操作。化数据库操作。6、另外,对数据库操作有两种方式:、另外,对数据库操作有两种方式:(1)使用)使用“命令行命令行”命令,对数据库操作。命令,对数据库操作。(2)使用可视化应用程序对数据库进行操作。)使用可视化应用程序对数据库进行操作。本章学习
4、的内容本章学习的内容 本章要学习的是本章要学习的是通过通过Java 语言使用语言使用SQL语句实现对数据库的操作(语句实现对数据库的操作(访问)访问)。如何实现呢?如何实现呢?下面我给出下面我给出Java访问数据库的基本思想与实现方法。访问数据库的基本思想与实现方法。引言引言01MySQL数据库的下载、安装与操作数据库的下载、安装与操作1、MySQL数据库的下载、安装数据库的下载、安装 这里我下载并安装:这里我下载并安装:mysql-5.5.20-win32.msi(也可以下载其它版本)(也可以下载其它版本)2、基于命令行方式,实现对数据库的直接操作。、基于命令行方式,实现对数据库的直接操作。
5、(1)启动)启动MySQL数据库数据库 (2)创建数据库)创建数据库 (3)创建数据表)创建数据表 (4)利用)利用SQL 语句,实现对数据库的访问操作语句,实现对数据库的访问操作3、安装可视化操作客户端应用程序(目前有很多,可以根据自己的情况选择一种)、安装可视化操作客户端应用程序(目前有很多,可以根据自己的情况选择一种)这里我选择:这里我选择:MySQL-Front_Setup.exe 同样需要下载并安装(注意,必须在安装同样需要下载并安装(注意,必须在安装MySQL数据库后,再安装)数据库后,再安装)4、利用、利用可视化操作客户端应用程序,实现对数据库的访问操作。可视化操作客户端应用程序
6、,实现对数据库的访问操作。5、使用、使用Java语言访问语言访问MySQL数据库,必须下载所需要的支持连接驱动程序。数据库,必须下载所需要的支持连接驱动程序。需要下载:需要下载:mysql-connector-java-5.1.13-bin.jar (也可以下载其它版本的,但要(也可以下载其它版本的,但要MySQL数据库版本互相支持)数据库版本互相支持)数据库的操作数据库的操作(1)创建数据库:)创建数据库:ch04_students(学生成绩管理学生成绩管理)CREATE DATABASE ch04_students default charset=utf-8;(2)创建一个数据表:)创建一
7、个数据表:stu 该表有字段:该表有字段:xh(整型)(整型),name(字符串字符串),cj(整型(整型 Use students;CREATE TABLE stu(xh int,name varchar(20),cj int)default charset=utf-8;(3)SQL 语句语句 添加语句:添加语句:String sql=“insert into stu(xh,name,cj)values(1,张三张三,75);或:或:String sql=“insert into stu(xh,name,cj)values(?,?,?);修改语句:修改语句:String sql=“updat
8、e stu set cj=100 where xh=10;String sql=“update stu set cj=?where xh=?;删除语句:删除语句:String sql=delete from stu where cj60;String sql=delete from stu where cj=?and cj=75 and cj数据库,然后数据库,然后,从数据库从数据库-Java)处理方式:处理方式:运输运输SQL语句,并运回执行结果。语句,并运回执行结果。实现:实现:对于数据库操作有两种类型:对于数据库操作有两种类型:查询数据库查询数据库、更新数据库(添加、删除、修改)更新数据
9、库(添加、删除、修改)(1)查询数据库操作实现)查询数据库操作实现 String sql=select xh,name,cj from stu;/查询查询SQL语句语句 ResultSet rs=stmt.executeQuery(sql);/执行查询执行查询SQL语句,并得到查询结果集合语句,并得到查询结果集合(2)更新数据库(添加、删除、修改)操作实现更新数据库(添加、删除、修改)操作实现 String sql2=“delete stu”;/删除记录删除记录SQL语句语句 int n=stmt.executeUpdate(sql2);/执行删除执行删除SQL语句,并返回实际删除记录的条数语
10、句,并返回实际删除记录的条数 思考:思考:我们我们是否可以同时是否可以同时处理问题处理问题1和和问题问题2?如何处理呢?如何处理呢?问题问题3:我们是否可以将我们是否可以将问题问题1和和问题问题2同时实现处理呢?同时实现处理呢?即:造汽车的同时,将要运输的货物同时装到汽车上。即:造汽车的同时,将要运输的货物同时装到汽车上。处理方式:处理方式:汽车运输汽车运输SQL语句(同时组装),并运回执行结果。语句(同时组装),并运回执行结果。实现:实现:(1)查询数据库操作实现)查询数据库操作实现 String sql=select xh,name,cj from stu where cj=60 and
11、cj=60 and cj=60 and cj=?and cj=60 and cj0)System.out.println(“删除记录成功,共删除了删除记录成功,共删除了”+n+“记录!记录!”);else System.out.println(“删除不成功!删除不成功!”);3、如何对返回的结果进行处理呢?如何对返回的结果进行处理呢?(2)对)对“查询查询”数据库的操作数据库的操作利用利用控制台界面控制台界面显示信息:显示信息:String sql=“select xh,name,cj from stu where cj=?and cj=?and cj你要查询的学生数据表中共有你要查询的学生数
12、据表中共有 人人 记录条数记录条数 学号学号 姓名姓名 成绩成绩 问题:问题:当对数据库的操作完成了,我们所创建的当对数据库的操作完成了,我们所创建的汽车汽车、桥、查询结果集合,桥、查询结果集合,这些对象这些对象都不需要了,为了节省资源,必须回收再利用?都不需要了,为了节省资源,必须回收再利用?如何回收呢如何回收呢?处理方式:处理方式:拆掉就可以了。拆掉就可以了。在计算机上要在计算机上要关闭关闭“对象对象”,就释放资源了,就释放资源了。注意,关闭的次序,先创建的后关闭注意,关闭的次序,先创建的后关闭。实现:实现:Connection conn=DriverManager.getConnecti
13、on(url);/创建连接对象创建连接对象 PreparedStatement pstmt=conn.prepareStatement(sql);RrsultSet rs=pstmt.executeQuery();/执行,得到查询结果集合执行,得到查询结果集合,注意,这里是空参数注意,这里是空参数 rs.close();pstmt.close();conn.close();4、关闭对象,释放资源、关闭对象,释放资源5、如何实现任意条件的查询、删除、修改以及添加所希望如何实现任意条件的查询、删除、修改以及添加所希望的任意记录的任意记录 需要添加一个输入页面,提供所需要的查询条件、或者要添加记录的
14、相关信息。需要添加一个输入页面,提供所需要的查询条件、或者要添加记录的相关信息。例如,对于有条件的查询,其实现:例如,对于有条件的查询,其实现:(1)需要设计一个输入页面(提交相关的数据):)需要设计一个输入页面(提交相关的数据):(2)再进入访问数据库页面(在该页面获取数据,并设置给)再进入访问数据库页面(在该页面获取数据,并设置给SQL语句)语句)第1次课总结 今天针对数据库访问操作,提出了今天针对数据库访问操作,提出了4大问题,每个大问题下分别给出对大问题,每个大问题下分别给出对应的多个小问题,这些问题理解了、掌握了,我们的学习目标也就达到应的多个小问题,这些问题理解了、掌握了,我们的学习目标也就达到了,希望各位同学,了,希望各位同学,自己再认真自己再认真厘清厘清各问题以及他们之间的关系各问题以及他们之间的关系。通过对这些问题的分析与解答,我们应该知道如何设计程序,利用通过对这些问题的分析与解答,我们应该知道如何设计程序,利用Java语言实现对数据库的操作了。语言实现对数据库的操作了。提示:提示:给出一个较完整的设计给出一个较完整的设计作业:作业:按今天介绍的内容及其方法,自己设计程序,完成对数据库的访按今天介绍的内容及其方法,自己设计程序,完成对数据库的访问操作。问操作。