通常,要使用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
浙公网安备 33010602011771号