Erro no preparedStatement

4 respostas
R

Olá, estou com o seguinte erro: Not yet implemented

package estoque;

import java.sql.ResultSet;

import javax.swing.*;

import java.sql.PreparedStatement;

import java.text.SimpleDateFormat;

public class CadAlunos extends javax.swing.JFrame {

private int vCodigo, vTipo;

private String vDescricao, vData_Validade;

java.util.Date data = null;

SimpleDateFormat formatDate;

ResultSet resultado_RS;
private void jbt_AdicionarActionPerformed(java.awt.event.ActionEvent evt) {

try {

vTipo = Integer.parseInt(jtf_Tipo.getText());

vDescricao = jtf_Descricao.getText();

vData_Validade = jtf_Data_Validade.getText();
formatDate = new SimpleDateFormat("dd/MM/yyy"); 
data = formatDate.parse(vData_Validade);

TestaConexao conexao = new TestaConexao();
conexao.conectaBanco();
[color=red]    String cQuerySql = (insert into Produtos(Descricao, Data_Validade, Tipo) values (?, ?, ?));

PreparedStatement stmt = conexao.prepareStatement(cQuerySql);

stmt.clearParameters();

stmt.setString(1, vDescricao);

stmt.setDate(2, new java.sql.Date(data.getTime()));

stmt.setInt(3, vTipo);

stmt.executeUpdate(cQuerySql); // aqui eu gostaria de chamar o método adicionarDados do TestaConexao.

[/color]

} catch(Exception e){

JOptionPane.showMessageDialog(null, Erro, Mensagens, JOptionPane.INFORMATION_MESSAGE);

System.out.println(e.getMessage());

}

}

CLASSE Testa_Conexao:
package estoque;

import java.sql.*;

import javax.swing.JOptionPane;

public class TestaConexao extends javax.swing.JFrame {
public Connection con = null;

public PreparedStatement stmt;

public Statement stm;

private ResultSet resultado_RS;
public Connection conectaBanco() {

try {

Class.forName(“org.firebirdsql.jdbc.FBDriver”);

con = DriverManager.getConnection (“jdbc:firebirdsql:localhost/3050:C:/Sistemas/Sistema Acadêmico/Dados/estoque.fdb, SYSDBA, masterkey);

stm = con.createStatement();
}
catch (Exception e) {
	System.out.println("Não foi possível conecttar ao banco: "+ e.getMessage());
}	
return con;	
}
[color=brown]   public void adicionarDados(String cQuerySql){

try {

stmt.executeUpdate(cQuerySql);

}catch(Exception e){

System.out.println(e.getMessage());

}

[/color]   }

4 Respostas

BrunoBastosPJ

Mude seus os seus System.out.println(e.getMessage()) para e.printStackTrace() e cola a saida da exceção ai…

Not implemented é um erro muito genérico, fica difícil de saber o que está acontecendo…

e procure usar as tags code e \code no seus códigos, assim fica muito mais fácil te ajudar :wink:

S

cara o problema é que você tá chamando o método da classe errada.

na sua classe TestaConexao não existe nenhum método chamado prepareStatement

por isso que essa sua linha tem erro

conexao.prepareStatement(cQuerySql);
R
java.lang.UnsupportedOperationException: Not yet implemented

at estoque.TestaConexao.prepareStatement(TestaConexao.java:75)

at estoque.CadProdutos.jbt_AdicionarActionPerformed(CadProdutos.java:185)
No testaConexao: Linha 75 tem:

PreparedStatement prepareStatement(String string) {

throw new UnsupportedOperationException(Not yet implemented);

}

No CadProdutos: Linha 185 é: PreparedStatement stmt = conexao.prepareStatement(cQuerySql);

BrunoBastosPJ

Esse erro parece típico do Netbeans…

Por acaso você está implementando a interface Connection na sua classe TestaConexao?

Você também deve ter deixando a IDE gerar automaticamente a implementação dos métodos, certo?

O que acontece é que quando a IDE (no caso o Netbeans que eu conheço) gera a implementação dos métodos de uma interface, ela cria este método lançando uma exceção, para forçar você a escrever alguma coisa dentro deste método.

Você não tem que implementar a interface Connection na sua classe de testes, você tem que obter essa conexão através do DriverManager do BD que você está usando.

Aqui segue o exemplo de uma conexão com o BD PostgreSQL. Estou usando arquivos de propriedades para obter os dados para a conexão.

public class JDBCConnection {

    private static Connection connection;
    private static String jdbcDriver;
    private static String dataBasePrefix;
    private static String hostName;
    private static String dataBasePort;
    private static String dataBaseName;
    private static String userName;
    private static String password;
    private static String propertiesFilePath;    
    
    static {
        propertiesFilePath = "connectionattributes.properties";
    }
    
    private static void configure() {
        try {
            //This method was used to get the path of a properties file thats inside the jar file
            InputStream is = new JDBCConnection().getClass().getResourceAsStream("/connectionattributes.properties");
            Properties properties = new Properties();

            //properties.load(new FileInputStream(propertiesFilePath));
            properties.load(is);
            jdbcDriver = properties.getProperty("jdbcDriver");
            dataBasePrefix = properties.getProperty("dataBasePrefix");
            hostName = properties.getProperty("hostName");
            dataBasePort = properties.getProperty("dataBasePort");
            dataBaseName = properties.getProperty("dataBaseName");
            userName = properties.getProperty("userName");
            password = properties.getProperty("password");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    private static void connect() {
        configure();

        String url = dataBasePrefix + "://" + hostName + ":" + dataBasePort + "/" + dataBaseName;

        try {
            Class.forName(jdbcDriver);
            connection = DriverManager.getConnection(url, userName, password);
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public static Connection getConnection() {
        if (connection == null) {
            connect();
        }
        return connection;
    }

    public static Connection getConnection(String propertiesFilePath) {
        JDBCConnection.propertiesFilePath = propertiesFilePath;
        return getConnection();
    }

    public static void closeConnection() throws SQLException {
        try {
            if (connection != null) {
                connection.close();
            }
            connection = null;
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
Criado 1 de julho de 2008
Ultima resposta 2 de jul. de 2008
Respostas 4
Participantes 3