错误结果集不能是int



我一直在尝试做一个方法,该方法可以接收SQL语句,并用两个类执行"ExecuteUpdate",但当我声明"ResultSet res=stat.ExecuteUpdate(SQL语句)"时,Netbeans告诉我这个错误:"Int无法转换为ResultSet",但我不知道为什么。这是两个类别:

Class conexion

package controller;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.ResultSet;
public class conexion{
Connection con = null;
Statement stat = null;
//Method to star the connection
conexion(){
    try{
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","n0m3l0");   
    }
    catch(ClassNotFoundException | SQLException x){
        System.out.println(x);  
    }
} 
//Method to end the Connection
void endConexion(){
    if(con == null || stat == null){  
        try{
            stat.close();
            con.close();
        }
        catch(SQLException x){
            Logger.getLogger(conexion.class.getName()).log(Level.SEVERE, null, x);
        }
    }
    else {
        System.out.println("Connection is already finished");
    }
}
//Methods Set and Get for Stat and Con
void setStat(Statement x){  
    this.stat = x;
}
void setCon(Connection x){ 
    this.con = x;
}
Statement getStat(){
    return this.stat;
}
Connection getCon(){
    return this.con;
}
}

类查询

package controller;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Querys {
//Call class conexion
private conexion mycon = new conexion();
//Method to execute onlye inserts querys
void insertQuerys(String sql){
    try{
        mycon.setStat(mycon.getCon().createStatement());
        mycon.getStat().executeUpdate(sql);
    }
    catch(Exception x){
        System.out.println(x); 
    }
}
 //MEthod to execute query that return results
ResultSet queryResponse(String sql) throws SQLException{
    mycon.setCon(null);
    mycon.setStat(null);
     ****This is the line where is the error*****
    ResultSet res = mycon.getStat().executeUpdate(sql);
    while(res.next()){
        return res;
    }    
}  
}

如果你不想维护ResultSet,你可以使用

ResultSet rs = mycon.getStat().executeQuery("SELECT a, b FROM TABLE2");

或更改为int

int rowsUpdated = mycon.getStat().executeUpdate(sql);

好吧,因为executeUpdate()返回更新或删除的实体数,它实际上是int的值。

因为executeUpdate方法返回int。这个int值显示有多少行受到sql语句的影响。

例如删除/更新/插入了多少行。

当您的语句不影响任何行时,它将返回0

应该是

int rowsUpdated = mycon.getStat().executeUpdate(sql);

实际执行update语句时,它只返回不受ResultSet 影响的行数

相关内容

  • 没有找到相关文章

最新更新