未知的SQL查询

时间:2016-08-04 00:51:21

标签: java mysql

我试图运行我在互联网上找到的这个项目,但我在netbeans中遇到这些错误“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:PROCEDURE contactos.sp_guardar不存在”,这些错误来自这两个查询:

更新数据库

String sql =“call sp_guardar(?,?,?,?,?)”;

搜索db

String sql =“call buscar(?)”;

很想得到这方面的帮助。使用通过xammp连接的mysql数据库

项目代码。

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 个答案:

答案 0 :(得分:1)

这些是代码编写者认为将在数据库中的存储过程。显然,他们不是。要使其正常工作,您需要实现sp_guardar以及可能buscar存储过程,或者从代码中删除它们。