JavaWeb面试题复习第一弹

1、原生jdbc操作数据库流程
  • Class.forName()加载数据库连接驱动
  • DriverManager.getConnection()获取数据连接对象
  • 根据SQL获取sql会话对象,有2种方式Statement、PreparedStatement
  • 执行SQL处理结果集,执行SQL前如果有参数值setXXX();
  • 关闭结果集,关闭会话,关闭连接
2、为什么使用PreparedStatement
  • PreparedStatement接口继承Statement,PreparedStatement实例包含已编译的SQL语句,所以其执行速度要快于Statement对象
  • 作为Statement的子类,PreparedStatement继承了Statement的所有功能,三种方法execute、executeQuery和executeUpdate已被更改以使之不再需要参数
  • 在JDBC应用中,在任何时候都不要使用Statement
    • 代码的可读性和可维护性Statement需要不断地拼接,而PreparedStatement不会。
    • PreparedStatement尽最大可能提高性能DB,有缓存机制,相同的编译语句再次被调用不会再次需要编译
    • 最重要的一点是极大地提高了安全性Statement容易被SQL注入,而PreparedStatement传入的内容不会和sql语句发生任何匹配关系。
3、关系数据库中连接池的机制是什么

为数据库连接建立一个缓冲池

  • 从连接池获取或创建可用连接
  • 使用完毕之后,把连接返回给连接池
  • 在系统关闭前,断开所有连接并释放连接占用的系统资源
  • 能够处理无效连接,限制连接池中的连接总数不低于或者不超过某个限定值

概念:

  • 最小连接数:连接池一直保持的数据连接。如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费掉
  • 最大连接数:连接池能申请的最大连接数。如果数据连接请求超过此数,后面的数据连接请求将被加入到等待队列中,这回影响之后的数据库操作。

数据库池连接数量一直保持一个不少于最小连接数的数量,当数量不够时,数据库会创建一些连接,直到一个最大连接数,只有连接数据库就会等待。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值