java数据库读书笔记_疯狂Java讲义读书笔记13 JDBC

通过使用JDBC,Java程序可以非常方便地操作各种主流数据库,这是Java语言的巨大魅力所在。由于Java的跨平台特性,所以使用JDBC编写的程序不仅可以实现跨数据库,还可以跨平台,具有非常优秀的可移植性。

程序使用JDBC API以统一的方式来连接不同的数据库,然后通过Statement对象来执行标准的SQL语句,并可以获得SQL语句访问数据的结果。因此掌握标准的SQL语句是学习JDBC编程的基础。

JDBC全称是Java Database Connectivity,即Java数据库连接,它是一种可以执行SQL语句的Java API。程序可以通过JDBC API连接到关系数据库,并使用结构化语言(sql)来完成对数据库的查询、更新。

严格来说,数据库仅仅是存放用户数据的地方。当用户访问、操作数据库中数据时,就需要数据库管理系统的帮助,数据库管理系统的全称是DBMS,习惯上常常将数据库和数据库管理系统笼统的称为数据库,通常所说的数据库包括存储用户数据的部分,也包括管理数据库的管理系统。

DBMS是所有数据的知识库,负责管理数据的存储、安全、一致性、并发、恢复、访问等操作,DBMS有一个数据字典,有时也被称为系统表,用于存储他拥有每个事务的相关信息,例如名字、结构、位置和类型,这种数据的数据也被称为元数据。

网状数据系统。

层次型数据库

关系数据库

面向对象数据库

mysql默认支持两种存储机制

myisam:这是mysql早期默认的存储机制,对事务支持不够友好

InnoDB:提供事务安全的存储机制,通过行级锁来保证事务完整性,并以Oracle风格的共享锁来处理select语句。系统默认采用InnoDB存储机制。

索引

索引是存放在模式中的一个数据库对象,虽然索引总是从属于数据表,但他也和数据表一样属于数据库对象。创建索引的唯一作用就是加速对表的查询,索引通过快速路径访问方法来快速定位数据,从而减少了磁盘IO。

索引作为数据库对象,在数据字典中独立存放,但不能独立存在,必须属于某个表。

索引的好处是可以加速查询,但索引也有如下两个坏处

与书的目录相似,当数据表中的记录被添加删除修改时,数据库系统需要维护索引,因此有一定的系统开销。

存储索引信息需要一定的磁盘空间

JDBC的典型用法

掌握了标准SQL命令语法后,就可以使用JDBC开发数据库应用了。

DriverManager:用于管理JDBC驱动的服务类,程序中使用该类的主要功能是获取Connection对象,该类包含如下方法

3ac469dbebaba0b97f8065e3a27f8ae3.png

Connection代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先获得数据库连接。该接口常用方法如下。

java数据库读书笔记_疯狂Java讲义读书笔记13 JDBC_第1张图片

上面三个方法都返回用于执行sql语句的statement对象,preparedstatement、callablestatement是statement的子类,只有获得了statement之后才可以执行sql语句

除此之外,Connection还有如下几个用于控制事务的方法。

java数据库读书笔记_疯狂Java讲义读书笔记13 JDBC_第2张图片

java7为Connection新增了setSchema(String schema)、getSchema两个方法,这两个方法用于控制该Connection访问的数据库Schema。Java7还为Connection新增了setNetworkTime(Executor executor,int milliseconds)、getNetworkTimeout两个方法来控制数据库连接的超时行为。

Statement:用于执行SQL语句的工具接口,该对象既可以用于执行DDL、DCL语句,也可以用于执行DML语句,还可用于执行SQL查询。当执行SQL查询时,返回查询结果集。它的常用方法如下。

java数据库读书笔记_疯狂Java讲义读书笔记13 JDBC_第3张图片

Java7为statement新增了closeOnCompletion方法,如果statement执行了该方法,则当所有依赖于该statement的ResultSet关闭时,该Statement会自动关闭。Java7还为Statement提供了一个isCloseOnCompletion方法,该方法用于判断该Statement是否打开了closeonCompletion

Java8为statement新增了多个重载的executeLargeUpdate方法,这些方法相当于增强版的executeUpdate方法,返回值long

你可能感兴趣的:(java数据库读书笔记)