Connection、PreparedStatement、Statement、ResultSet是JDBC编程常用的接口,请分别简述它们的作用?

时间:2021-05-15 11:58:45

JDBC定义:

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。


简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。

此实例为SQLServer2005的驱动链接
Connection conn=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
StringstrConn="JDBC:sqlserver://localhost:1433;DatabaseName=TestData";
String strUser="sa";
String strPassword="";
conn=DriverManager.getConnection(strConn,strUser,strPassword);
Statement stmt=conn.createStatement();


DirverManager类:是JDBC的管理层,作用于用户和驱动之间。该类负责注册和加载JDBC驱动。


Connection接口:代表与数据库的链接,并拥有创建SQL语句的方法,以完成基本的SQL操作,同时为数据库事务提供提交和回滚方法。如:上面的例子就是链接到了TestData数据库。


Statement接口:用于执行不带参数的简单SQL语句。创建Statement实例对象后可以调用JDBC提供的3种执行SQL语句的方法:

(1)executeUpdate()方法,一般用于执行SQL的INSERT,DELETE,UPDATE语句

(2)executeQuery()方法,一般用于执行SQL的SELECT语句,因为它的返回值是执行SQL语句后产生的一个ResultSet接口的实例(结果集)

(3)execute()方法,即一般它执行的SQL语句既有查询又有更新值,约等于executeUpdate()和executeQuery()两个方法的合辑。


PreparedStatement接口:它与Statement 的主要区别
(1)它包含的SQL语句是预编译的,所以当多次执行一条SQL语句时用它会更快
(2)在设置参数是可以用“?”代替。如:
PreparedStatement pstmt=conn.preparedStatement(insert into testvalues(?,?));
pstmt.setString(1,'gg');
pstmt.setString(2,'123');

ResultSet接口:包含了Statement和PreparedStatement的executeQuery方法中SELECT的结果集。相当于用它来读取数据库里每列的值。


DatabaseMetaData接口:主要是用来得到数据库的相关信息的。如:数据库版本啊。。。

ResultSetMetaData接口:主要是用来获取数据库中表的相关信息的。如:表的行数啊。。。