import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
/*
* sqlMateriais.java
*
* Created on 27 de Julho de 2006, 09:43
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
* @author maq14
*/
public class sqlMateriais {
/** Creates a new instance of sqlMateriais */
public sqlMateriais() {
}
public static PreparedStatement stmt;
public static Statement stm;
public static Connection con;
public static ResultSet rs;
public static int codigo;
public static String descricao;
public static String quantidade;
public static String valor;
public static void setCodigo(int aCodigo){
codigo = aCodigo;
}
public static int getCodigo(){
return codigo;
}
public static void setDescricao(String aDescricao){
descricao = aDescricao;
}
public static String getDescricao(){
return descricao;
}
public static void setQuantidade(String aQuantidade){
quantidade = aQuantidade;
}
public static String getQuantidade(){
return quantidade;
}
public static void setValor(String aValor){
valor = aValor;
}
public static String getValor(){
return valor;
}
public static String conecta(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/provapaulo", "alunos", "alunos");
} catch (Exception e){
System.out.println(e);
}
return null;
}
public static String desconecta(){
try{
con.close();
stmt.close();
} catch (Exception e){
System.out.println(e);
}
return null;
}
public static String gravarMateriais(String gdescricao, String gquantidade, String gvalor){
conecta();
try{
stmt = con.prepareStatement("INSERT INTO Materiais (Descricao, Quantidade, Valor) VALUES (0,?,?,?)");
stmt.setString(1, gdescricao);
stmt.setString(2, gquantidade);
stmt.setString(3, gvalor);
stmt.executeUpdate();
stmt.execute("COMMIT");
} catch(Exception e){
System.out.println(e);
}
desconecta();
return null;
}
public static String consultarMateriais(int codigo){
conecta();
try{
stm = con.createStatement();
String SQL = "SELECT * FROM Materiais WHERE Codigo="+codigo;
rs = stm.executeQuery(SQL);
if(rs.next()){
setDescricao(String.valueOf(rs.getObject("Descricao")));
setQuantidade(String.valueOf(rs.getObject("Quantidade")));
setValor(String.valueOf(rs.getObject("Valor")));
}
} catch (Exception e){
System.out.println(e);
}
desconecta();
return null;
}
public static String alterarMateriais(int codigo, String descricao, String quantidade, String valor){
conecta();
try{
stm = con.createStatement();
String SQL= "UPDATE Materiais SET Descricao='"+descricao+"', Quantidade='"+quantidade+"', Valor='"+valor+"'WHERE Codigo="+codigo;
stm.executeUpdate(SQL);
stmt.execute("COMMIT");
} catch (Exception e){
System.out.println(e);
}
desconecta();
return null;
}
}
Aparentemente está tudo certo: Nome do banco, senha.. tudo...
Agora vai a linha de comando que faz gravar as informações no banco de dados:
private void bGravarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
materiais.gravarMateriais(tfDescricao.getText(), tfQtd.getText(), tfValor.getText());
}
sqlMateriais materiais = new sqlMateriais();
Quando eu execute ele dá a seguinte mensagem:
java.sql.SQLException: Column count doesn't match value count at row 1
O que será que eu estou fazendo de errado???
Obrigado[/code]