2019年Java面试题(八) 数据库和dao 2019-04-

2019-04-27  本文已影响0人  码记

一、 数据库

1. 说出数据连接池的工作机制是什么?

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

二、 DAO

1. dao是什么及其优点

  1 dao data access object  数据访问对象 持久化层,主要用来进行数据操作的,经常成为dao模式

  2 优点

      1 数据访问独立到了一层,分层 ,易于分工,可重用

      2 修改具体的dao层实现类,不会影响到其他层,实现松耦合

  3 dao的结构 四大组件

      1 doa接口

      2 dao实现类

      3 pojo(plain old java objecct)类

      4 dao定位( 如何获取实例  spring)

  4 常用的dao技术

  jdbc  spring的dao    以及orm(ibatis mybatis hibernate)

2. jdbc

    1 步骤手写

      1 加载驱动 Class.forName("oralce.jdbc.driver.OracleDriver");

      2 获取数据库连接 Connection  connection=Drivermanager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","aaa","aaa");

      3 创建statement    Statement statement= connection.createStatement();

      4 执行sql          statement.executeQuery(sql);

      5 处理ResutlSet结果集---手动转成javabean

      6 关闭 ResutlSet  statement  Connection

    2 3个statement

      1 Statement 一边编译边执行

      2 PrepareStatement 预编译,效率高,安全,阻止sql攻击,支持占位符

      3 CallableStatement  调用存储过程

      PrepareStatement继承Statement,CallableStatement 继承PrepareStatement

3. 说说spring dao 

    1 对jdbc进行了封装,提供了两大模板技术封装了jdbc步骤,数据源的实现,行映射器进行记录与对象的转换工作,

          使用daoSupport方便获取模板

    2 给模板类注入数据源,之后使用模板类的api进行数据操作

4. orm框架  什么是orm orm比较 与jdbc比较

  1 orm  object relaction mapping 对象关系映射,解决面向对象与关系数据库不匹配的技术,对jdbc进行了封装,

                  使得我们可以使用面向对象的思维操纵数据库。使用缓存与懒加载技术提高效率

  2 常见的orm框架有ibatis mybatis hibernate

      mybatis与hibernate

      1 mybatis 半自动需要手动编写sql, 灵活控制sql,方便sql优化,代码量增加,不易移植, 也叫sql映射、不方便移植

      2 hibernate 全自动,自动生成sql, 方便移植,也叫对象映射、方便移植

      3 hibernate 与jdbc

      1 hibernate封装了jdbc,使得我们可以使用面向对象的思维操纵数据库

      2 hibernate 全自动,自动生成sql, 方便移植,也叫对象映射、方便移植

      3 jdbc效率最好

上一篇下一篇

猜你喜欢

热点阅读