Alguém pode me ajudar estou com um erro no meu código

2 respostas
L

package br.com.aec.dao;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import javax.swing.JOptionPane;

import br.com.aec.Conta;
import br.com.aec.bd.ConexaoBD;

public class ContaDAO {

public void depositar(Conta conta) {

	// Abre conexão com o Banco
	try (Connection con = ConexaoBD.getConnection()) {

		// Comando SQL para executar
		String cliente= JOptionPane.showInputDialog("Informe o nome do cliente: ");
		String valor= JOptionPane.showInputDialog("Informe o valor do depósito: ");
		String limite= JOptionPane.showInputDialog("Informe o seu limite: ");
		String sql = "INSERT INTO conta ( cliente , saldo ,limite ) VALUES ("+cliente+","+valor+","+limite+")";

		// Faz a relação entre as posições do comando SQL e os valores do
		// Java
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setString(1, conta.getCliente());
		ps.setDouble(2, conta.getSaldo());
		ps.setDouble(3, conta.getLimite());

		// Executa comando
		ps.execute();

		JOptionPane.showMessageDialog(null, "Depósito Efetuado com sucesso " +conta.toString());

	} catch (SQLException e) {
		JOptionPane.showMessageDialog(null, "Depósito Não Efetuado ");
		System.out.println(e.getMessage());
	}



}

} o erro é esse:Parameter index out of range (2 > number of parameters, which is 1).

2 Respostas

R

Muda para :
String sql = "INSERT INTO conta ( cliente , saldo ,limite ) VALUES (?, ?, ?)";

B

use
ps.executeUpdate()

esse q te disse executa especificamente o CRUD mais sem a letra R (INSERT, UPDATE, DELETE).

Criado 31 de agosto de 2017
Ultima resposta 31 de ago. de 2017
Respostas 2
Participantes 3