Gravando dados no MySQL?

11 respostas
G

Eu sei que isso deve ser perguntado frequentemente, mais eu sou iniciante tanto no fórum quanto em java.

Eu tô tentando fazer um sistema de cadastro pelo NetBeans que grava alguns dados no banco de dados, só que não tenho a mínima noção de como gravar os dados. O que eu fiz foi igual o tutorial aqui do Guj, com o “obj.setText( NOME_DO_CAMPO.getText() );”. E outra coisa, como que faz a conexão com o MySQL? Precisa colocar algo no código ou só fazer aquilo na aba “Serviços” do NetBeans já resolve?

Abraços :smiley:

11 Respostas

jessetsilva

Cara, vc vai precisar uar o driver de conexão do Java para o Mysql, vc pode baixar este driver de vários lugares, inclusive do site do mysql, cujo endereço me fugiu da cabeça

depois segue os apssos conforme descrito neste artigo aqui no guj :

http://www.guj.com.br/java.tutorial.artigo.7.1.guj

G

O driver eu já tenho, que é aquele JDBC que vem .jar. O que eu não sei sobre a conexão é se precisar adicionar algo no código do programa ou se conectar o netbeans com o MySQL já resolve.

Abraços

jessetsilva

depois segue os apssos conforme descrito neste artigo aqui no guj :

http://www.guj.com.br/java.tutorial.artigo.7.1.guj

joede.fadel
na classe de conexão
private static String url = "jdbc:mysql://localhost:3306/nomeDoBanco";
	private static String user = "root";
	private static String pass = "123";
	private static Connection con = null;

	public Connection getConexao() {

		try {
			Class.forName("org.gjt.mm.mysql.Driver");
			con = DriverManager.getConnection(url, user, pass);

			return con;
		} catch (ClassNotFoundException e) {
			System.out.println("Classe não encontrada");
			return null;
		}

		catch (SQLException e) {
			System.out.println("Problemas com o BD" + e);
			return null;
		}
}

para inserir dados

public boolean salvar(Usuario usuario) {
		connection = dao.getConexao();
		PreparedStatement ps = null;
		try {
			ps = (PreparedStatement) connection
					.prepareStatement("insert into Usuario (email,nome,senha,usuario,nivel)VALUES (?,?,?,?,?)");
			ps.setString(1, usuario.getEmail());
			ps.setString(2, usuario.getNome());
			ps.setString(3, usuario.getSenha());
			ps.setString(4, usuario.getUsuario());
			ps.setInt(5, usuario.getNivel().getNivel_id().intValue());
			ps.executeUpdate();
			return true;
		} catch (SQLException e) {
			return false;
		} finally {
			dao.desconectar();

		}
G

No connection = dao.GetConexao fica dando um erro “non-static method cannot be referenced from a static method” ou alguma coisa assim.

E também dá “Illegal start of expression” no public boolean.

Por que isso acontece? :-o

Abraços

EDIT: O que seria aquele (Usuario usuario) depois do “salvar”?

joede.fadel

(Usuario usuario) o Usuario - seria a classe usuario e "usuario"o nome do atributo

como vc fez sua classe de conexão e como vc está chamando o metodo?

jessetsilva

Aquele Usuario usuario quer dizer que o método esta recebdendo um objeto da classe usuario, onde as informações estão contidas.

O erro dao.GetConexao fica dando um erro "non-static method cannot be referenced from a static method quer dizer que vc nao pode referenciar um metodo não estatico de um método estatico, experimente estabciar esta classe dentro do seu método estatico que resolve.

o problema Illegal start of expression" no public boolean pode ocorrer por vc estar deixando algum método aberto anterior, verifique se todos os teus métodos e classes estão com todos os “parenteses” corretamente fechados

e mais uma vez, de uma lida no link que foi passado, pq ao que deu pra entender, vc precisa conhecer mais do que simplesmente conectar no bando de dados.

G

Minha classe de conexão está igual vc me passou, eu só mudei o nome para “connection” (e pensei que “dao” era essa classe), e o método tbm tá igualzinho o que vc passou

joede.fadel

é isso mesmo não vale apena fazer funcionar sem saber oque vc está fazendo

Rafael_Marques1

fica mais ou menos assim:

public class Conexao{

	static final String JDBC_DRIVER = "jdbc.mysql.com.Driver" //driver
	static final String DTURL = "jdbc:mysql://localhost/seubancodedados"; //string de conex

	Connection cn = null;
	Statement st = null;

	String sql;

	public void ConsConexao()
	{
		sql = "INSERT INTO xxx VALUES(x,x,x)";
		try
		{
			Class.forName(JDBC_DRIVER);
			cn = DriverManager.getConnection(DTURL, "usuario", "senha");
			st = cn.createStatement();
			ResultSet rs = st.executeUpdate(sql);
		}
		catch (SQLEXception e)
		{
			e.printStackTrace();
			System.exit(1);
		}
		catch (ClassNotFoundException classNFe)
		{
			e.printStackTrace();
			System.exit(1);
		}
	}

se nao ficar mto bem formatado, é pq eu fiz no bloco de notas rapidinho aqui no serviço

espero ter ajudado

mas só uma dica, não adianta nada vc fazer algo que funcione, porém vc nao entende como que realmente se faz aquilo...

estude o jdbc, cada passo, pq tem que fazer isso, etc....
eu ainda estou estudando bastante isso, até pq tbm sou novato... =D

abraço ;)

leandrovrb

Olhe para conectar ao banco vc precisa ter um banco de dados definido é como foi passado antes pelo amigos do forum,qual banco de dados vc utiliza? qual o usuario e senha que conecta no mysql e qual o nome do banco? ae podemos lhe ajudar!
Depois disto é so colocar estas informações na classe conection como citado acima

Criado 14 de novembro de 2008
Ultima resposta 15 de nov. de 2008
Respostas 11
Participantes 5