2 classes fazendo conexão

bom dia!!!

Estou com um probleminha, tenho 1 classe que faz conexão com o banco… segue a baixo…

[code]/**
*
/
package servicebank;
import java.io.IOException;
import java.sql.
;

/**

  • BancoService Classe de serviços que tem por finalidade
  • acessar e manipular dados com um banco de dados
  • @author renatac

*/
public class BancoService {
// Estancia um objeto CONN
private Connection conn;

	public BancoService() {
		// tenho que usar o try/catch pois algo pode dar errado na 
		// comunicação com o banco
		try{
			//estancio um driver java para comunicação com o banco
			Class.forName("com.mysql.jdbc.Driver");
			// abro um gerenciador CONN
			conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=teste&password=teste");  
			
		// se der errado tento printar o stack do erro
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	/**
	 * @param id  
	 * @param PRIMEIRO_NOME
	 * @param ULTIMO_NOME
	 * @param IDADE
	 * @param SEXO
	 * @param PROFISSAO
	 * @param ENDERECO
	 * @param BAIRRO
	 */
	//Metodo Selecionar, mostra todos os dados que tenho no meu banco.	
	//public void consultaID(int id,String PRIMEIRO_NOME,String ULTIMO_NOME,int IDADE, char SEXO, String PROFISSAO, String ENDERECO, String BAIRRO) {

	public void consultaID(int id) {
		
		//Instancia a classe formularioBean.
	formularioBean formBean = new formularioBean();
	
		try{
			Statement stmt = conn.createStatement();
			
			//Conecta com o banco e faz uma consulta com minha tabela formulario
			ResultSet res = stmt.executeQuery("select * from formulario where id ='id'");
			
			while (res.next()){ //enquanto houver algo para mostrar ele mostrará..
								
				//mostra minhas informações
					System.out.println(res.getInt("id"));
					System.out.println(res.getString("PRIMEIRO_NOME"));
					System.out.println(res.getString("ULTIMO_NOME"));
					System.out.println(res.getString("IDADE"));	
					System.out.println(res.getString("SEXO"));
					System.out.println(res.getString("PROFISSAO"));	
					System.out.println(res.getString("ENDERECO"));	
					System.out.println(res.getString("BAIRRO"));
					System.out.println("-----------------");
			}	
			res.close();
			stmt.close(); // Fecha a conexão com o banco
				
			}catch(SQLException sqle){
			sqle.printStackTrace();
			
							
		}
	}
	
	public void inserir(int id, String PRIMEIRO_NOME, String ULTIMO_NOME, int IDADE, char SEXO, String PROFISSAO, String ENDERECO, String BAIRRO){
		//metodo inserir, insere informações no banco
	try {
		Statement stmt = conn.createStatement(); //Abre a conexão com o banco, insere as informações apresentadas conforme meus campos da minha tabela no Banco e depois fecha a conexão.
		stmt.executeUpdate("insert formulario values");
		stmt.close();
		
	}catch (SQLException sqle){
		sqle.printStackTrace();
	}
}
	public void alterar(int id, String PRIMEIRO_NOME, String ULTIMO_NOME, int IDADE, char SEXO, String PROFISSAO, String ENDERECO, String BAIRRO){ 	//metodo alterar, altera informações no banco.
		try{		//Abre a conexão com o banco, altera o dado passado com uma condição, onde o Registro for de número 3, mude o campo nome para 'Fulano'. Depois fecha a conexão.
			Statement stmt = conn.createStatement();
			
			stmt.executeUpdate("update formulario set PRIMEIRO_NOME = where id=3");
			
			stmt.close();
		}catch (SQLException e){
			e.printStackTrace();
		}
	}
	public void excluir(int id, String PRIMEIRO_NOME, String ULTIMO_NOME, int IDADE, char SEXO, String PROFISSAO, String ENDERECO, String BAIRRO){  //metodo excluir, exclui informações no banco.
		try{		//Abre a conexão com o banco, onde o Registro for de numero 3 exclua-o, depois feche a conexão.
			Statement stmt = conn.createStatement();
			
			stmt.executeUpdate("delete from formulario WHERE id = 3" );
			
			stmt.close();
		}catch (SQLException e){
			e.printStackTrace();
		}
	}
	
	
}

[/code]

Então e minha outra classe é

[code] /**
*
*/
package servicebank;

/**

  • @author renatac

*/

public class formularioBean {

 int id;  
 String PRIMEIRO_NOME;
 String ULTIMO_NOME;
 int IDADE;
 char SEXO;
 String PROFISSAO;
 String ENDERECO;
 String BAIRRO;
 
public String getBAIRRO() {
	return BAIRRO;
}
public void setBAIRRO(String bairro) {
	BAIRRO = bairro;
}
public String getENDERECO() {
	return ENDERECO;
}
public void setENDERECO(String endereco) {
	ENDERECO = endereco;
}
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public int getIDADE() {
	return IDADE;
}
public void setIDADE(int idade) {
	IDADE = idade;
}
public String getPRIMEIRO_NOME() {
	return PRIMEIRO_NOME;
}
public void setPRIMEIRO_NOME(String primeiro_nome) {
	PRIMEIRO_NOME = primeiro_nome;
}
public String getPROFISSAO() {
	return PROFISSAO;
}
public void setPROFISSAO(String profissao) {
	PROFISSAO = profissao;
}
public char getSEXO() {
	return SEXO;
}
public void setSEXO(char sexo) {
	SEXO = sexo;
}
public String getULTIMO_NOME() {
	return ULTIMO_NOME;
}
public void setULTIMO_NOME(String ultimo_nome) {
	ULTIMO_NOME = ultimo_nome;
}

}
[/code]

Alguem tem algum material ??? Ou possa me dar algumas dicas?!

qual o erro que está dando ?

por enquanto nenhum erro… gostaria de saber como faço a conexão entre as duas telas…

Sei que preciso instanciar a minha tela formularioBean dentro da minha classe BancoService… depois não sei mais…rs…

Como assim tela, é só instanciar e usar os métodos get’s e set’s, não é?

Desculpa tela nao… classes… ok já instanciei… agora nao sei mas o que faço… como posso usar métodos get’s e set’s… ???

crio outra tabela ou não?

[quote=renatac]… agora nao sei mas o que faço… como posso usar métodos get’s e set’s… ???

crio outra tabela ou não?[/quote]
Seria algo assim


public Class UsaTudo{

  public static void main(String args[]){
      formularioBean f = new formularioBean();
      f.setId(1);
      f.setPRIMEIRO_NOME("Mario");
      f.setULTIMO_NOME("O. do Armário"); //ahahahahah
      //e assim por diante
      BancoService banco = new BancoService();
    banco.inserir(f.getid(),f.getPRIMEIRO_NOME(),f.getULTIMO_NOME(),f.getIDADE(), f.getSEXO(),f.getPROFISSAO(), f.getENDERECO(), f.getBAIRRO());

   }
}

eu num seria melhor fazer um método


      banco.inserir(formularioBean);

mas antes que alguém reclame, eu não faria assim…

o erro está na string sql:

“select * from formulario where id =‘id’”

vc está passando como int:
public void consultaID(int id) {

o correto seria

"select * from formulario where id =“id”

não se faz isso …

public void inserir(int id, String PRIMEIRO_NOME, String ULTIMO_NOME, int IDADE, char SEXO, String PROFISSAO, String ENDERECO, String BAIRRO)

vc deve receber um objeto formularioBean apenas de parametro

[code]formularioBean f = new formularioBean();
f.setId(1);
f.setPRIMEIRO_NOME(“Mario”);
f.setULTIMO_NOME(“Abreu”);

       f.getId();
       f.getPRIMEIRO_NOME();
       f.getULTIMO_NOME();[/code]

O correto é isso???..

[quote=renatac][code]formularioBean f = new formularioBean();
f.setId(1);
f.setPRIMEIRO_NOME(“Mario”);
f.setULTIMO_NOME(“Abreu”);

       f.getId();
       f.getPRIMEIRO_NOME();
       f.getULTIMO_NOME();[/code]

O correto é isso!..
[/quote]

Então vc tem razão, é isso mesmo, o código que pus já faz isso e usa seus objetos…existem muitos jeitos de fazer as coisas, modelagem é algo bem complexo, as vezes subjetivo, mas me pareceu que vc num queria discutir modelagem…aí eu postei algo que funcionasse, desculpe se não entendi o que vc queria. :frowning:

isso sim…
vc deve preencher o seu bean e depois em uma classe formularioDAO receber ele como parametro nos metodos insert update delete

Que isso LuizClaudio… me ajudou bastante mesmo!.. briigadu…

Agora como nosso amigo falou:
o erro está na string sql:

“select * from formulario where id =‘id’”

vc está passando como int:
public void consultaID(int id) {

o correto seria

"select * from formulario where id =“id”

Como posso usar 2 aspas duplas em uma mesma linha? eu posso fazer isso que ele fez ai em cima?!

"select * from formulario where id =’ " + id + " ’ "
sem os espaços
tendeu

essas apostrofes (acho que é isso) rs… ’ ’ servem para que exatamente?!

é sintaxe sql …

entendi… E me dizem uma coisa… o try catch …

[code]try{ //Abre a conexão com o banco, onde o Registro for de numero 3 exclua-o, depois feche a conexão.
Statement stmt = conn.createStatement();

			stmt.executeUpdate("delete from formulario WHERE id = 3" );
			
			stmt.close();
		}catch (SQLException e){
			e.printStackTrace();[/code]

Nesse exemplo de cima… o meu “e” é o SQLException… e o printStackTrace() pra que realmente serve!!!

[quote=renatac]

Nesse exemplo de cima… o meu “e” é o SQLException… e o printStackTrace() pra que realmente serve!!! [/quote]

do javadoc

Prints this throwable and its backtrace to the standard error stream. This
 method prints a stack trace for this Throwable object on the error output 
 stream that is the value of the field System.err. The first line of output 
contains the result of the toString() method for this object. Remaining lines 
represent data previously recorded by the method fillInStackTrace(). The 
format of this information depends on the implementation, but the following 
example may be regarded as typical:

     java.lang.NullPointerException
             at MyClass.mash(MyClass.java:9)
             at MyClass.crunch(MyClass.java:6)
             at MyClass.main(MyClass.java:3)
     

o printStackTrace() imprime a pilha de erroa da execução que contem os metodos que não foram chamados por causa do erro

Para o banco de dados q vc utiliza identificar q isso é uma String…