第8章 JDBC与MySQL数据库


教学要求


(1) 熟练掌握:MySQL的下载安装和Navicat、MySQL-Front、phpMyAdmin图形管理工具的安装和使用。
(2) 了解:JDBC
(3) 熟练掌握JDBC访问数据库的三种方法:Statement(静态SQL语句)、PreparedStatement(含有参数动态SQL语句)、CallableStatement(调用存储过程)

延伸阅读


8.1 MySQL数据库


8.1.1 MySQL初步

SQL
SQL(Structured Query Language 结构化查询语言)的缩写,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL标准
SQL 是1986年10月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。
MySQL
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
其他SQL
MS SQL Server、MS Access、IBM DB2、ORACLE、SYBASE、DBASE Ⅳ、SQLite等
SQL术语
DQL
DQL(Data Query Language)数据查询语言、数据检索语言,从表中获得数据。SELECT, WHERE, ORDER BY, GROUP BY和HAVING。
DML
数据操作语言(DML:Data Manipulation Language):INSERT,UPDATE和DELETE。添加,修改和删除表中的行。
DDL
数据定义语言(DDL:Data Definition Language):CREATE和DROP。
DCL
数据控制语言(DCL:Data Control Language):GRANT、DENY或REVOKE。
TPL
事务处理语言(TPL:Transaction Processing Language):BEGIN TRANSACTION,COMMIT和ROLLBACK。
CCL
游标控制语言(CCL:Cursor Control Language):DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
MySQL版本
  1. MySQL Community Server,这个不要钱!
  2. MySQL Enterprise 这个要掏钱,不过可以打电话咨询问题,也就是电话技术支持。
  3. MySQL Cluster,这个单独是没法用的,要在1或2的基础上用。当然用来平衡多台数据库的。
  4. MySQL Workbench,这是个好东西,用来设计数据库的。
MySQL版本发布
  1. 1996年,MySQL 1.0发布, 在小范围内使用。到了96年10月,MySQL 3.11.1发布了,没有2.x版本。此时的MySQL除了在表上Insert、Update、Delete和Select操作没有其他功能。
  2. 1999~2000年,MySQL AB公司在瑞典成立。2004年10月,发布了经典的4.1版本。
  3. 2005年10月,发布了MySQL 5.0。在5.0中加入了游标、存储过程、触发器、视图和事务的支持。
  4. 2008年1月16号 MySQL被Sun公司收购。2009年04月20日Oracle收购Sun 公司,MySQL 转入Oracle 门下。2010年04月22日发布MySQL5.5, MySQL cluster 7.1.
  5. 2015年10月20日Oracle在Twitter上发布了MySQL 5.7GA版本,2016年9月12日,MySQL8.0 DMR发布,废弃了MyISAM存储引擎。

8.1.2 MySQL下载、安装、配置

MySQL(5.7.23)的官网下载地址是http://dev.mysql.com/downloads/windows/installer/,单击[Looking for previous GA versions?]、下载网页底部的第2个下载按钮(5.7.23、371.0M)【Download】, 单击【No thanks, just start my download.】下载mysql-installer-community-5.7.23.0.msi)安装文件。5.7.23.0直接下载

【实训1】MySQL下载、安装、配置

(1) 双击下载文件[mysql-installer-community-5.7.23.0.msi], 勾选(同意)[I accept the licence terms] -> [Next] -> 安装类型选[Custorm],展开MySQL Servers -> MySQL Server -> MySQL Server 5.7 -> X64(添加), [Next] -> [Excute] -> [Next]勾选[tcp/ip]、[Open Firewall] -> [Next], 输入两次密码(记住你的root密码) -> [Next], 勾选[Configure MySQL Server as a Windows Service]和[Standard System Account], 去掉[Start the MySQL Server at System Startup] -> [Excute] -> [Finish]。

(2) 右键[我的电脑]、[属性]、[高级]、[系统环境变量],添加:MYSQL_HOME:C:\Program Files\MySQL\MySQL Server 5.7;修改:path 追加 %MYSQL_HOME%/bin;

(3) cmd界面启动MySQL:net start mysql57,停止MySQL:net stop mysql57。

8.1.3 Navicat、MySQL-Front下载、安装

【实训2】Navicat下载、安装、配置

(1) Navicat官网下载地址http://www.navicat.com.cn/download/navicat-premium,安装文件(4.79M MySQL-Front_5.4_Setup)。

(2) 双击安装文件, 勾选[桌面快捷图标] [Next]

【实训3】phpMyAdmin配置

(1) phpstudy的官网下载地址http://phpstudy.php.cn/

(2) phpMyAdmin使用地址http://www.duzhaojiang.cn:89/phpMyAdmin/index.php, 用户名输入:学号,密码:输入身份证号

【实训4】MySQL-Front下载、安装、配置

(1) MySQL-Front 5.4的官网下载地址http://www.mysqlfront.de,安装文件(4.79M MySQL-Front_5.4_Setup)。

(2) 双击安装文件, 勾选[桌面快捷图标] [Next]

8.2 MySQL数据库技术

8.2.1 创建数据库

数据库就是存储数据的仓库。这里的数据库(DataBase DB)是指在计算机的存储介质上的仓库,数据必须是有组织、有结构的存储,不是杂乱无章的堆放。数据库包括数据表、视图、存储过程、索引等数据库对象。MySQL创建数据库的语句的语法格式是:

【例1.1】创建Demo数据库

8.2.2 创建数据表

数据表(Table)是数据库中最重要的数据库对象,是用于存储数据的数据库对象,数据库中的数据是以表为单位进行组织存储的。 数据表由行和列组成;表中的列称字段(Field),每个字段都有相应的描述信息,如数据类型、数据宽度等;表中的行称为记录(Record),它由若干个字段组成。MySQL创建数据表的语句的主要语法格式是:

【例1.2】创建数据表

8.2.3 插入数据

insert把新行插入到一个存在的表中,insert ... values形式的语句基于明确指定的值插入行,insert ... select形式插入从其他表选择的行。MySQL插入数据语句的主要语法格式是:

【例1.3】插入数据

8.2.4 查询数据

MySQL查询数据语句的主要语法格式是:

【例1.4】查询数据

8.2.5 修改数据

MySQL修改数据语句的主要语法格式是:

【例1.5】修改数据

8.2.6 删除数据

MySQL删除数据语句的主要语法格式是:

【例1.6】删除数据

8.2.7 创建视图

视图(view)是从使用者的角度查看数据的一个机制(可忽略不关注的内容、添加用户关注的内容),是从一个或几个基本表(或者视图)导出的表,实质就是1条select查询语句,表现的形式是一个二维表。

视图(view)是一个虚表。所谓的表是指其查询结果同真实的表一样,视图包含一系列带有名称的列和行数据。所谓的虚是指视图并不在数据库中以存储的数据值集形式存在,行和列数据来自其定义视图的查询所引用的表,并且在引用视图时动态生成。

【例1.7】创建包含学生班级名称的学生视图

8.2.8 创建存储过程

存储过程(Stored Procedure):一组预编译的SQL语句,可完成指定的操作。MySQL创建存储过程语句的主要语法格式是:

【例1.8】创建存储过程

8.2.9 删除存储过程、视图、表、数据库

MySQL删除数据库对象语句的主要语法格式是:

【例1.9】删除存储过程、视图、数据表、数据库

8.3 JDBC及其常用接口


8.3.1 JDBC概述

8.3.2 驱动程序接口Driver

8.3.3 驱动程序管理器DriverManager

8.3.4 数据库连接接口Connection

使用DriverManager类的静态方法getConnection()返回值为Connection类型,Connection对象表示的是Java应用程序与指定数据库之间的连接。

8.3.5 执行SQL语句接口Statement

Statement接口用于执行不带参数的简单SQL语句,该接口为Statement接口的子接口。

8.3.6 执行动态SQL语句接口PreparedStatement

PreparedStatement接口用于执行预编译的SQL语句,可以带输入参数,当然也可以不带输入参数,该接口为PreparedStatement的子接口。

8.3.7 执行存储过程接口CallableStatement

CallableStatement接口用于调用数据库的存储过程

8.3.8 访问结果集接口ResultSet

使用Statement/PreparedStatement对象执行SELECT类型的SQL语句后返回一个ResultSet类型的结果集,ResultSet结果集中包含了查询的结果。ResultSet结果集是一张二维表,其中有查询返回的列标题及对应的数据。

8.4 使用JDBC访问MySQL数据库之一


8.4.1 JDBC访问数据库的5个步骤

8.4.2 创建JDBC的通用数据库连接程序

【例2.1】在Java REsources的src下创建cn.dzj.ch08包,并在包下创建JDBC的通用数据库连接程序(src/cn/dzj/ch08/DBConnection_000.java)

8.4.3 创建Dao测试程序

【例2.2】在Java REsources的src下cn.dzj.ch08包下创建Dao测试程序(src/cn/dzj/ch08/DaoTest_000.java),右击该程序[运行方式]、[Java应用程序]在控制台察看运行结果。

8.5 使用JDBC访问MySQL数据库之二


8.5.1 执行SQL语句访问数据库

创建[显示学生信息]页面:WebContent\ch08\ShowStudentList_000.jsp

【例3.1】创建[显示学生列表信息]页面 (WebContent\ch08\StudenShowtList_000.jsp)

8.5.2 执行动态SQL语句访问数据库

【例3.2】创建[添加学生信息]页面 (WebContent\ch08\StudentAdd_000.html)

创建[添加学生信息]服务器端处理页面(WebContent\ch08\StudentAdd_000.jsp)

创建[删除学生信息]后台处理页面 (WebContent\ch08\StudentDelete_000.jsp)

8.5.3 执行存储过程接口访问数据库

【例3.3】创建[显示、修改学生信息]页面 StudentUpdate_000.jsp

创建[修改学生信息]后台处理页面 (WebContent\ch08\StudentUpdate_000_.jsp)

8.6 使用JDBC高级部分


8.6.1 使用JDBC访问其他数据库

8.6.2 使用JDBC数据库连接池

【例4】 (assemble _selector.html)

8.7 习题


1.填空题(概念、知识点----------讲义中醒目的关键字)

(1)

(2)

(3)

(4)

(5)

2.编程题

仿照【例1】编写创建部门表(部门Id、部门名称)、员工表(工号,部门ID,姓名,性别,生日,工资,职务('经理','副经理','部门经理','部门副经理','主管','职员'),登记时间)、员工视图、Get员工信息By部门Id、Get员工信息By工号和添加数据的SQL脚本;仿照【例3】编写添加员工的html网页以及显示员工、修改员工(界面、后台处理)、添加和删除员工(后台处理)的jsp页面。


本章参考文献



返回目录