JDBC常用API
在开发JDBC程序前,先了解一下JDBC常用的API。JDBC API主要位于java.sql包中,该包定义了一系列访问数据库的接口和类,具体如下:
1、Driver接口
Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。在编写JDBC程序时,必须要把指定数据库驱动程序或类库加载到项目的classpath中。
2、DriverManager类
DriverManager类用于加载JDBC驱动并且创建与数据库的连接。在DriverManager类中,定义了两个比较重要的静态方法,如表1所示。
表1 DriverManager类的方法
方法名称 | 功能描述 |
---|---|
registerDriver(Driver driver) | 该方法用于向DriverManager中注册给定的JDBC驱动程序 |
getConnection(String url,String user,String pwd) | 该方法用于建立和数据库的连接,并返回表示连接的Connection对象 |
3、Connection接口
Connection接口代表Java程序和数据库的连接,在Connection接口中,定义了一系列方法,具体如表2所示。
表2 Connection接口的方法
方法名称 | 功能描述 |
---|---|
getMetaData() | 该方法用于返回表示数据库的元数据的DatabaseMetaData对象 |
createStatement() | 用于创建一个Statement对象来将SQL语句发送到数据库 |
prepareStatement(String sql) | 用于创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库 |
prepareCall(String sql) | 用于创建一个CallableStatement对象来调用数据库存储过程 |
4、Statement接口
Statement接口用于向数据库发送SQL语句,在Statement接口中,提供了3个执行SQL语句的方法,具体如表3所示。
表3 Statement接口的方法
方法名称 | 功能描述 |
---|---|
execute(String sql) | 用于执行各种SQL语句,该方法返回一个boolean类型的值,如果为true,表示所执行的SQL语句具备查询结果,可通过Statement的getResultSet()方法获得查询结果 |
executeUpdate(String sql) | 用于执行SQL中的insert、update和delete语句。该方法返回一个int类型的值,表示数据库中受该SQL语句影响的记录的数目 |
executeQuery(String sql) | 用于执行SQL中的select语句,该方法返回一个表示查询结果的ResultSet对象 |
5、PreparedStatement接口
PreparedStatement是Statement的子接口,用于执行预编译的SQL语句。在PreparedStatement接口中,提供了一些基本操作的方法,具体如表4所示。
表4 PreparedStatement 接口的方法
方法名称 | 功能描述 |
---|---|
executeUpdate() | 在此PreparedStatement对象中执行 SQL 语句,该语句必须是一个DML语句或者是无返回内容的SQL 语句,比如 DDL 语句 |
executeQuery() | 在此PreparedStatement对象中执行 SQL 查询,该方法返回的是ResultSet对象 |
setInt(int parameterIndex, int x) | 将指定参数设置为给定的int值 |
setFloat(int parameterIndex, float x) | 将指定参数设置为给定的float值 |
setString(int parameterIndex, String x) | 将指定参数设置为给定的String值 |
setDate(int parameterIndex, Date x) | 将指定参数设置为给定的Date值 |
addBatch() | 将一组参数添加到此PreparedStatement对象的批处理命令中 |
setCharacterStream(parameterIndex, reader, length) | 将指定的输入流写入数据库的文本字段 |
setBinaryStream(parameterIndex, x, length) | 将二进制的输入流数据写入到二进制字段中 |
需要注意的是,表4中的setDate()方法可以设置日期内容,但参数Date的类型是java.sql.Date,而不是java.util.Date。
6、 CallableStatement 接口
CallableStatement是PreparedStatement的子接口,用于执行SQL存储过程。在CallableStatement接口中,提供了一些基本操作的方法,具体如表5所示。
表5 CallableStatement接口的方法
方法名称 | 功能描述 |
---|---|
registerOutParameter(int parameterIndex, int sqlType) | 按顺序位置将 OUT 参数注册为SQL类型。其中,parameterIndex表示顺序位置,sqlType表示SQL类型 |
setNull(String parameterName, int sqlType) | 将指定参数设置为SQL类型的 NULL |
setString(String parameterName, String x) | 将指定参数设置为给定的Java类型的String 值 |
wasNull() | 查询最后一个读取的 OUT 参数是否为 SQL类型的 NULL 值 |
getInt(int parameterIndex) | 以 Java语言中 int 值的形式获取指定的数据库中 INTEGER类型参数的值 |
需要注意的是,由于CallableStatement接口继承了PreparedStatement,PreparedStatement接口又继承了Statement,因此CallableStatement接口中除了拥有自己特有的方法,也同时拥有了这两个父接口中的方法。
7、ResultSet接口
ResultSet接口表示select查询语句得到的结果集,该结果集封装在一个逻辑表格中。在ResultSet接口内部有一个指向表格数据行的游标,ResultSet对象初始化时,游标在表格的第一行之前。表6列举了ResultSet接口中的常用方法。
表6 ResultSet接口的方法
方法名称 | 功能描述 |
---|---|
getString(int columnIndex) | 用于获取指定字段的String类型的值,参数columnIndex代表字段的索引 |
getString(String columnName) | 用于获取指定字段的String类型的值,参数columnName代表字段的名称 |
getInt(int columnIndex) | 用于获取指定字段的int类型的值,参数columnIndex代表字段的索引 |
getInt(String columnName) | 用于获取指定字段的int类型的值,参数columnName代表字段的名称 |
getDate(int columnIndex) | 用于获取指定字段的Date类型的值,参数columnIndex代表字段的索引 |
getDate(String columnName) | 用于获取指定字段的Date类型的值,参数columnName代表字段的名称 |
next() | 将游标从当前位置向下移一行 |
absolute(int row) | 将游标移动到此 ResultSet 对象的指定行 |
afterLast() | 将游标移动到此 ResultSet 对象的末尾,即最后一行之后 |
beforeFirst() | 将游标移动到此 ResultSet 对象的开头,即第一行之前 |
previous() | 将游标移动到此 ResultSet 对象的上一行 |
last() | 将游标移动到此 ResultSet 对象的最后一行 |
从表6可以看出,ResultSet接口中定义了大量的getXxx()方法,采用哪种getXxx()方法取决于字段的数据类型。程序既可以通过字段的名称来获取指定数据,也可以通过字段的索引来获取指定的数据,字段的索引是从1开始编号的。
上面相继列出了JDBC常用API,在这里只需了解即可,这些方法的使用将在下面进行详细的讲解。