2015-11-12 3 views
-1

Я пытаюсь сделать метод, который мог бы получить предложение SQL и выполнить «ExecuteUpdate» с двумя классами, но когда я объявляю «ResultSet res = stat.executeUpdate (SQL sentece)» Netbeans говорит мне эту ошибку: «Int не может быть преобразован в ResultSet», но я не знаю почему. Это есть два класса:Ошибка ResultSet не может быть int

Класс 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; 
} 
} 

Класс Querys

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

ответ

0

, если вы не будете его поддерживать в ResultSet вы можете использовать

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

или изменения в целое

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

Ну, потому что executeUpdate() возвращает количество объектов обновленных или удаленных, и это действительно int значение.

0

Потому что executeUpdate метод возвращает int. Значение этого параметра int показывает, сколько строк зависит от вашего оператора sql.

например, сколько строк удалено/обновлено/вставлено.

он возвращает 0, когда ваше утверждение не влияет на строку. не

0

Было бы

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

вы на самом деле выполнения оператор обновления, он будет возвращать только не затронутых строк не ResultSet

Смежные вопросы