①加载数据库驱动。通常使用Class类的forName()静态方法来加载驱动。例如如下代码:
//加载驱动
Class.forName(driverClass);
上面代码中的driverClass就是数据库驱动类所对应的字符串。例如,加载MySQL的驱动采用如下代码:
//加载MySQL的驱动
Class.forName("com.mysql.jdbc.Driver");
而加载Oracle的驱动则采用如下代码:
//加载oracle的驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
②听过DriverManager获取数据库连接。DriverManager提供了如下方法:
//获取数据库连接
DriverManager.getConnection(String url,String user,String pass);
数据库URL通常遵循如下写法:
jdbc:subprotocol:other stuff
上面URL写法中的jdbc是固定的,而subprotocol指定连接到特定数据库的驱动,而后面的other和stuff也是不固定的——也没有较强的规律,不同数据库的URL写法可能存在较大差异。例如,MySQL数据库的URL写法如下:
jdbc:mysql://hostname:port/databasename
Oracle数据库的URL写法如下:
jdbc:oracle:thin:@hostname:port:databasename
如果想了解特定数据库的URL写法,请查阅该数据库的JDBC驱动的文档。
③通过Connection对象创建Statement对象。Connection创建Statement的方法有如下三个。
- createStatement():创建基本的Statement对象。
- prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象。
- prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象。
④使用Statement执行SQL语句。suoyoudeStatement都有如下三个方法来执行SQL语句。
- execute():可以执行任何SQL语句,但比较麻烦。
- executeUpdate():主要用于执行DML(insert、update、delete)和DDL(create 、drop、alter、truncate)语句。执行DML语句返回受SQL语句影响的行数。执行DDL语句返回0。
- executeQuery():只能执行查询语句,执行后返回代表查询结果的ResultSet对象。
⑤操作结果集。如果执行的SQL语句是查询语句,则执行结果返回一个ResultSet对象,该对象里保存了SQL语句查询结果。程序可以通过操作该ResultSet对象来取出查询结果。ResultSet对象主要提供了如下两类方法。
- next()、previous()、first()、last()、beforeFirst()、afterLast()、absolute()等移动记录指针的方法
- getXxx()方法获取记录指针指向行、特定列的值。该方法既可使用索引作为参数,也可使用列名作为参数。使用列索引作为参数性能更好,使用列名作为参数可读性更好。
⑥回收数据库资源,包括关闭ResultSet、Statement和Connection等资源。