java 面试视频总结 (2)

匿名 (未验证) 提交于 2019-12-02 20:37:20

数据库方面面试问题

1.数据库分为关系型数据库和非关系型数据库。

关系型Mysql oracle SqlServer

非关系型:redis,memcache,mogodb,hadoop

2.关系型数据库的三范式

范式就是规范,就是关系型数据库在设计表时,要遵守的三个规范。要想满足第二范式,必须先满足第一范式,要想满足第三范式,必须先满足第二范式

第一范式:列数据不可以分割

第二范式:主键

第三范式:外键

  1. 第一范式(确保每列保持原子性)
  2. 第二范式(确保表中的每列都和主键相关)
  3. 第三范式(确保每列都和主键列直接相关,而不是间接相关)

反三范式,有的时候为了查询效率,可以设置重复的字段,订单和订单项(单价)。

3.事务地四个基本特性ACID

事务是并发控制的单位,是用户定义的一个操作序列,这些操作要么都不做,是一个不可分割的工作单位。

原子性:事务内操作不可分割,要么都成功,要么都失败

一致性:要么都成功,要么都失败,后面的失败了要对前面的操作进行回滚

隔离性:一个事务开启后,不能受其他事务干扰

持久性 :表示事务对数据库的影响是永久的。

4.Mysql 数据库的默认最大连接数?

为什么需要最大连接数?

特定服务器上的数据库只能支持一定数目同时连接,这时候需要我们设置最大连接数(最多同时服务多少连接),在数据库安装时都会有默认的最大连接数100

5.mysql的分页

为什么需要分页?

在很多数据时,不可能完全显示数据。进行分段显示。

Mysql是使用关键字limit来进行分页的,limit offset size表示从多少索引 去多少位。

Oracle 分页思路:要使用三层嵌套查询。

Mysql

String sql = select * from students order by id limit +pageSize*(pageNum-1)+,+pageSize;

6.数据库的触发器的使用场景

触发器需要有触发条件,当条件满足后做什么操作。比如在社交网上,你发表了一个日志,会自动通知好友。其实就是一个后触发。再向通知表写入条目,因为触发器效率高。

每插入一个帖子,都希望版面表中的最后发帖时间,帖子总数字段进行同步更新,用触发器效率就很高。

7.数据库存储过程优点

1.存储过程只在创建时编译,以后执行都不需要编译。而一般的sql语句每执行一次就编译一次,因此存储过程提高了效率。

2.复杂业务需要多条sql语句。这些语句需要从客户机发送到服务器,会产生大量网络传输。如果将这些操作存储到存储过程中,客户机和服务器之间的网络传输就会大大减少,降低了网络负载。

3.存储过程可以重复使用,减少开发人员工作量

4.安全性高

定义存储过程:

Create procedure insert_student(_name varchar(50),_age int ,out_id int)

Begin

 Insert into student values(null,_name,_age);

Select max(stuId) into _id from student;

End;

调用

Call insert_student(wfz,23,@id);

Select id;

8.怎么用jdbc 调用存储过程?

贾涟欲执事

1.加载驱动

2.获取连接

3.设置参数

4.执行

5.释放链接

9.简单说一下你对jdbc的理解

Java database connection, java 数据库连接,数据库管理系统是很多的,每个数据库管理系统支持命令是不一样的

Java只定义接口,让数据库厂商实现接口,对于我们而言,需要我们导入对应厂商的实现即可。然后以接口的方式进行调用。

10.简单写一个JDBC的程序,写一个访问Oracle数据的程序

贾涟欲执事

1.加载驱动

(com.mysql.jdbc.Driver,com.oracle.jdbc.Driver)

2.获取连接

(DriverManager.getConnection(uri,userNmae,userPassword))

3.设置参数

Statemeent,PreparementStatement

Cstmt.setXXX(index,value);

4.执行

executeQuery,executeUpdate

5.释放连接(释放连接需要从小到大,必须放到finally中)

11.JDBC   PreparedStateMent相比于StateMent的好处

1.preparedStateMent是预编译的,比StateMent速度快

2.代码的可读性和维护性

3.安全性

12.数据库连接池的作用

1.限定了数据库连接的个数,不会导致由于数据库连接过多而导致系统运行缓慢或崩溃。

2.数据库连接不需要每次创建或销毁,节省资源

3.数据库连接不需要每次创建,响应时间快

转载请标明出处:java 面试视频总结 (2)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!