JDBC面试题总结

1、JDBC的组成

JDBC是由SUn公司提出的一组接口以及各个数据库厂商提供的实现类(驱动jar)组成;

2、JDBC的核心步骤

2、加载驱动

创建connection连接

执行sql语句

处理结果集

释放资源

3、结果集ResultSet怎么处理

while循环rs.next() boolean类型的返回值,判断下一行数据是否存在

如果存在返回true,返回这一行数据并且指针下移一位。如果只有一行数据 可以使用if条件判断。

获取数据具体内容 rs.getXXX();

4、为什么封装JDBC工具类

1、程序中可以独立完成功能的代码,并有超过两次使用的时候,需要对其封装,提高代码复用性

2、对于程序中经常改变的字符串,需要将其提取到配置文件中定义

5、什么是ORM模型(Object Relational Mapping)

数据库中表和对象的对象关系映射

6、封装实体类的条件

1、数据库中的表对应java中的一个实体类

2、实体类需要实现序列化接口

3、提供对应属性公开的get/set方法

4、实体类的属性和表的字段相对应

5、提供有参构造和无参构造方法

7、什么是DAO层、service层

DAO层成为数据访问对象,主要封装数据库表的CRUD操作(create,read,update,delete)

Service层也称为业务层,用于封装业务功能操作

8、三层架构

三层架构是一种编程思想,在逻辑上将应用程序划分为三层,本着各司其职的思想划分

1、DAO层:数据模型层

·主要负责与数据库交互,完成CRUD操作

·接受Service层传递的数据

2、Service层:业务逻辑层

·主要做业务处理

·会一次或多次调用DAO层

·接受view层传来的数据并做运算处理

·需要做事务控制

3、View层:视图层

·主要做视图处理

·接受用户的信息

·将Service完成的功能返回数据展示给用户

9、什么是事务?在JDBC中如何处理事务?

事务:是数据库中的一种特性,用于确保一个执行过程中的所有步骤全部加载成功或全部失败

四大特征:

原子性:事务具备原子性,说明事务是数据库中最小的工作单位,事务的原子性确保数据库操作过程中的所有步骤的全部成功或全部失败;

一致性:指事务对于数据进行修改操作,要求数据修改前和修改后的状态保持一致。例如:银行转账业务的事务无论是否成功,转账者和收款人的总额应该保持不变;

隔离性:是指一个事务的执行不能被其他事务干扰,一个事务的操作和使用的数据,对并发中的其他事务是隔离的

持久性:是指一个事务一旦被提交,他对数据库的改变是永久性的

10、索引

索引是一种用于快速查询和检索数据的存储结构,保存了数据库指定字段的数据位置,类似图书目录的作用;

常见的索引存储结构有: B+树和 Hash。

索引的作用是用于提升数据库的查询性能,如果没有索引,数据库的查询会进行全表搜索,这样会消耗时间,造成大量的磁盘IO操作;如果建立索引,则通过索引中所保存的数据位置,快速找到表中的对应记录;

索引的种类包括:主键索引、唯一索引、普通索引、前缀索引、全文索引、组合索引;

11、索引类型

主键索引:数据表的主键列使用的就是主键索引。

辅助索引:唯一索引,普通索引,前缀索引、全文索引等索引,都属于辅助索引。

唯一索引(Unique Key) :唯一索引也是一种约束。唯一索引的属性列不能出现重复的数据,但是允许数据为 NULL,一张表允许创建多个唯一索引。建立唯一索引的目的大部分时候都是为了该属性列的数据的唯一性,而不是为了查询效率。

普通索引(Index) :普通索引的唯一作用就是为了快速查询数据,一张表允许创建多个普通索引,并允许数据重复和 NULL。

前缀索引(Prefix) :前缀索引只适用于字符串类型的数据。前缀索引是对文本的前几个字符创建索引,相比普通索引建立的数据更小,因为只取前几个字符。

全文索引(Full Text) :全文索引主要是为了检索大文本数据中的关键字的信息,是目前搜索引擎数据库使用的一种技术。Mysql5.6 之前只有 MYISAM 引擎支持全文索引,5.6 之后 InnoDB 也支持了全文索引。

12、表级锁和行级锁

表级锁: MySQL 中锁定粒度最大的一种锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会出现死锁。其锁定粒度最大,触发锁冲突的概率最高,并发度最低,MyISAM 和 InnoDB 引擎都支持表级锁。

行级锁: MySQL 中锁定粒度最小的一种锁,只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,并发度高,但加锁的开销也最大,加锁慢,会出现死锁。

13、三大范式

数据库设计范式是数据库在设计过程中,需要遵守的设计准则,避免数据冗余;

第一范式(1NF):每个字段都是最小字段,具有原子性,不可再分;

第二范式(2NF):每张表必须存在主键,并且其它字段也必须与主键直接依赖,不能仅仅与主键的某一部分依赖(联合主键)

第三范式(3NF):每个字段不能与主键间接依赖,每张表只保存一种数据,表和表之间使用外键关系关联;

你可能感兴趣的:(java,数据库)