首先先了解Result对象,是SQL语句执行的结果集。
主要了解俩种方法:
- boolean next() 将光标从当前位置向下移一行。每调用一次next()方法,光标向下移动一行。第一次调用next()将把光标置于第一行。
- getString(“列名”)or getString(列序号)获取Result对象当前行中对应列的值。
1、Statement对象
statement对象提供了三种执行SQL语句的方法:executeQuery()、executeUpdate()、和execute()。
- executeQuery()用于产生单个结果集的语句,如select语句。
- executeUpdate()用于执行insert、upadate、delete语句以及SQL DDL语句,如 create table和drop table。该方法返回值是受影响的行数,对于 create table和drop table不操作行的语句,返回值为0。
- execute()用于返回多个结果集,多个更新计数或二者组合的语句。
2、PreparedStatement对象
PreparedStatement对象继承了Statement对象,重构了executeQuery()、 executeUpdate()、execute()方法,重构后不需要参数。
用法:
- 给出SQL模板。
- 调用Connection的PreparedStatement prepareStatement(String sql模板);
- 调用PreparedStatement对象的setxxx()系列方法sql模板中的?赋值
- 调用PreparedStatement对象的executeUpdate()或executeQuery()。
优点:
- 防SQL攻击;
- 提高代码的可读性;
- 提高效率;
3、CallStatement对象
用法:
- 给出SQL存储模板。
- 调用Connection的prepareCall(String sql模板);
- 调用CallStatement对象的setxxx()系列方法给sql模板中的?赋值;
- 调用CallStatement对象的executeUpdate()或executeQuery()或execute()方法。
优点:
- 防SQL攻击;
- 提高代码的可读性;
- 提高效率;