JavaWeb面试题之JDBC

<说明:题目内容收集于网络,答案是参考别人解答以及自己的理解,纯手敲。如果有疑问或者错误,可以直接指出哟,有时间持续更新,也非常欢迎投稿>

1.什么是JDBC

  JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。

2.原生jdbc操作数据库流程

  • 1.加载数据库连接驱动
      Class.forName(...);
  • 2.获取数据连接对象
      Connection conn = DriverManger.getConnection(...);
  • 3.3.获取传输器(语句对象)
      会话对象有两种Statement和PreparedStatement
        Statement st = conn.createStatement();
        PreparedStatement ps = conn.prepareStatement(...)
  • 4.执行语句
      如果是Statement对象
        ResultSet rs = st.executeQuery(...); 或者 int i = st.executeUpdate();
      如果是PreparedStatement对象,需要先设置参数
        int i = ps.executeUpdate(); 或者 ResultSet resultSet = ps.executeQuery();
  • 5.处理结果集
      根据执行语句后返回的结果来处理结果集,一般DML操作不需要处理结果集,DQL才需要,通过ResultSet对象的API操作
      while (rs.next()){ ... }
  • 6.关闭资源
      rs.close()、st.close()、conn.close() 注意关闭顺序以及处理异常

3.JDBC中的Statement 和PreparedStatement的区别?

  • PreparedStatement在执行之前会进行预编译,效率高于Statement
  • PreparedStatement支持?占位符,使得程序可读性大大提高
  • PreparedStatement能够有效防止SQL注入

4.数据库连接池工作原理

  在服务器启动的时候会先创建一定数量的连接对象存放在连接池中,当一个线程需要使用连接对象的时候,从连接池中请求一个空闲的连接,使用完毕之后,并不会把连接关闭,而是还给连接池,在系统关闭的时候,会断开所有连接并且释放连接占用的资源

5.使用连接池的优势

  • 系统响应速度加快
     没有使用连接池之前,在请求数量多的情况下,大量的创建和销毁连接对象,耗费大量的时间,使用连接池之后,不用频繁的创建连接池对象,节约可了大量的时间
  • 资源利用率高
     使用连接池之后,在线程使用完连接对象之后并不会关闭连接对象,而是把连接对象还给连接池供下一次使用,大大提高资源利用率

你可能感兴趣的:(JavaWeb面试题之JDBC)