请问:怎样取得sql语句的操作行数?

auron01 2004-07-27 09:40:12
import java.sql.*;
/**
*
* @author Administrator
*/
public class Data {
private final String url="jdbc:odbc:xiaohuoguanli";
private final String driver="sun.jdbc.odbc.JdbcOdbcDriver";
Connection conn;
Statement stmt;
ResultSet rs;
Object data[][];
/** Creates a new instance of Data */
public Data() {
}

protected Object[][] sqlSelect(){
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,"sa","");
stmt=conn.createStatement();
rs=stmt.executeQuery("select * from htxxb order by id");
while (rs.next()){
for (int i=0;i<操作行数;i++){
data[i][0]=rs.getString("id");
data[i][1]=rs.getString("ywy");
}
//System.out.println(rs.getString(1));
}
return data;
}catch(Exception ex){
System.out.println(ex.getMessage());
return null;
}
}
}
请问,应该怎么写?
...全文
177 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
langxiaofeng 2004-07-27
  • 打赏
  • 举报
回复
FOR中给一个数值???/
??
shareanway 2004-07-27
  • 打赏
  • 举报
回复
不清楚意图。
pipigo_wzj 2004-07-27
  • 打赏
  • 举报
回复
楼主是不是想在结果集中指定的要操作行数。
这样可以在FOR中给一个数值
Alexxxxxx 2004-07-27
  • 打赏
  • 举报
回复
while(rs.next())本身已经是个条件循环,干吗还要for啊?
建议楼主去看看JAVA资源网:www.yultao.tk
lovelx 2004-07-27
  • 打赏
  • 举报
回复
楼上说的清楚。
如果想要得到结果集中的行数,可以这样做:

rs=stmt.executeQuery("select * from htxxb order by id");
rs.last();
rs.getRow();
while( rs.previous() )
{
// do something
}
tomcatjava 2004-07-27
  • 打赏
  • 举报
回复
rs=stmt.executeQuery("select * from htxxb order by id");
while (rs.next()){
//for (int i=0;i<操作行数;i++){
data[i][0]=rs.getString("id");
data[i][1]=rs.getString("ywy");
//}
}
这样便可以遍历整个结果集了,rs.next()调用后会自动指向下一个结果的。

superryu 2004-07-27
  • 打赏
  • 举报
回复
rs=stmt.executeQuery("select count(*) as 行数 from htxxb");
rs.next();
int i = rs.getInt("行数");

understand?
auron01 2004-07-27
  • 打赏
  • 举报
回复
我知道怎么做了。
import java.sql.*;
/**
*
* @author Administrator
*/
public class Data {
private final String url="jdbc:odbc:xiaohuoguanli";
private final String driver="sun.jdbc.odbc.JdbcOdbcDriver";
Connection conn;
Statement stmt;
ResultSet rs;
Object data[][];
/** Creates a new instance of Data */
public Data() {
}

protected Object[][] sqlSelect(String sql){
try{
int x=0;
Class.forName(driver);
conn=DriverManager.getConnection(url,"sa","");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
rs.last();
x=rs.getRow();
//System.out.println(x);
data=new Object[x][2];
rs.first();
//System.out.println(rs.getRow());
for (int i=0;i<x;i++){
data[i][0]=rs.getString("id");
data[i][1]=rs.getString("ywy");
rs.next();
}
//System.out.println(rs.getString(1));
rs.close();
stmt.close();
conn.close();
return data;
}catch(Exception ex){
System.out.println(ex.getMessage());
return null;
}
}
}
这样就可以了.贴上来大家分享
zhouying1573 2004-07-27
  • 打赏
  • 举报
回复
shiyong rownum lai kongzhi
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在使用 JDBC(Java Database Connectivity)与数据库交互时,Statement 接口提供了三种主要方法来执行 SQL 语句:execute()、executeUpdate() 和 executeQuery()。这三种方法各有特点,适用于不同类型的 SQL 操作。 execute() 方法 boolean execute(String sql) 可以执行任何类型的 SQL 语句,包括查询(SELECT)、更新(INSERT、UPDATE、DELETE)和数据定义语言(DDL,如 CREATE TABLE、DROP TABLE)语句。它的返回值是一个布尔值。如果返回 true,表示执行的是查询语句,可以通过调用 getResultSet() 方法来获取查询结果集。如果返回 false,则表示执行的是更新或 DDL 语句,此时可以通过 getUpdateCount() 方法获取受影响的行数。例如: executeUpdate() 方法 int executeUpdate(String sql) 专门用于执行那些不返回结果集的 SQL 语句,例如 INSERT、UPDATE、DELETE 和 DDL 语句。它返回一个整数,表示受影响的行数。对于 DDL 语句,返回值通常为 0,因为这些操作不会改变行数。例如: executeQuery() 方法 ResultSet executeQuery(String sql) 用于执行返回结果集的 SQL 语句,通常是 SELECT 查询。它直接返回一个 ResultSet 对象,可以用来遍历查询结果。例如: 正确选择这些方法对于提高代码的可读性和效率至关重要。在实际开发中,根据 SQL 语句的类型选择合适的方法可以避免不必要的

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧