java面试------MySql数据库、JDBC
MySql数据库
一、DML操作及简单查询
1、MyISAM和InnoDB的区别?
区别一:MyISAM不支持事务,InnoDB支持。
区别二:MyISAM 不支持数据行锁定,InnoDB支持。
区别三:MyISAM不支持外键约束,InnoDB支持。
区别四:MyISAM支持全文索引,InnoDB不支持。
适用场合:MyISAM 不需事务,空间小,以查询访问为主。
InnoDB 多删除、更新操作,安全性高,事务处理及并发控制。
二、高级查询、事务、视图、索引
1、MySQL的索引类型有哪些?
① 普通索引:基本的索引类型,允许在定义索引的列中插入重复值和空值。
② 唯一索引:索引列数据不重复。
③ 主键索引:主键列中的每一个值是非空、唯一的。
④ 复合索引:将多个列组合作为索引。
⑤ 全文索引:支持值的全文查找。
⑥ 空间索引:地图中经纬度的应用。
JDBC
一、JDBC的操作
1、 说下原生 jdbc 操作数据库流程?
第一步:Class.forName( )加载数据库连接驱动。
第二步:DriverManager.getConnection( )获取数据连接对象。
第三步:根据SQL语句获取会话对象,会话对象一般用PreparedStatement类型。
第四步:执行SQL处理结果集,执行SQL前如果有参数值就设置参数值
setXXX( )。
第五步:关闭结果集、关闭会话、关闭连接。
2、 为什么要使用 PreparedStatement?
① 提高了安全性,解决了sql注入问题。
② 提高了代码的可读性和可维护性。
③ 提高了SQL语句执行的性能。
二、连接池、事务、并发控制、DAO模式
1、 关系数据库中连接池的机制是什么?
前提:为数据库连接建立一个缓冲池。
① 从连接池获取或创建可用连接。
② 使用完毕之后,把连接返回给连接池。
③ 在系统关闭前,断开所有连接并释放连接占用的系统资源。
④ 能够处理无效连接,限制连接池中的连接总数不低于或者不超过某个限定值。
原理:预先创建好对象,用的时候拿来用就行,不用的时候放回去,避免每次用的时候再去创建对象,解决了耗时的问题。
2、 什么是Dao模式?
Dao模式极简介绍:封装了对单表的增删改查。
Dao模式的组成部分:实体类、Dao接口、Dao实现类、Dao实现类的父类
(BaseDao)。
3、 说说你对3层架构的理解?
表示层(H5、CSS、JSP):主要负责获得数据以及为用户展现数据。
业务逻辑层(Service):封装了多个表的增删改查操作,需要事务。
数据访问层(Dao):主要负责对数据库的直接访问。
三层之间互不影响,各执其责。