Variavel do java somar com variavel sql?

5 respostas
B

Bom dia amigos,
Tenho que fazer um sisteminha de conta bancaria usando banco de dados
fiz a tabela com os campos Nome, Numero, Agencia e Valor
como faço pra somar o valor depositado no valor do sql?
segue o codigo do que tentei:

import java.sql.*;
import javax.swing.*;

public class Dados {
	public Dados(){
		String url = "jdbc:odbc:conta";
		int valor = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor"));
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Connection con = DriverManager.getConnection(url);
			Statement snt = con.createStatement();
			String sql = "UPDATE conta SET saldo" + valor;
			ResultSet rs = snt.executeQuery(sql);
			while(rs.next()){
				
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}

}

Alguem poderia me ajudar?

5 Respostas

Rafael_Marques1

Bina0:
Bom dia amigos,
Tenho que fazer um sisteminha de conta bancaria usando banco de dados
fiz a tabela com os campos Nome, Numero, Agencia e Valor
como faço pra somar o valor depositado no valor do sql?
segue o codigo do que tentei:

import java.sql.*;
import javax.swing.*;

public class Dados {
	public Dados(){
		String url = "jdbc:odbc:conta";
		int valor = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor"));
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Connection con = DriverManager.getConnection(url);
			Statement snt = con.createStatement();
			String sql = "UPDATE conta SET saldo = saldo"+ valor;
			ResultSet rs = snt.executeUpdate(sql);
			while(rs.next()){
				
			}
		}catch(SQLException e){
			e.printStackTrace();
System.exit(1);
		}
catch(ClassNotFoundException e){
e.printStackTrace();
System.exit(1);
                                 }
	}

}

Alguem poderia me ajudar?

qndo vc usa o Class.forname, vc tem que lançar uma exceção de ClassNotFoundClass

entao adicione um catch a mais ai:

catch (ClassNotFoundException e) e.printStackTrace();

pra fazer update, vc nao usa o query, e sim o execute update:

executeUpdate(sql)

tenta assim:

import java.sql.*;
import javax.swing.*;

public class Dados {
	public Dados(){
		String url = "jdbc:odbc:conta";
		int valor = Integer.parseInt(JOptionPane.showInputDialog("Digite o valor"));
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Connection con = DriverManager.getConnection(url);
			Statement snt = con.createStatement();
			String sql = "UPDATE conta SET saldo = saldo"+ valor;
			ResultSet rs = snt.executeUpdate(sql);
			while(rs.next()){
				
			}
		}catch(SQLException e){
			e.printStackTrace();
                                                System.exit(1);
		}
                                  catch(ClassNotFoundException e){
                                                 e.printStackTrace();
                                                 System.exit(1);
                                 }
	}

}

lembrando que seria legal colocar o WHERE nesse update, se nao ele vai dar update em tudo =x

espero ter ajudado e nao ter falado nada de errado =D

fiaux

Ué, acho que isso aqui String sql = "UPDATE conta SET saldo = saldo"+ valor; vai é formar uma string onde o final dela vai ser “…saldo = saldo123”, considerando que valor = 123. Colocar + valor no final da string vai concatenar ela.

Pegue o valor atual do saldo, some com o novo valor e mande o update.

B

arrumei aqui mais ou menos do jeito que vcs me explicaram tentei fazer de outro jeito mas ai ele sempre cai no SQLException e da um erro na hora de executar o update:

import java.sql.*;
import javax.swing.*;

public class Dados {
	public Dados(){
		String url = "jdbc:odbc:conta";
		double valor = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor"));
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Connection con = DriverManager.getConnection(url);
			Statement snt = con.createStatement();
			String query = "SELECT * FROM conta";
            ResultSet rs = snt.executeQuery(query);
			while(rs.next()){
				JOptionPane.showMessageDialog(null, rs.getDouble(1));
			}
			double get = rs.getDouble(1);
			double soma = get + valor;
			String update = "UPDATE conta SET valor" + soma;
			Statement smt = con.createStatement();
			ResultSet sr = smt.executeUpdate(update); //Type mismatch: cannot convert from int to ResultSet
			
		}catch(ClassNotFoundException e){
			JOptionPane.showMessageDialog(null, "Erro!");
			e.printStackTrace();
			System.exit(1);
		}catch(SQLException sq){
			JOptionPane.showMessageDialog(null, "Sei la o que aconteceu");
			sq.printStackTrace();
			System.exit(1);
		}
	}

}

Alguém sabe?

fiaux

catch(SQLException sq){ JOptionPane.showMessageDialog(null, "Sei la o que aconteceu"); sq.printStackTrace(); System.exit(1); }

JOptionPane.showMessageDialog(null, “Sei la o que aconteceu”);
Pô cara…

No console saiu alguma coisa, não? Você mandou um sq.printStackTrace(); Posta aí.

B

o primeiro erro é:

e o do sql é:

Mas a tabela esta certinha e configurada no painel de controle e tal =/
obrigado

Criado 29 de outubro de 2008
Ultima resposta 29 de out. de 2008
Respostas 5
Participantes 3