通常,要使用JDBC处理任何SQL语句,需要按照以下几步操作。

  • 建立连接(Establishing a connection)
  • 创建一个Statement(Create a statement)
  • 执行查询(Execute the query)
  • 处理ResultSet对象(Process the ResultSet object)
  • 关闭连接(Close the connection)

建立连接

  首先,与要使用的数据源建立连接,数据源可以是DBMS,遗留文件系统或具有相应JDBC驱动程序的一些其他数据源。

创建语句

 A statement是表示SQL语句的接口,执行Statement对象,生成ResultSet对象(表示数据库结果集的数据表)。需要一个Connection对象来创建一个Statement对象。、、

Statement stmt=con.createStatement();

有三种不同的陈述:

  • Statement:用于实现没有参数的简单SQL语句。
  • PreparedStatement:(Extends Statement) 用于预编译可能包含输入参数的SQL语句。
  • CallableStatement:(Extends PreparedStatement) 用于执行可能包含输入和输出参数的存储过程。

执行查询

执行查询,调用一个Statement的execute方法。

ResultSet rs=stmt.executeQuery(query);

三种execute方法:

  • execute:如果查询得到的第一个对象是ResultSet,返回true。如果查询可以返回一个或多个ResultSet对象,请使用此方法。通过重复调用Statement.getResult方法获取从查询返回的ResultSet对象。
  • executeQuery:返回一个ResultSet对象。
  • executeUpdate:返回一个整数,表示受SQL语句影响的行数。如果使用insert、delete、update等SQL语句,请使用此方法。

处理ResultSet对象

可以通过游标来访问ResultSet对象里的数据。这里的游标不是数据库中的游标,该游标是指向ResultSet对象中一行数据的指针。最初,游标位于第一行之前。可以调用ResultSet对象中定义的各种方法来移动游标。

//通过rs.next()方法来移动游标
try {
    stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next()) {
        String coffeeName = rs.getString("COF_NAME");
        int supplierID = rs.getInt("SUP_ID");
        float price = rs.getFloat("PRICE");
        int sales = rs.getInt("SALES");
        int total = rs.getInt("TOTAL");
        System.out.println(coffeeName + "\t" + supplierID +
                           "\t" + price + "\t" + sales +
                           "\t" + total);
    }
}
// ...

关闭连接

当完成使用Statement,调用Statement.close方法立即释放它正在使用的资源。当调用此方法时,其ResultSet对象将关闭。

//无论是否发生异常,最后都会关闭Statement对象
} finally {
    if (stmt != null) { stmt.close(); }
}

 

 posted on 2018-12-26 21:38  会飞的金鱼  阅读(677)  评论(0)    收藏  举报