在获取到Connection对象后,我们就可利用Connection对象进行对数据库的操作了。 要进行查询操作,需要两个对象Statement和ResultSet。在执行 SELECT 语句时,我们可以使用 executeQuery方法,在执行后可以返回代表查询结果的ResultSet对象,即结果集。
Class.forName("org.postgresql.Driver");
上述举例通过executeQuery方法获取了select * from department的结果集,然后通过print语句逐行输 入展示。
insert,delete和update的执行操作和select操作类似,但是不同的地方在于这些操作并不会返回 ResultSet,而是需要返回受影响的行数。在这里我们使用executeUpdate 而不是executeQuery, executeUpdate的返回值是一个整数,即受影响的行数。
public static void main(String[] args) {
Connection conn= getConn(); String sql = "select * from department"; try {
Statement stmt=conn.createStatement(); //准备Statement ResultSet rs=stmt.executeQuery(sql); //执行查询 ResultSetMetaData rsmd = rs.getMetaData(); int numCol = rsmd.getColumnCount(); for (int i = 0; i < numCol; i++) { System.out.print(rsmd.getColumnName(i + 1) + ' '); } System.out.println(); while(rs.next()) { for (int i = 0; i < numCol; i++) { System.out.print(rs.getString(i + 1) + ' '); } System.out.println(); } } catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) { Connection conn= getConn(); String sql = "delete * from department where d_id=101"; try { Statement stmt=conn.createStatement(); //准备Statement int rs=stmt.executeUpdate(); //执行sql操作,获取受影响行数 } catch (SQLException e) { e.printStackTrace(); } finally { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } if (rs > 0) { return true;
//如果受影响行数超过1行,则认为操作成功 }
以上代码通过函数返回值判断insert,delete,update操作是否成功。 在执行完SQL操作后,我们可以通过close方法来断开连接。
编译与运行
通过javac编译.java文件。
通过java程序运行OushuDBJDBC。
conn.close();