• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗的软件工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

JDBC测评题

JDBC测评题

1. 什么是索引?

索引是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。将数据进行排序整理的过程就称为索引。我们根据索引去查,提高效率。

2. 索引的分类

  1. 主键(约束)索引:主键约束+提高查询效率。
  2. 唯一(约束)索引:唯一约束+提高查询效率。
  3. 普通索引:仅提高查询效率。
  4. 组合(联合)索引:多个字段组成索引。
  5. 全文索引:用于搜索很长一篇文章的时候,效果最好。
  6. hash索引:根据key-value效率非常高。

3. 哪些字段适合加索引?

  1. 字段内容可识别度不能低于70%:字段内数据唯一值的个数不能低于70%。例如,一个表数据只有50行,那么性别和年龄哪个字段适合创建索引,明显是年龄,因为年龄的唯一值个数比较多,性别只有两个选项。性别的识别度是50%。
  2. 经常使用where条件搜索的字段:例如user表的id name等字段。
  3. 经常使用表连接的字段:可以加快连接的速度。
  4. 经常排序的字段:因为索引已经是排过序的,这样一来可以利用索引的排序,加快排序查询速度。
  • 注意:那是不是在数据库表字段中尽量多建索引呢?肯定不是的。因为索引的建立和维护都是需要耗时的。创建表时需要通过数据库去维护索引,添加记录、更新、修改时,也需要更新索引,会间接影响数据库的效率。

4. 索引原理

索引的实现本质上是为了让数据库能够快速查找数据,而单独维护的数据结构。MySQL实现索引主要使用的两种数据结构:hash和B+树。我们比较常用的MyISAM和InnoDB引擎都是基于B+树的。

B+树:B+tree是MySQL使用最频繁的一个索引数据结构,数据结构以平衡树的形式来组织,因为是树型结构,所以更适合用来处理排序、范围查找等功能。相对hash索引,B+树在查找单条记录的速度虽然比不上hash索引,但是因为更适合排序等操作,所以他更受用户的欢迎。毕竟不可能只对数据库进行单条记录的操作。

5. JDBC编程步骤

  1. 注册驱动
  2. 获取连接
  3. 获取发送SQL语句的Statement对象
  4. 使用Statement对象执行SQL语句
  5. 处理结果集
  6. 释放资源

6. JDBC事务控制

关于JDBC的事务,下列描述正确的是:

  • A. 连接对象.setAutoCommit(true);表示开启手动控制事务(错误)
  • B. 一切成功,提交事务,连接对象.commit(true);(错误)
  • C. 出现异常,回滚事务,连接对象.rollback();(正确)
  • D. 以上说法都不正确(错误)

7. JDBC代码分析

阅读下面的代码,下列哪个是正确的:

String sql = "select id,username,password pwd from user2";
while(rs.next()){
    int id = rs.getInt("id");
    String userName = rs.getString("username");
    String pwd = rs.getString("password");
    System.out.println(id+"---"+userName+"---"+pwd);
}
  • A. 上述代码中String password = rs.getString("password");获取不到密码的值,会报错(正确)
  • B. 上述代码中String userName = rs.getString("username");获取不到值,会报错(错误)
  • C. 上述代码中int id = rs.getInt("id");获取不到值,会报错(错误)
  • D. 以上说法都不正确(错误)

8. JDBC接口关系

下列描述正确的是:

  • A. PreparedStatement是Statement的子接口(正确)
  • B. PreparedStatement可以解决SQL注入问题,但是效率比Statement低(错误)
  • C. PreparedStatement对于相同SQL语句只会编译一次(正确)
  • D. Statement可以解决SQL注入问题(错误)

posted on 2024-11-27 21:43  周政然  阅读(25)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3