JavaWeb面试题之JDBC

作者: 空城空忆亦空心 | 来源:发表于2018-08-27 20:33 被阅读18次

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

    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

        本文链接:https://www.haomeiwen.com/subject/htwtwftx.html