JDBC常用接口和类简介
1 DriverManager
用于管理jdbc驱动的服务类。程序中使用该类的主要功能是获取Connection对象,该类包含如下方法:
- static Connection getConnection(String url, String user, String password):该方法获得url对应数据库的连接。
2 Connection
代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先获得数据库连接。该接口的常用方法如下:
- Statement createStatement() throws SQLException:该方法返回一个Statement对象。
- PreparedStatement prepareStatement(String sql) throws SQLException:该方法返回预编译的Statement对象,即将SQL语句提交到数据库进行预编译。
- CallableStatement prepareCall(String sql):该方法返回CallableStatement对象,该对象用于调用存储过程。
上面3个方法都返回执行Sql语句的Statement对象,PreparedStatement,CallableStatement是Statement子类,只有获得了Statement之后才可以执行Sql语句。
除此之外,Connection还有如下几个用于控制事务的方法。 - Savepoint setSavepoint():创建一个保存点。
- Savepoint setSavepoint(String name):以指定名字来创建一个保存点。
- void setTransactionIsolation(int level):设置事务的隔离级别。
- void rollback():回滚事务。
- void rollback(Savepoint savepoint):将事务回滚到指定的保存点
- void setAutoCommit(boolean autoCommit):关闭自动提交,打开事务。
- void commit():提交事务。
Java7为Connection新增了setSchema(String
schema), getSchema()两个方法,这两个方法用于控制该Connection访问的数据库Schema。
java7还为Connection新增了setNetworkTimeout(Executor executor,int milliseconds),
getNetworkTimeout()两个方法来控制数据库连接的超时行为。
3 Statement
用于执行sql语句的工具接口。该对象即可用于执行DDL,DCL语句,也可用于执行DML语句,还可用于执行SQL查询。当执行sql查询时,返回查询到的结果集。它的常用方法如下:
- ResultSet executeQuery(String sql) throws SQLException: 该方法用于执行查询语句,并返回查询结果对应的ResultSet对象。该方法只能用于执行查询语句。
- Int executeUpdate(String sql) throws SQLException:该方法用于执行DML语句,并返回受影响的行数;该方法也可用于执行DDL语句,执行DDL语句将返回0.
- Boolean execute(String sql) throws SQLException: 该方法可执行任何SQL语句。如果执行后第一个结果为ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或没有任何结果,则返回false
4 PreparedStatement
预编译的Statement对象。preparedStatement是Statement的子接口,它允许数据库预编译SQL语句(这些sql语句通常带有参数),以后每次只改变sql命令的参数,避免数据库每次都需要编译sql语句,因此性能更好。相对于Statement而言,使用PreparedSatement执行sql语句时,无须再传入sql语句,只要为预编译的sql语句传入参数值即可。所以它比Statement多了如下方法
- Void setXxx(int parameterIndex , Xxx value):该方法根据传入参数值的类型不同,需要使用不同的方法。传入的值根据索引传给sql语句中指定位置的参数。
PreparedStatement同样有executeUpdate(), executeQuery() , execute() 三个方法,只是这三个方法无须接收sql字符串,因为PreparedStatement对象已经预编译了sql命令,只要为这些命令传入参数即可。
5 ResultSet
结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得列数据。它包含如下常用方法来移动记录指针:
- Void close() throws SQLException:释放ResultSet对象。
- Boolean absolute(int row):将结果集的指针移动到第row行,如果row是负数,则移动指针到倒数第row行。如果移动后的指针指向一条有效记录,则该方法返回true
- Void beforeFirst():将ResultSet的记录指针定位到首行之前,这是 ResultSet结果集记录指针的初始状态-------记录指针的起始位置位于第一行之前。
- Boolean first() ----将ResultSet的记录指针定位到首行。如果移动后的记录指针指向一条有效记录,则该方法返回true
- Boolean previous()-----将ResultSet的记录指针定位到上一行。如果移动后的记录指针指向一条有效记录,则该方法返回true。
- Boolean next() ------将ResultSet记录指针定位到下一行,如果移动后的记录指针指向一条有效记录,则该方法返回true
- Boolean last() ---- 将ResultSet的记录指针定位到最后一行,如果移动后的记录指针指向一条有效记录,则该方法返回true。
- Void afterLast() ----- 将ResultSet的记录指针定位到最后一行之后。
当把记录指针移动到指定行之后,ResultSet可通过getXxx(int columnIndex)或getxxx(String columnLabel)方法来获取当前行、指定列的值,前者根据列索引获取值,后者根据列名获取值。