Gravando dados no MySQL?

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:

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

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

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

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

na classe de conexão

[code]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;
	}

}[/code]

para inserir dados

[code]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();

	}[/code]

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”?

(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?

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.

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

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

fica mais ou menos assim:

[code]

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);
	}
}[/code]

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 :wink:

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