2016-08-04 14 views
1

インターネットで見つかったこのプロジェクトを実行しようとしましたが、netbeansでこれらのエラーが発生しました。 "com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:PROCEDURE contactos.sp_guardar does not exist"これらの2つのクエリ:不明なSQLクエリ

更新

デシベル文字列のSQL = "(?????、、、、)コールsp_guardar"。

検索デシベル

文字列のSQL = "コールbuscar(?)";

はxammp

かかわらずプロジェクトのコードを接続しmysqlデータベースを使用してthis.Amに支援するのが大好きです。

package contactosfx; 

import java.sql.CallableStatement; 
import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import javafx.collections.FXCollections; 
import javafx.collections.ObservableList; 

public class AmigoDao implements AmigoInterface { 


public AmigoDao(){ 

} 

@Override 

//UPDATE DB 
public void guardar(Amigo amigo) { 
    Connection con = Conexion.conectar(); 
    CallableStatement cs = null; 
    String sql = "call sp_guardar(?,?,?,?,?)"; 


    try { 
     cs = con.prepareCall(sql); 
     cs.setString(1, amigo.getFoto()); 
     cs.setString(2, amigo.getNombre()); 
     cs.setString(3, amigo.getCorreo()); 
     cs.setString(4, amigo.getTelf()); 
     cs.setInt(5, amigo.getEstado()); 
     cs.executeUpdate(); 
     cs.close(); 
     con.close(); 

    } catch (SQLException ex) { 
     ex.printStackTrace(); 
    } finally { 
     try { 
      if (con != null) { 
       cs.close(); 
       con.close(); 
      } 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

@Override 
public void actualizar(Amigo amigo, int id) { 
    Connection con = Conexion.conectar(); 
    CallableStatement cs = null; 
    //String sql = "call sp_actualizar(?,?,?,?,?,?)"; 


    try { 
     cs = con.prepareCall(sql); 
     cs.setString(1, amigo.getFoto()); 
     cs.setString(2, amigo.getNombre()); 
     cs.setString(3, amigo.getCorreo()); 
     cs.setString(4, amigo.getTelf()); 
     cs.setInt(5, amigo.getEstado()); 
     cs.setInt(6, id); 
     cs.executeUpdate(); 

    } catch (SQLException ex) { 
     ex.printStackTrace(); 
    } finally { 
     try { 
      if (!con.isClosed()) { 
       cs.close(); 
       con.close(); 
      } 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } 
    } 

} 

@Override 
public ObservableList<Amigo> buscar(String nombres) { 
    Connection con = Conexion.conectar(); 
    CallableStatement cs = null; 
    ResultSet rs = null; 
    ObservableList<Amigo> lista = FXCollections.observableArrayList(); 
    String sql = "call buscar(?)"; 
    //String sql = "call search(?)"; 

    try { 
     cs = con.prepareCall(sql); 
     cs.setString(1, nombres); 
     rs = cs.executeQuery(); 
     while(rs.next()){ 
      lista.add(new Amigo(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getInt(6))); 
     } 

    } catch (SQLException ex) { 
     ex.printStackTrace(); 
    } 
    return lista; 
} 

@Override 
public ObservableList<Amigo> buscarHabilitados() { 
    Connection con = Conexion.conectar(); 
    Statement st = null; 
    ResultSet rs = null; 
    String sql = "select*from habilitados"; 
    ObservableList<Amigo> lista = FXCollections.observableArrayList(); 
    try { 
     st = con.createStatement(); 
     rs = st.executeQuery(sql); 

     while (rs.next()) { 
      lista.add(new Amigo(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6))); 
     } 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    return lista; 
} 

@Override 
public ObservableList<Amigo> buscarDeshabilitados() { 
    Connection con = Conexion.conectar(); 
    Statement st = null; 
    ResultSet rs = null; 
    String sql = "select*from deshabilitados"; 
    ObservableList<Amigo> lista = FXCollections.observableArrayList(); 
    try { 
     st = con.createStatement(); 
     rs = st.executeQuery(sql); 

     while (rs.next()) { 
      lista.add(new Amigo(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6))); 
     } 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    return lista; 

} 

}

the database table screenshot

+1

見つからないストアドプロシージャを取得するか、誰かがチェックアウトできるようにリンクを提供してください。 – Drew

答えて

1

これらは、コード思想のライターは、データベース内であろう手順を記憶されています。明らかに、彼らはそうではありません。これを有効にするには、sp_guardarとおそらくbuscarストアドプロシージャを実装する必要があります。そうでない場合は、コードからそれらを削除する必要があります。

+0

大丈夫ですが、機能に影響を与えずにどのように置き換えるのですか? – brxy

+0

あなたのメソッドがデータベース内で何をしているのか把握し、そのすべての機能が実装されていることを確認する必要があります。データベースを呼び出さずにすべてを実装できる場合は、ストアドプロシージャ呼び出しを削除します。データベースを呼び出す必要がある場合は、該当するストアドプロシージャを実装する必要があります。 –

+0

プロジェクトのリンクはこちらhttp://tutorialjavafx.blogspot.ug/2014/03/javafx-lista-de-contactos.html – brxy