JDBC的实现步骤:
使用如下命令加载并注册数据库驱动
DriverManager.registerDriver(Driver driver);
或者:
Class.forName(“DriverName”);
通过DriverManager获取数据库连接
- 获取数据库连接的具体方法如下:
Connection conn=DriverManager.getConnection(String url,String user,String pwd)
从上面的代码可以看出,getConnection()方法中有3个参数,它们分别表示连接数据库的地址,登录数据库的用户名和密码。
- 以MySQL数据库为例,其地址的书写格式如下:
jdbc:mysql://hostname:port/databasename
其中jdbc:mysql:是固定的写法,
mysql指的是MySQL数据库,
Hostname指的是主机的名称(如果数据库在本机上,hostname可以为localhost或者127.0.0.1;如果连接的数据库在其他计算机上,hostname为所要连接计算机的IP地址),
port指的是连接数据库的端口号(MySQL端口号默认为3306),
databasename指的是MySQL中相应的数据库名称。
通过Connection对象获取Statement对象。
Connection对象获取Statement对象的方式有以下3种。
- createStatement():创建基本的Statement对象。
- preparedStatement():创建PreparedStatement()对象。
- prepareCall():创建CallableStatement对象。
以创建基本的Statement对象为例子,创建方式如下:
Statement stmt=conn.createStatement();
使用Statement执行SQL语句,所有的Statement都有如下3种执行SQL语句的方法。
- Execute():可以执行任何SQL语句。
- executeQuery():通常执行查询语句,执行后返回代表结果集的ResultSet对象。
- executeUpdate():主要用于执行DML和DDL语句。执行DML语句(如INSERT,UPDATE,DELETE)时返回受SQL语句影响的行数;执行DDL语句时返回0。
以executeQuery()方法为例,使用方式如下:
//执行SQL语句,获取结果集ResultSet’
ResultSet rs=stmt.executeQuery(sql);
- 操作ResultSet结果集。如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象中保存了SQL语句查询的结果。程序可以通过该ResultSet对象来获取查询结果。
- 关闭连接,释放资源。每次操作数据库结束后都要关闭数据库的连接,释放资源,包括释放ResultSet,Statement和Connection等占用的资源。
注意事项:
- 注册驱动:
虽然使用DriverManager.register(new com.mysql.jdbc.Driver())方法也可以完成注册,但此方式会使数据库驱动被注册两次。这是因为Driver类的源代码已经在静态代码块中完成了数据库驱动的注册。所以,为了避免数据库驱动被重复注册,只需要在程序中使用Class.forName()方法加载驱动类即可。
- 释放资源:
由于数据库资源非常宝贵,数据库允许的并发访问的连接数量有限,因此,数据库资源使用完毕之后,一定要记得释放资源。为了保证资源的释放,在Java程序中,应该将释放资源的操作放在finally代码块中。