更新时间:2023-01-29 来源:黑马程序员 浏览量:
JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的JavaAPI。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。应用程序使用JDBC访问数据库的方式如图1-1所示。
从图1-1中可以看出,应用程序使用JDBC访问特定的数据库时,需要与不同的数据库驱动进行连接。由于不同数据库厂商提供的数据库驱动不同,因此,为了使应用程序与数据库真正建立连接,JDBC不仅需要提供访问数据库的API,还需要封装与各种数据库服务器通信的细节。
图1-1 应用程序使用JDBC访问数据库方式
通过前面的学习,我们对JDBC及其常用API有了大致的了解,接下来就开始学习JDBC编程,JDBC编程大致按照以下几个步骤进行。
(1)加载并注册数据库驱动,具体方式如下。
DriverManager.registerDriver(Driver driver);
(2)通过DriverManager获取数据库连接,具体方式如下。
Connection conn= DriverManager.getConnection(String url,String,String pass);
从上述方式可以看出,getConnection()方法中有三个参数,它们分别表示数据库url、登录数据库的用户名和密码。数据库url通常遵循如下形式的写法。
jdbc:subprotocol:subname
上面的url写法中jdbc部分是固定的,subprotocol指定连接到特定数据库的驱动程序,而subname部分则很不固定,也没有什么规律,不同数据库的url形式可能存在较大差异,以MySQL数据库url为例,其形式如下。
jdbc:mysql://hostname:port/databasename
(3)通过Connection对象获取Statement对象。Connection创建Statement方式有如下三种。
①createStatement():创建基本的Statement对象。
②prepareStatement():创建PreparedStatement()对象。
③prepareCall():创建CallableStatement()对象。
以创建基本的Statement()对象为例,具体方式如下。
Statement stmt= conn.createStatement();
(4)使用Statement执行SQL语句。所有的Statement都有如下三种方法来执行SQL语句。
①execute():可以执行任何SQL语句。
②executeQuery():通常执行查询语句,执行后返回代表结果集的ResultSet对象。
③executeUpdate():主要用于执行DML和DDL语句。执行DML语句,如INSERT、UPDATE或DELETE时,返回受SQL语句影响的行数,执行DDL语句返回0。
以executeQuery()方法为例,具体方式如下。
//执行SQL语句,获取结果集ResultSet ResultSet rs=stmt.executeQuery(sql);
(5)操作ResultSet结果集。如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。程序可以通过操作该ResultSet对象来取出查询结果。ResultSet对象提供的方法主要可以分为以下两类。
①next()、previous()、first()、last()、beforeFirst()、afterlast()、absolute()等移动记录指针的方法。
②getXxx()获取指针指向行,特定列的值。
(6)回收数据库资源。关注数据库连接,释放资源,包括关闭ResultSet、Statement和Connection等资源。
至此,JDBC编程的大致步骤已经完成。