1、什么是JBDC?
JBDC(Java Database Connectivity),JDBC只是一套规范接口,真正实现的是各数据库厂商驱动。
2、JBDC的底层的主要接口对象是什么?
JBDC的底层主要是三个接口对象,Connection、Statement、ResultSet。Connection用于建立与数据库的连接,Statement用于向数据库发送sql语句,ResultSet用于封装sql查询语句的结果。
3、JDBC操作数据库的步骤有哪些?
1、注册驱动
使用 Class.forName() 方法加载数据库驱动程序类。
通过 DriverManager.registerDriver() 方法注册数据库驱动程序。
2、获取连接对象JDBC的底层其实是使用Socket进行连接数据库的。注册完驱动程序后,可以通过 DriverManager.getConnection() 方法建立数据库连接。
3、执行SQL语句,返回执行结果通过获取Statement实例执行SQL语句。
4、处理执行结果最后返回的结果集是ResultSet。
5、释放资源
// Worker method called by the public getConnection() methods.
private static Connection getConnection(
//该方法是一个私有静态方法,用于获取数据库连接。方法接受三个参数:url 表示数据库连接 URL,info 表示连接所需的属性信息,caller 表示调用者的类。
String url, java.util.Properties info, Class<?> caller) throws SQLException {
//获取调用者的类加载器:根据传入的 caller 类,获取对应的类加载器 callerCL。如果 caller 不为 null,则通过 caller.getClassLoader() 获取其类加载器;如果 caller 为 null,则将 callerCL 设为 null。
ClassLoader callerCL = caller != null ? caller.getClassLoader() : null;
SQLException reason = null;
//遍历注册的数据库驱动
for(DriverInfo aDriver : registeredDrivers) {
try {
//获取连接
Connection con = aDriver.driver.connect(url, info);
//判断连接是否成功:如果连接对象 con 不为 null,表示连接成功,打印日志信息,并返回该连接对象。
if (con != null) {
// Success!
println("getConnection returning " + aDriver.driver.getClass().getName());
return (con);
}
//当遍历完所有注册的驱动程序后,如果没有成功获取到连接,即所有驱动程序的 connect 方法都返回 null,则会抛出 SQLException 异常。
} catch (SQLException ex) {
if (reason == null) {
reason = ex;
}
}
}
}
1、DriverManager(类):根据不同的数据库管理相应的JDBC驱动
2、Connection(接口):负责连接数据库
3、Statement(接口): 向数据库发送sql语句
4、ResultSet(接口):sql查询语句的执行结果会封装在ResultSet中5、PreparedStatement:Statement 的子接口,负责发送SQL语句,但是优于Statement
4、Statement最为重要的方法是
(1)int executeUpdate(String sql):执行更新操作,即执行insert、update、delete语句,其实这个方法也可以执行create table、alter table,以及drop table等语句,但我们很少会使用JDBC来执行这些语句;
(2)ResultSet executeQuery(String sql):执行查询操作,执行查询操作会返回ResultSet,即结果集。