• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

JDBC知识点总结面试

互联网 diligentman 2周前 (02-18) 10次浏览

一、JDBC概述

什么是JDBC

JDBC(Java DataBase Connectivity)Java数据库连接
其实就是利用Java语言/Java程序连接并访问数据库的一门技术
虽然之前我们可以通过 cmd或者navicat 连接数据库,也可以对数据库、表、表记录等进行操作。但是,将来在开发中更多的是通过程序来连接数据库,如果是Java语言,通过Java程序连接数据库,就必须要学习JDBC这么技术。 面试题在下面!
JDBC知识点总结面试

JDBC定义了一些接口

驱动管理: DriverManager
连接接口: Connection DatabasemetaData
语句对象接口: Statement PreparedStatement CallableStatement
结果集接口: ResultSet ResultMetaData

JDBC工作原理

JDBC只定义接口,具体实现由各个数据厂商负责。程序使用时只需要调用接口,实际调用的是底层数据库厂商的实现部分。
JDBC知识点总结面试

JDBC访问数据库的工作过程:

1.加载驱动,建立连接
2.创建语句对象
3.执行SQL语句
4.处理结果集
5.关闭连接

Driver接口及驱动类加载

要使用JDBC接口,需要先将对应数据库的实现部分(驱动)加载进来
mysql:

Class.forName(“com.mysql.jdbc.Driver”);

这条语句的含义是:装载驱动类,驱动类通过static块实现在DriverManager中的自动注册

Connection接口

Connection接口负责应用程序对数据库的连接,在加载驱动之后,使用url、username、password三个参数,创建到具体数据库的连接。
Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("url","username","password");

Statement接口

Statement接口用来处理发送到数据库的SQL语句对象,通过Connection对象创建。主要有三个常用方法:
Statement stmt = conn.createStatement();//execute方法,如果执行的sql是查询语句且有结果集则返回true,如果是非查询语句或者没有结果集,返回false
boolean flag = stmt.execute(sql);//执行查询语句,返回结果集ResultSet rs = stmt.executeQuery(sql);//执行DML语句,返回影响的记录数
int flag = stmt.executeUpdate(sql);

ResultSet接口

执行查询SQL语句后返回的结果集,由ResultSet接口接收。
常用处理方式:遍历/判断是否由结果
String sql = "select * from table"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ System.out.println(rs.getInt("age")+rs.getString("name"));}
查询的结果存放在ResultSet对象的一系列行中,指针的最初位置在行首,使用next()方法用来在行间移动,getXXX()方法用来取得字段的内容.

连接池技术

为什么要使用连接池

连接池中连接的释放与使用原则

  • 应用启动时,创建初始化数目的连接
  • 当申请时无连接可用或者达到指定的最小连接数,按增量参数值创建新的连接。
  • 为确保连接池中最小的连接数的策略:
    1、动态检查:定时检查连接池,一旦发现数量小于最小连接数,则补充相应的新连接,保证连接池正常运转
    2、静态检查:空闲连接不足时,系统才检查是否达到最小连接数
    JDBC知识点总结面试

JDBC核心API

Statement
通过Connection对象创建Statement的方式
Connection.createStatement();
执行INSERT,UPDATE和DELETE等DML操作
Statement.executeUpdate();
执行SELECT
Statement.executeQuery();
通过Statement对象返回SQL语句执行后的结果集:
String sql = "select id,age from table";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);

JDBC常见的面试题

数据连接池的工作机制是什么? 有什么优点?

1.J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
2.客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。
3.如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。
4.当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
5.当链接数量达到连接池最大值时候,池驱动程序将不再创建新连接,只能等等连接空闲以后重用已有的连接。
6.优点:连接少的时候可以复用

写出JDBC连接数据库的6个步骤?

1.注册驱动
2.获取连接
3.创建一个Statement语句对象
4.执行SQL语句
5.处理结果集
6.关闭资源

JDBC中的Statement 和PreparedStatement的区别?

1.PreparedStatement 继承于 Statement
2.Statement 一般用于执行固定的没有参数的SQL
3.PreparedStatement 一般用于执行有?参数预编译的SQL语句。
4.PreparedStatement支持?操作参数,相对于Statement更加灵活。
5.PreparedStatement可以防止SQL注入,安全性高于Statement。

JDBC中大数据量的分页解决方法?

利用sql语句进行分页,这样每次查询出的结果集中就只包含某页的数据内容

说说数据库连接池工作原理和实现方案?

1.工作原理:JAVA EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
2.实现方案:返回的Connection是原始Connection的代理,代理Connection的close方法,当调用close方法时,不是真正关连接,而是把它代理的Connection对象放回到连接池中,等待下一次重复利用。


程序员灯塔
转载请注明原文链接:JDBC知识点总结面试
喜欢 (0)