什么是JDBC
JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、更新、新增和删除的操作。
不同种类的数据库(如MySQL、Oracle等)在其内部处理数据的方式是不同的。JDBC要求各个数据库厂商按照统一的规范来提供数据库驱动,而在程序中是由JDBC和具体的数据库驱动联系,所以用户就不必直接与底层的数据库交互,这使得代码的通用性更强。
JDBC常用API
Driver接口
每种数据库的驱动程序都应该提供一个实现java.sql.Driver接口的类,简称Driver类。
在加载 Driver类时,应该创建自己的实例并向java.sql.DriverManager类注册该实例。
通过java.lang.Class 类的静态方法 forName(String className),加载要连接数据库的 Driver类,该方法的入口参数为要加载Driver类的完整包名。
DriverManager接口
DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟踪可用的驱动程序,并在数据库和驱动程序之间建立连接。在DriverManager类中,定义了两个比较重要的静态方法,如下表所示。
Connection 接口
Connection接口代表Java程序和数据库的连接,只有获得该连接对象后才能访问数据库,并操作数据表。在Connection接口中,定义了一系列方法,其常用方法如下表所示。
Statement 接口
Statement接口用于执行静态的SQL语句,并返回一个结果对象,该接口的对象通过Connection实例的createStatement()方法获得。利用该对象把静态的SQL语句发送到数据库编译执行,然后返回数据库的处理结果。在Statement接口中,提供了3个常用的执行SQL语句的方法,具体如下表所示。
PreparedStatement 接口
PreparedStatement是Statement的子接口,用于执行动态的SQL语句。该接口扩展了带有参数SQL语句的执行操作,应用该接口中的SQL语句可以使用占位符“?”来代替其参数,然后通过setXxx()方法为SQL语句的参数赋值。在PreparedStatement接口中,提供了一些常用方法,具体如下表所示。
ResultSet 接口
ResultSet接口用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中。在ResultSet接口内部有一个指向表格数据行的游标(或指针),ResultSet对象初始化时,游标在表格的第一行之前,调用next()方法可将游标移动到下一行。如果下一行没有数据,则返回false。在应用程序中经常使用next()方法作为while循环的条件来迭代ResultSet结果集。
程序既可以通过字段的名称来获取指定数据,也可以通过字段的索引来获取指定的数据,字段的索引是从1开始编号的