java.sql包提供使用Java编程语言访问并处理存储在数据源中数据的API,可以动态地安装不同驱动程序来访问不同数据源。
下面,详解java.sql包中包含的常用的接口和类
1、DriverManager类
负责管理JDBC驱动程序,使用JDBC驱动程序之前,必须先将驱动程序加载并向DriverManager注册后才可以使用,同时提供方法来建立与数据库的连接。
常用方法
Class.forName(String driver,2);
说明:加载注册驱动程序
Static Connection getConnection(String url,String user,String password) throws SQLException;
说明:取得对数据库的连接
Static Driver getDriver(String url) throws SQLException
说明:在已经向DriverManager注册的驱动程序中寻找一个能够打开URL所指定的数据库的驱动程序
2、Connection接口
负责维护JSP、Java数据库程序和数据库之间的联机。通过它,可以建立3个非常有用的类对象。
常用方法
Statement createStatement() throws SQLExcetpion;
说明:建立Statement类对象
Statement createStatement(int resultSetType,int resultSetConcurrency) throws SQLException;
说明:建立Statement类对象,其中参数的意义如下:
resultSetType
TYPE_FORWARD_ONLY结果集不可滚动
TYPE_SCROLL_INSENSITIVE结果集可滚动,不反映数据库的变化
TYPE_SCROLL_SENSITIVE结果集可滚动,反映数据库的变化
resultSetConcurrency
CONCUR_READ_ONLY不可以用结果集更新数据
CONCUR_UPDATABLE可以用结果集更新数据
只有JDBC2.0以上版本才支持滚动的结果集。而且可以对数据进行更新。
DatabaseData getData() throws SQLException;
说明:建立DatabaseData类对象
PreparedStatement prepareStatement(String sql) throws SQLException;
说明:建立PreparedStatement类对象
Boolean getAutoCommit() throws SQLException
说明:返回Connection类对象的AutoCommit状态
Void commit() throws SQLException
说明:确定执行对数据库新增、删除或修改记录的操作
Void rollback() throws SQLException
说明:取消执行对数据库新增、删除或修改记录的操作
Void close() throws SQLExcetpion
说明:结束Connection对象数据库的联机
Boolean isClosed() throws SQLException
说明:测试是否已经关闭connection类对象对数据库的联机
3、Statement类
通过Statement类所提供的方法,可以利用标准的SQL命令,对数据库直接进行增、删或改操作。
常用方法:
ResultSet executeQuery(String sql) throws SQLException
说明:使用select命令对数据库进行查询
Int executeUpdate(String sql) throws SQLException
说明:使用insert、delete、update对数据库进行增、删、改操作
Void close() throws SQLException
说明:结束Statement类对象对数据库的联机
4、PreparedStatement接口
PreparedStatement类和Statement类的不同之处在于PreparedStatement类对象会将传入的SQL命令事先编好以等待使用,当有单一的SQL指令需要多次执行时,用PreparedStatement类比Statement类效率高。
常用方法
ResultSet executeQuery() throws SQLException
说明:使用select命名对数据库进行查询
Int executeUpdate() throws SQLException
说明:使用insert、delete、update对数据库进行增、删、改操作。
ResultSetData getData() throws SQLException
说明:取得ResultSet类中的对象和有关字段的相关信息
Void setInt(int parameterIndex,int x) throws SQLException
说明:设置整数类型数值给PreparedStatement类对象的IN参数
Void setFloat(int parameterIndex,float x) throws SQLException
说明:设置浮点数类型数值给PreparedStatement类对象的IN参数
Void setNull(int parameterIndex,int sqlType) throws SQLException
说明:设置NULL类型数值给PreparedStatement类对象的IN参数
Void setString(int parameterIndex,String x) throws SQLException
说明:设置字符串类型数值给PreparedStatement类对象的IN参数
Void setDate(int parameterIndex,Date x) throws SQLException
说明:设置日期类型数值给PreparedStatement类对象的IN参数
Void setTime(int parameterIndex,Time x) throws SQLException
说明:设置时间类型数值给PreparedStatement类对象的IN参数
5、CallableStatement接口
CallableStatement接口对所有的DBMS提供了一种以标准形式调用存储过程的方法。存储过程存储在数据库中。对存储过程的调用是CallableStatement对象所包含的内容。这种调用是用一种换码语法来写的,有2种形式:一种是带结果参数,另一种不带结果参数。结果参数是一种输出(OUT)参数,是存储过程的返回值。2种形式都可带有数量可变的输入(IN参数)、输出(OUT参数)或输入和输出(INOUT参数)的参数。文号将用作参数的占位符。
常用方法:
Public void registerOutParameter(int parameterIndex,int sqlType) thorws SQLException
说明:设置时间类型数值给PreparedStatement类对象的OUT参数
ResultSet executeQuery() throws SQLException
说明:使用SELECT命令对数据库进行查询
Int executeUpdate() throws SQLException
说明:使用insert、delete、update对数据库进行增、删、改操作。
6、DatabaseMetaData接口
DatabaseMetaData类保存了数据库的所有特性,并且提供许多方法来获得这些信息。
常用方法:
String getDatabaseProductName() throws SQLException
说明:获取数据库名称
String getDatabaseProductVersion() throws SQLException
说明:获得数据库版本代号
String getDriverName() throws SQLException
说明:获得JDBC驱动程序名称
String getDriverVersion() throws SQLException
说明:获得JDBC驱动程序的版本代号
String getURL() throws SQLException
说明:获得连接数据库的JDBC URL
String getUserName() throws SQLException
说明:获得登录数据库的使用者账号
7、ResultSet接口
该接口负责存储数据库查询的结果,并提供一些列的方法对数据库进行增、删、改操作。此外还负责维护记录指针(Cursor),记录指针即指向数据表中的某个记录,通过适当的移动记录指针,可以随心所欲地存取数据库,提高程序的效率。
常用方法:
Boolean absolute(int row) throws SQLException
说明:移动记录指针到指定的记录
Void beforeFirst() throws SQLException
说明:移动记录指针到第一条记录之前
Void afterLast() throws SQLException
说明:移动记录指针到最后一条记录之后
Boolean first() throws SQLException
说明:移动记录指针到第一条记录
Boolean last() throws SQLException
说明:移动记录指针到最后一条记录
Boolean next() throws SQLException
说明:移动记录指针到下一条记录
Boolean previous() throws SQLException
说明:移动记录指针到上一条记录
Void deleteRow() throws SQLException
说明:删除记录指针指向的记录
Void moveToInsertRow() throws SQLException
说明:移动记录指针新增一条记录
Void moveToCurrentRow() throws SQLException
说明:移动记录指针到被记忆的记录
Void insertRow() throws SQLException
说明:新增一条记录到数据库中
Void updateRow() throws SQLException
说明:修改数据库中的一条记录
Void update类型(int columnIndex,类型 x) throws SQLException
说明:修改指定字段的值
Int get类型(int columnIndex) throws SQLException
说明:获得指定字段的值
ResultSetData getData() throws SQLException
说明:获得ResultSetData类对象
8、ResultSetData类
ResultSetData类对象保存了所有ResultSet类对象中关于字段的信息,提供许多方法来获得这些信息。
常用方法:
Int getColumnCount() throws SQLException
说明:获得ResultSet类对象的字段个数
Int getColumnDisplaySize() throws SQLException
说明:获得ResultSet类对象的字段长度
String getColumnName(int column) throws SQLException
说明:获得ResultSet类对象的字段名称
String getColumnTypeName(int column) throws SQLException
说明:获取得ResultSet类对象的字段类型名称
String getTableName(int column) throws SQLException
说明:获得ResultSet类对象的字段所属数据表的名称
Boolean isCaseSensitive(int column) throws SQLException
说明:测试Resultset类对象的字段是否区分大小写
Boolean isReadOnly(int column) throws SQLException
说明:测试ResultSet类对象的字段是否为只读
9、Exceptions类
Exceptions是指面向对象的程序在执行出现错误时由内部所抛出的一个能反映错误所在的信息在java.sql中定义了如下集中Exceptions:
SQLException 当访问数据出现问题时由绝大多数方法抛出的例外有可能因为其他愿意抛出该例外
SQLWarning 抛出时提示一个警告错误
DataTruncation 外抛出时提示可能有数据截断
BatchUpdateException 抛出提示一个批处理中的命令没有全部执行成功