通常情况下,JDBC的使用可以按照以下几个步骤进行:
(1) 加载数据库驱动
加载数据库驱动通常使用Class类的静态方法forName()来实现,具体实现方式如下:
Class.forName("DriverName");
在上述代码中,DriverName就是数据库驱动类所对应的字符串。例如,要加载MySQL数据库的驱动可以采用如下代码:
Class.forName("com.mysql.jdbc.Driver");
加载Oracle数据库的驱动可以采用如下代码:
Class.forName("oracle.jdbc.driver.OracleDriver");
从上面两种加载数据库驱动的代码可以看出,在加载驱动时所加载的并不是真正使用数据库的驱动类,而是数据库驱动类名的字符串。
(2) 通过DriverManager获取数据库连接
DriverManager中提供了一个getConnection()方法来获取数据库连接,获取方式如下:
Connection conn = DriverManager.getConnection(String url, String user, String pwd);
从上述代码可以看出,getConnection()方法中有3个参数,它们分别表示连接数据库的URL、登录数据库的用户名和密码。其中用户名和密码通常由数据库管理员设置,而连接数据库的URL则遵循一定的写法。以MySQL数据库为例,其地址的书写格式如下:
jdbc:mysql://hostname:port/databasename
上面代码中,jdbc:mysql:是固定的写法,mysql指的是MySQL数据库。hostname指的是主机的名称(如果数据库在本机上,hostname可以为localhost或127.0.0.1,如果在其他机器上,那么hostname为所要连接机器的IP地址),port指的是连接数据库的端口号(MySQL端口号默认为3306),databasename指的是MySQL中相应数据库的名称。
(3) 通过Connection对象获取Statement对象
Connection创建Statement的方式有如下三种:
● createStatement():创建基本的Statement对象。
● prepareStatement(String sql):根据传递的SQL语句创建PreparedStatement对象。
● prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象。
以创建基本的Statement对象为例,其创建方式如下:
Statement stmt = conn.createStatement();
(4) 使用Statement执行SQL语句
所有的Statement都有如下三种执行SQL语句的方法:
● execute(String sql):用于执行任意的SQL语句。
● executeQuery(String sql):用于执行查询语句,返回一个ResultSet结果集对象。
● executeUpdate(String sql):主要用于执行DML(数据操作语言)和DDL(数据定义语言)语句。执行DML语句(INSERT、UPDATE或DELETE)时,会返回受SQL语句影响的行数,执行DDL(CREATE、ALTER)语句返回0。
以executeQuery()方法为例,其使用方式如下:
// 执行SQL语句,获取结果集ResultSet ResultSet rs = stmt.executeQuery(sql);
(5) 操作ResultSet结果集
如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。程序可以通过操作该ResultSet对象来取出查询结果。
(6) 关闭连接,释放资源
每次操作数据库结束后都要关闭数据库连接,释放资源,以重复利用资源。需要注意的是,通常资源的关闭顺序与打开顺序相反,顺序是ResultSet、Statement(或PreparedStatement)和Connection。为了保证在异常情况下也能关闭资源,需要在try…catch的finally代码块中统一关闭资源。
至此,JDBC程序的大致实现步骤已经讲解完成。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/253862.html