It计算机课件 JDBC编程_第1页
It计算机课件 JDBC编程_第2页
It计算机课件 JDBC编程_第3页
It计算机课件 JDBC编程_第4页
It计算机课件 JDBC编程_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

o

CD

目标

•关系数据库的概念。,

•SQL语言的特点。

•MySQL数据库的安装和常用命令的使用

•SQL常用语句的格式及用法。

•理解JDBC标准的概念

•掌握JDBC标准的核心API

•掌握JDBC的Mysql实现

•掌握用Statement,PreparedStatement实现增删改查

I掌握JDBC事务(Transaction)控制

•了解JDBC的一些优化技巧,包括批处理,设置预取行数等

•了解JDBC访问CL0B和BLOB对象

■掌握调用Mysql存储过程

1关系数据库简介

1.1关系数据库

数据库是相互关联的数据集合,是管理和组织信

息和数据的综合系统。用二维表格的形式来表示实体

和实体之间联系的数据库模型称为关系型数据库模型

,以关系模型作为数据的组织存储方式的数据库称为

关系数据库。

在关系数据库中,不但实体用表格来表示,实体

之间的关系而用表称来表示。表感是二矗山,是由许

多行和列组成的,二维表格的列称为字段(Fields)

,行祢为记录(Records)。由这些行和列形成的表格

称为一个表(Table),许多这样的表就组成了一个关

系数据库(Database)o

1.2MySQL数据库简介

•MySQL是一个多用户、多线程的关系数据库管

理系统,由于它操作简便、运行速度快、多线

程、多用户、跨平台等特点,得到了广泛的应

用。它还是个开源的数据库,用户可以直接从

网上下载,用于个人或商业用途,不必支付任

何费用。

•MySQL的主要技术特点:

-完全多线程,支持多CPU。

-它通过一个高度优化的类库实现函数库,速度快,

没有内存漏洞。

-多平台,包括Windows、Solaris、SunOS、UNIX、

Linux等。

-有多种数据类型,包括integer、float、

double>char>varchar>text>blob、

date>time>datetime、year>enum。

-提供C、C++、Java、Perl、PHP、和TCL的

API接口。

-非常灵活和安全的权限系统,密码加密。’

-可处理大型数据(超过5000万条记录)。

-多种语言支持。

常见的数据类型

字符型:字母、汉字、数字符号、特殊符号

数值型:整数和小数

日期时间型:具有特定格式的数据

逻辑型(布尔型):逻辑真True,逻辑假•

False

字符串类型的数据

(l)char:定长字符串类型,范围0-255

,例:namechar⑻,固定8个字节。

name="刘华”实际占用8字节“刘华——

⑵varchar:变长字符串类型,范围0-255

例:namevarchar(8),不超过8个字节。

nanie="刘华”实际占用5字节“刘华

⑶text:变长文本类型的字符数据

范围0-65535.

(4)blob:变长(二进制形式)长文本数据

范围0-65535

数值类型的数据

⑴int:整型数据,范围0-4字节,

⑵float:浮点型数据,包括整数和小数

日期时间类型数据

按照特定的日期格式和时间格式表示数据

⑴date:表示日期,格式yyyy-mm-dd

(2)time:表示时间,格式hh:mm:ss

⑶datetime:表示日期时间,

格式yyyy-mm-sshh:mm:ss

1.3MySQL的下载和安装

•MySQL数据库可以从官方网站下载,它的URL是

:http://dev.mysql.com/downloads

1.4MySQL数据库基本操作指令

•MySQL数据库的启动和停止

一命令格式:netstart/stopmysql

•连接到mysql数据库。

-命令格式:mysql[-h主机]-u用户名-p[用户密

码]

•显示数据库名列表

-命令格式:showdatabases;

MySQL命令格式

命令关键词〈选项》;分号表示命令结束并提交..

•打开数据库

-命令格式:use数据库名;

•显示数据库中的数据表•

-命令格式:showtables;

•退出mysql命令

-命令格式:exit;//\q..

•修改用户密码

-命令格式:mysqladmin-u用户名一p旧密码

password新密码

-这是DOS环境下的命令,注意p后面不留空格。

-注:-u和-p后面可以不加空格。

Insertinto数据表名(主机名,用户名,

用户密码,权限1,权限2,…)values(主

机名值,用户名值,用户密码值,权限1值

权限2值,…);

•激活数据

Flushprivileges;

MySQL服务器的用户管理

MySQL服务器中内置系统数据库,数据库名

为mysqL数据库中内置数据表,数据表名

为user。

只能由数据库管理员(root,123456)对用

户账号进行维护,增加新用户、修改用户

密码、删除用户账号、用户账号授权。

使用root、123456登录mysql数据库管理系

统。进入mysql>提示符

User数据表中保存所有授权用户(允许使用mysql数据库的

用户)的用户名、用户密码以及用户权限表1/2。

序号权限参数说明

1Select_priv显示记录权限

2lnsert_priv插入记录权限

3Update_priv更新记录权限

4Delete_priv删除记录权限

5Create_priv建立数据库、数据表权限

6Drop_priv删除表文件的权限

7lndex_priv创建索引字段康

8Alter_priv修改表结构权限

User数据表中保存所有授权用户(允许使用mysql数据库的

用户)的用户名、用户密码以及用户权限表2/2。

序号权限参数

9File_priv读写服务器上文件的权限

10Grant_priv授权其他用户权限

11References_priv维护外键权限

12Show_db_priv浏览服务器上数据库权限

13Lock_tables_priv创建删除表锁权限

1.增加新的用户

创建新的用户账号

包括用户名、用户密码、用户权限。

打开mysql数据库

插入新的用户账号数据到user数据表

激活新创建的用户账号

命令格式:

mysql>usemysql;

mysql>insertintomysql.user(主机名称,用户名称

,用户密码,权限1,权限2,…)

values(host,user5password,select_priv,-);

mysql>flushprivileges;

增加用户例题bookuser/11111

用户名bookuser,用户密码111111,拥有

select,insert,update,delete,create,drop权限。

mysql>usemysql;

mysql>insertinto

mysql.user(host9user9password9select_p

riv,insert_priv,update_priv,delete_privi,cr

eate_priv,drop_priv)values

(1ocalhosf/bookuser\passwordC111111

,)VVVVVV);

mysql>flushprivileges;

增力口用户例题booktest,333333

用户名booktest,户密码333333,拥有select,insert,

update,delete,create,drop,index,alter^ZPgo

mysql>usemysql;

mysql>insertinto

mysql.user(host9user9password9select_p

riv,insert_priv,update_priv,delete_privi,cr

eate_priv,drop_priv,index_priv,alter_priv

)values

(localhosf/booktest\passwordC3333339

),V,V,V,'y',V,'y',V,'y');

mysql>flushprivileges;

2.修改用户权限

命令格式:

updatev表名〉set[权限参数名称=权限值]

wherev条件〉;

mysql>usemysql;

mysql>updatemysql.userset权限名1=权

限值1,权限名2=权限值2wherev条件〉;

mysql>flushprivileges;

修改权限例题

修改bookuser用户的index_priv和alter_priv为

'V'一

mysql>usemysql;

mysql>updatemysql.user

setindex_priv='y\alter_priv='y,

whereuser="bookuser,;

mysql>flushprivileges;

修改用户密码

命令格式:

updatev表名〉

setpassword=password(新密码)

wherev条件〉;

mysql>usemysql;

mysql>updatemysql.userset

password=password(新密码)where〈条

彳牛〉;

mysql>flushprivileges;

修改用户密码例题

修改bookuser用户的密码111111为222222

mysql>usemysql;

mysql>updatemysql.user

setpassword=password(u222222,J)

whereuser=ubookuser,J;

mysql>flushprivileges;

3.删除用户账号

命令格式:

deletefromv表名〉wherev条件〉

mysql>usemysql;

mysql>deletefrommysql.user

where〈条件〉;

mysql>flushprivileges;

删除用户账号例题

删除booktest用户账号

mysql>usemysql;

mysql>deletefrommysql.user

whereuser="bookuserJ;

mysql>flushprivileges;

•数据库备份(导出)

-命令格式:mysqldump-u用户名-p[密码]--

databases数据库名表》文件名

•数据库恢复(导入)

-命令格式:mysql-u用户名-p密码数据库名<备

,份文件名

1-备份文件可以在当前目录下,也可以在指定的目录

下。

•例例把数据库test备份到test,sql文件中。

'-在DOS提示符下输入以下命令:

mysqldump—uroot—pl23321-databases

test>test.sql

-其中,root是用户名,123321是该用户的密码,备

份成功后,在当前目录下生成了文件test,sql。

例2:从例1中的备份文件test.sql中恢复数据

库test。

-在DOS提示符下输入以下命令:

-mysql-uroot-pl23321test<test.sql

2SQL语言基础

2.1SQL语言简介

•SQL是StructuredQueryLanguage的缩写,即

,结构化查询语言。它是1974年由Boyce和

Chamberlin提出来的,用来实现关系运算中数

据查询、数据操纵、数据定义等操作的语言,

是一种综合的、功能极强的同时又简单易学的

语言。它集数据查询(DataQuery)>数据操

纵(DataManipulation)>数据定义(Data

Definition)和数据控制(DataControl)等

功能于一体,具有以下居点:

-一体化特点

-高度非过程化

-视图操作方式

-不同使用方式的语法结构相同「

:-语言简洁,易学易用

•SQL语言的动词

数据查询SELECT

数据定义CREATE,DROP,ALTER

数据操纵INSERT,UPDATE,DELETE

数据控制GRANT,REVOKE

2.2常用SQL基本语句

•create语句

-功能是创建数据库、创建数据表、创建视图等。

•create语句格式:

二-建立数据库:;

createdatabase数据库名[defaultcharacter

setgbk];

,-建立数据表:

createtable数据表名(字段名1属性,字段名2

属性,…,字段名n属性);

­字段的属性包括字段类型、字段宽、小数位、约束

O其中约束有主键约束、外键约束、非空约束等,

1字段之间以逗号分隔。在数据表中设置自动编号字

段可在该字段声明时加上auto_increment关键字,

并将该字段设为主键。

•例如:

createtablemytable

(idint(4)auto_increment,namechar(14),

ageint(4),primarykey(id));

-该命令建立一个数据表mytable,字段id为主键,且被设

为自动编号字段。添加记录时,id字段的默认值是前一

个记录的值加L

•describe语句格式

describe数据表名;

•describe语句的功能是显示数据表的结构,即

,显示字段名及其属性。

•insert语句

,格式:

insertinto表名(字段名1,字段名2,…,字段名n)

values(字段1的值,字段2的值,字段n的值);

•select语句

-SELECT语句的功能是从数据表中检索数据,并将结

果以表格的形式返回,还能实现统计查询结果,合

并结果文件,作多表查询和对结果排序等操作。

•格式:

SELECT[ALLIDISTINCT]

[别名.]选项L[别名.]选项

FROM表名[别名][,表名[别名]…]

WHERE条件表达式][AND条件表达式…]

GROUPBY分组选项[,分组选项…]]

[HAVING组条件表达式]

[ORDERBY排序选项[ASCIDESC][,排序选项

[ASCIDESC]...]]

•命令中各参数的含义如下:

,-SELECT是该命令的主要关键字。

-ALLIDISTINCT:表示ALL和DISTINCT任选其一,ALL

表示所有的记录,DISTINCT表示去掉重复记录。

1-FROM表名[别名]:表示被检索的数据表,表名之

间用逗号分隔,这里的别名表示数据表的另一个名

字,可以由用户定义。一旦定义了别名,可以在以

后的命令中用别名代替表名。

1-WHERE条件表达式:表示检索条件。

,-GROUPBY分组选项:表示检索时,可以按某个或

某些字段分组汇总,各分组选项之间用逗号分隔。

-HAVING组条件表达式:表示分组汇总时,可以根

据组条件表达式检索某些组记录。

,-ORDERBY排序选项:表示检索时,可以按指定字

段排序,ASC为升序,DESC为降序。

•SELECT命令的基本结构是

SELECT...FROM...WHERE,含义是输出字段…数

据来源…查询条件,在这种固定模式中,可以

不要WHERE,但是必须有SELECT和FROM。

•delete语句

-delete语句的功能是从数据表中删除记录。

,格式:

deletefrom数据表名where条件表达式

•update语句

-update语句的功能是修改数据表中记录的值

O

•格式:

update表名set字段名=表达式where条件

表达式

•drop语句

-drop语句的功能是删除数据库或数据表。

-删除数据库格式:

dropdatabase数据库名;

-删除数据表格式:•

droptable数据表名;

•alter语句

-alter语句的功能是修改表的结构、增加新的字段。

•格式:

,-修改表的结构:

altertable表名modify字段名属性;

-增加新字段:

altertable表名add字段名属性;

嗓例导入

•项目

运用JDBC技术查询数据库表中相关记录

・任务

1.实现对数据库各种查询功能;

2.实现新增,更改,删除等数据库操作。

•技术要点(关键字)

'1.JDBC连接数据库。

2.JDBC的增,删,改,查操作的实现。

如埼c偏移接口简介

・JDBC是进行数据库连接的抽象层

•JDBC支持和ANSISQL-2标准相容的数据库

小0

Java应用程序编

程接口

Java应用程序JDBC

(Java数据库连接)

勿3c

少3c种类

JDBC种类

JDBC-ODBC桥Java到网络协议Java到数据库协议Java到本地API

JDBC

驱动程序

JDBOODBC桥驱动

。JDBCQDBC是SUN提供的一个标准的JDBC操作,自接利川微软的

ODBC进行数据库的连接操作,似是,这种操作性能较低,所以通帝情况

F是小推荐使用这种方式进行操作的

JDBC本地驱动

。M接使用件个数据咋生产商提供的JDBC驱动程序,但是因为其只能应用

住特定的数据库上.会丧失拽程序的可移植性•他是这样操作的性徒较

JDBC

驱动程序

JDBC网络驱动

⑥这种瞅动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议乂

被某个眼务器比换为一种DBMS协议这种网络服务瑞中间件能够将它的

纯Java客户机连接到多种不同的数据库卜所用的11体协议取决J•提供

匕通常,这是必为处活的JDBC亦动程序。〜

木地协议纯JDBC驱动

◎这种类型的驮动程Ji:将JDBCi用口f[接轨换为DBMS所使用的网络协议

这将允许从客户机机器上仃.接谢用DBMS服务器,/Intranet访问的•个

很实川的解决力〃、,

JDBCODBC桥接器

•为了要连接到这个数据库,我们首先要建

立一个JDBC-ODBC桥接器:

try(

Class,forName(nsun.jdbc.odbc.JdbcOdbcDriver

}

catch(ClassNotFoundExceptione){}

46

•连接到数据库

try{Connectioncon=DriverManager.getConnection

("jdbc:odbc:数据源名字","loginname","

password");

)

catch(SQLExceptione){}

•发送SQL语句

try{Statement

sql=con.createStatement();

)

Catch(SQLExceptione){}

47

•处理查询结果

ResultSetrs=sql.executeQuery("SQL语句”);

例如:

ResultSetrs=sql.executeQuery(^SELECT*FROMCJ”);

ResultSet对象是一个管式数据集,即它是以统一形

式的列组织的数据行组成。ResultSet对象一次

只能看到一个数据行,使用next。方法走到下一

数据行,获得一行数据后,ResultSet对象可以

使用位置索引或使用列名称,以便使用getXxxO

方法获得字段值。

48

唾要的接口

•java.sql.Connection

•java.sql.Statement

•java.sql.PreparedStatement

•java.sql.CallableStatement

•java.sql.ResultSet

•java.sql.Driver

程序访问数据库的步骤

1.加载JDBC驱动的实例或是通过jdbc.drivers

系统属性向系统注册一个驱动程序

2.指定数据库

3.打开数据库连接

4.提交数据库查询

5.取得查询结果

6.清除结果集

7.关闭连接

「注册驱动程序

・加载JDBC驱动程序

•Class,forNameCDriverName,J)

...DriverName为要加载的数据库驱动名称

■如:加载JDBC-ODBC数据库驱动程序:

Class,forNameCsun.jdbc.odbc.JdbcOdbcDriver^^)

1•如:加载Mysql数据库驱动程序/

Class.forNameCcom.mysql.jdbc.Driver")

指定数据库.

指定URL字符串

jdbc:subprotocol:subname

Stringurl=ujdbc:mysql://5,

+serverName+££:端口号/"+database;

例:jdbc:mysql:

//localhost:3306/test?usellnicode=true&char

acterEncoding=gbk;

打开数据库连接

•Connection

conn=DriverManager.getConnection(url);

•该方法使用URL字符串作为参数

•如果能建立连接,则返回一个Connection

对象

•Connection对象代表与一个特定数据库的

会话过程

Statement(1)

•创建Statement:

-Connection.createStatement^-法

•执行INSERT,UPDATE和DELETE

-Statement.executeUpdate方法

•执行SELECT

-Statement.executeQuery方)去

取得返回结果

•查询的结果存放在ResultSet对象的一系列

行中

•ResultSet对象的最初位置在行首,

•ResultSet.next()方法用来在行间移动

•ResultSet.getXXXO方法用来取得字段的

内容

“设方法

MethodlavaTypeReturned

gotASClTStroam:jmv=、io.inputStveam

java.-math-BigDaoimal

ggtBinarystirearnjmva.io.ir^TvitStveain

g-atBooleantxDolean

gotBy七。t?yte

g-=?tBy^t^sbytie口

getr>a.t<ajava-叁ql.L>a.tie

gmtzJZtoubledouble

g^tFlcxatfloat

int

gd_onglor^

gatzobjautOt>j&ct

Shortstioirtz

g^?tstv±ngjava.-I^XKJ.Staring

gwtzTim^java.s<jl.Timo

g<atTiinastampj才/a.s-ql.Timestamp

tunioodeStveam:jmvR-±o.Input3tveam«“InICOI1.chnmciers

使用2勿称"(2)

•当需要多次调用同一条SQL语句时,可以使用

PreparedStatement

•PreparedStatement从Statement继承而来

•setXXX方法

PreparedStatementpstmt=con.prepareStatement(

"UPDATEfriendsSETsalary=?WHEREnamelike?");

pstmt.setlnt(1,10000);

pstmt.setString(2,“李明");

pstmt.executeUpdate();

使用g威板)

•调用数据库中的StoreProcedure时,要用到

CallableStatement

•CallabelStatement从PreparedStatement继

SNf与火^^据类型的对应条系

与。11%poi-iVJr、pM

VAFLCHJ^

UZ3^W3\J>Z3^REtzxr工TiuCj

NUXKRX-^3n-n-rrx^tifci.B>m匚0ux_rxuiX

口2GMAL3nvn.rrvatfa..Bx-3Etexrru»1

BXTbooNes^aJi

TnTxTNTkryt«

UrTEGKRU-xtl

nx<srxrc工cmg

HBAr,£,o^a•2

FXXZJKT:SouisNu

rXXJHLK"VTIxt~£lu

BTMAFTy±rytiu[]

VaRBXXKLRYtryr-uI]

工XZ3K1VZJ;RYTHRVtr>Fv[J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论