Statement对象

Statement对象分为以下三种:

Statement: 提供了基本查询的接口,一般用来执行简单的、无参数的查询语句

PreparedStatement:从Statement类继承过来的类,一般用来执行带IN参数或不带参数的查询语句

CallableStatement: 基类是PreparedStatement, 一般用来对存储过程的查询,可以处理Out参数

一、Statement对象的创建与使用

Connection con = DriverManager.getConnection(url,  " System " " new " );
Statement stmt
= con.createStatement();
ResultSet rs
= stmt.ExecuteQuery( " select * from new " );

 1、Statement提供了三种不同的方法来执行SQL语句

       ExecuteQuery: 用来返回一个单独的结果集ResultSet

       ExecuteUpdate: 用来执行insert, update 和 delete语句,返回值是一个整数,代表了这些语句所作用到的行数;还可以执行语言定义语句(create table, drop table),返回值为0, 因为它们不作用于行

       Execute: 则会返回一个或多个ResultSet对象, 可是更新数,或两者都有

2、Statement对象不包含SQL语句,使用者必须提供SQL语句作为Statement方法的参数

      PreparedStatement由于已经包含了一个预编译的SQL语句,则不必给它的方法提供SQL语句作为参数

      CallableStatement重载了PreparedStatement方法,所以也不需要额外的SQL语句

3、Execute方法的使用

     当一个语句可能返回一个以上的记录集或是多于一个的更新数目,或者两者都返回时,才能用到Execute

    如果Execute返回的是true, 则说明返回值是ResultSet, 如果为false, 则说明返回值是个整型数

    要获得Execute返回的多于一个以上的记录集时,首先要调用getResultSet得到第一个记录集,然后调用getMoreResults 和getResultSet得到得到第二个记录集 ; 当返回的更新数目多于2个时,得到第一个数要用getUpdateCount, 然后调用getMoreResults和getUpdateCount得到第二个结果

   如果getResultSet返回的是null, getUpdateCount返回的是-1, 则说明没有理多的返回结果

 

stmt.Execute(sql);
while ( true ) {
int rowCount=stmt.getUpdateCount();
if(rowCount>0{
System.out.println(
"改变的行数为"+rowCount);
stmt.getMoreResult();
Continue;
}

if(rowCount==0){
System.out.println(
"没有行被改变或是SQL语句是个数据库定义语言“);
stmt.getMoreResult();
Continue;
}

ResultSet rs
=stmt.getResultSet();
if(rs!=null){
//.....
while(rs.next()){
//处理结果集
}

stmt.getMoreResult();
continue;
}

break;
}

 

  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值