BD! novamente....[RESOLVIDO]

7 respostas
magocebolinha

e la vamos nois.. mais uma vez to com problema om a conexão com o bco de dados.

a conexão ta assim...

import java.sql.Connection;
import java.sql.DriverManager;

public class Bd 
{
    public static Connection getConnection() {
        String driver   ="com.mysql.jdbc.Driver";
        String database ="funcionarios";
        String url      = "jdbc:mysql://localhost/"+ database;   //local host é nome do servidor
        String user     ="root";         
        String password ="mysql";        
        try {
            Class.forName(driver);            
            Connection con = DriverManager.getConnection(url,user,password);

            System.out.println(con);
            return con;
        }catch (Exception ex) {
            ex.printStackTrace();
        
        }
        return null;
  }
    
  }

o codigo de inserção de dados ta assim...

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

public class BdScannerFunc 
{
    public static void main (String args[])
    {
        
        Scanner item = new Scanner(System.in);
        int    info1  = item.nextInt();
        String info2 = item.next();
        double info3 = item.nextDouble();
        
        Connection con = Bd.getConnection();
        
        try
        {
            PreparedStatement stmt = con.prepareStatement("insert into (codigo, nome,salario) values (?,?,?)");
            stmt.setInt    (1,info1);           
            stmt.setString (2,info2);
            stmt.setDouble (3,info3);
           
        }
        catch (Exception e) {
	        System.out.println("erro!");
        }
    }
}

detalhe... num da erro nenhum.. da como se tivesse inserido com sucesso mas num aparece nada na tabela...

alguem pode ajudar?

7 Respostas

R

quando se usa PreparedStatement, para executar a query, é necessário chamar o método execute() :slight_smile: ;
agora deve funcionar

D

Uma sugestão largar esse JDBC ,pra mim esse pacote
sql do java e passado ,tenta o hibernte ,toplink.
È bem mais facil

marcosact
tenta colocar:

stmt.executeUpdate();

e logo em seguinda o

stmt.close();

para fechar sua PreparedStatement!

<img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pnglight_smile.png?v=9" title=":slight_smile:" class="emoji" alt=":slight_smile:">
magocebolinha

todas as sugestoes fncionaram… ref ao hibertnate nem sei usar ainda… rs… enfim! agora ele ta pegando a exception! compilo executo… tudo ok… mas assim que eu dou o ultimo enter ele dvolve o erro que eu especifiquei no catch… ahu que n setei o drive direito (de novo…) alguem pode me dar um a explicação sobre isso.?? to com tres apos tilas que quando falam de driver de banc de dados são extremamente vagas…!

to usando o netbeans 5.5

vlw!

D

Uma sugestão vc tem que saber que erro está ocorrendo manda ele escrever o erro .
System.out.println(e.getMessage());
E posta o erro para que a gente possa ajudar.

magocebolinha

entaum… boa ideia! o erro foi

init: deps-jar: Compiling 1 source file to C:\Arquivos de programas\netbeans-5.5\JavaApplication5\build\classes compile-single: run-single: 123 Ricardo 123 com.mysql.jdbc.Connection@d251a3 Syntax error or access violation message from server: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(codigo, nome,salario) values (123,'Ricardo',123.0)' at line 1"

mas n parece haver erro de sintaxe…

magocebolinha

Pessoal, ja achei o erro… na linha 19 faltou a indicação do nome da tabela, que é funcionarios!

OBRIGADO A TODOS!

ABRAÇO!

Criado 25 de dezembro de 2007
Ultima resposta 26 de dez. de 2007
Respostas 7
Participantes 4