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;
}

转载于:https://www.cnblogs.com/cyy-13/p/5779678.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值