Vincular Dados do Banco + Combo box + JSP + JSF + NetBeans[Resolvido!]

25 respostas
UMC

Olá pessoal to precisando de uma ajuda para fazer uma vinculação de dados para o Combo box!!
E aquela velha coisa de :o 1º Combo ->Estado 2º Combo -> Cidade e 3º uma tabela com lugares daquela cidade!!
Se alguem tiver exemplos e puder disponibilizar eu Agradeço!!
Obrigado pela atenção!!
vlw
abs

25 Respostas

G

Tem um exemplo que pode lhe ajudar aqui.

UMC

Vlw.
mais coloquei no NetBenas e ta dando erro!!
vlw
abs

UMC

Mais alguém ae! Por favor!

juniorsatanas

manda pra ca:
[email removido]

UMC

Mais eu nao fiz nada ainda nao sei como sair do lugar!!
vlw
abs

UMC

Alguém ae pra me ajudar por favor!!
ja vo entrar na terceira semana e n saiu nada!!
vlw
abs

juniorsatanas

Mano, primeiro vamos definir o que você quer fazer .

1 - eu quero X
2- levantamos os requisitos para X
3- escolhemos a maneira mais simples de fazer X
4- iniciamos o desenvolvimento de X
5- na duvida os colegas do guj ajudam

abraço.

UMC

Ok, vanos lá!!

eu quero
1-Tera que ter um Combo box que vai conter Estados que vinrao do Banco de dados!!
1.2-Tera um outro combo box que vai conter Cidades de acordo com o estado selecionado no 1 Bamco de dados!!
1.3 Tera uma tabela que sera preenchida com dados de clientes existentes na Cidade escolhida e estado escolhido Banco de dados!!

levantamos os requisitos para
2- Nao fço ideia do q seja!!

escolhemos a maneira mais simples de fazer
3- acreidto q o NetBenas!! com JSF

iniciamos o desenvolvimento de
4-dos itens citados la no nº 1!!

na duvida os colegas do guj ajudam
5-E agradeço as ajudas!!

Ok! esclarecido?
abraços
vlw

juniorsatanas

isso é fácil !

CRIA DUAS TABELAS : Que banco você vai usar ?
CIDADES ESTADOS

RELACIONAMENTO: 1 N

CIDADE 1: ---------------------:N ESTADOS

1 - Iniciei um projeto novo no netbeans, suporte a jsf + hibernate, edite o arquivo hibernate.cfg.xml (google monstra exemplos), que vai aparecer !
2 - criei uma classe gera banco no seu projeto, teste seu hibernate.cfg.xml

para você ir matando a curiosidade nos vamos usar reRender para ajaxiar o campo cidades !

após terminar isso me avisa !

abraço !

UMC

Opa ,so um coisa As tabelas sao as mesmas!!

UMC

Pronto o hibenate ja ta configurado “automaticamente”
Como faço pra testa n entedir !!
vlw

juniorsatanas

não cara !

não pode ser na mesma tabela ! tem que ser mestre detalhe !

juniorsatanas

hibernate.cfg.xml vai ficar ± assim

1. <!DOCTYPE hibernate-configuration PUBLIC  
   2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
   3. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
   4.   
   5. <hibernate-configuration>  
   6.     <session-factory>  
   7.      <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>  
   8.         <property name="hibernate.connection.url">jdbc:hsqldb:file:mydvdsDB</property>  
   9.         <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>  
  10.         <property name="hibernate.connection.username">sa</property>  
  11.         <property name="hibernate.connection.password"></property>  
  12.         <!-- JDBC connection pool (use the built-in) -->  
  13.         <property name="connection.pool_size">1</property>  
  14.         <!-- SQL dialect   
  15.         <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>-->  
  16.         <!-- Enable Hibernate's automatic session context management -->  
  17.         <property name="current_session_context_class">thread</property>  
  18.         <!-- Disable the second-level cache -->  
  19.         <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>  
  20.         <!-- Echo all executed SQL to stdout -->  
  21.         <property name="show_sql">true</property>  
  22.         <!-- Drop and re-create the database schema on startup  
  23.         tem que deixar essa propriedade ativa apos alguma modificação nas  
  24.         tabelas ou no mapeamento, e depois comentar novamente, pois ela apaga  
  25.         o que tem na tabela -->  
  26.         <property name="hbm2ddl.auto">update</property>  
  27.         <mapping class="hiberapp0.Shinigami"/>          
  28.         <mapping class="hiberapp0.Evento"/>  
  29.     </session-factory>  
  30. </hibernate-configuration>

gerabanco.java

package br.com.caelum.lojavirtual.util;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class GeraBanco {

public static void main(String[] args) {
Configuration conf = new AnnotationConfiguration();
conf.configure();
SchemaExport se = new SchemaExport(conf);
se.create(true, true);

}

}
juniorsatanas

veja qual a saida ! no netbeans ! poste aqui !

UMC

iii mano, ñ pode ser pq aki so tem uma tabela!! com essas informações que irei pegar!! Tabela n posso mexer pq e de um sistema ja pronto q estou recriando entao n posso mesmo mexer!!
Posso fazer views “Visoes” serve?
vlw
abs

UMC
o meu ficou assim!! o NetBeans q fez!!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/3Soft</property>
    <property name="hibernate.connection.username">postgres</property>
    <property name="hibernate.connection.password">postgres</property>
  </session-factory>
</hibernate-configuration>
vlw
juniorsatanas

NÃO FAZ NADA NO SERVIDOR AIDA…

Tu ta pegando um sistema clipper e fazendo web ? e isso ?

UMC

Não mano construindo so em JAVA !!
vlw

juniorsatanas

Tem QUE MOdelaR para 2 tabelas, pois em uma acho que nao da pra fazer mano !

UMC

mano d dar da pq o sistema existe!!
tem o mesmo BD !!
vlw

juniorsatanas

esse sistema e feito em que ?

UMC

Java JSP!!
vlw

juniorsatanas

Estado.java:

@Entity
@Table(name="estados")
public class Estado implements Serializable {

 private static final long serialVersionUID = -5582648910303813488L;

 @Id
 @GeneratedValue(strategy=GenerationType.IDENTITY)
 @Column(name="ESTADO_ID")
 private Long id;

 @Column(name="sigla")
 private String sigla; 

 @Column(name="nome")
 private String nome; 

 @OneToMany(mappedBy="estado", fetch=FetchType.LAZY)
 @Cascade(org.hibernate.annotations.CascadeType.ALL)
 private List&lt;Cidade&gt; cidades = new ArrayList&lt;Cidade&gt;();



get / set

Cidade.java:

@Entity
@Table(name="cidades")
public class Cidade implements Serializable{

 private static final long serialVersionUID = -2094704997130038211L;

 @Id
 @GeneratedValue(strategy=GenerationType.IDENTITY)
 @Column(name="CIDADE_ID")
 private Long id;

 @Column(name="nome")
 private String nome;

 @ManyToOne(cascade=javax.persistence.CascadeType.ALL)
 @JoinColumn(name="id_cid_est")
 private Estado estado;


get/set
&lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&gt;
&lt;%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%&gt;
&lt;%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%&gt;
&lt;%@ taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich"%&gt;
&lt;%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%&gt;

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
&lt;head&gt;
 &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;f:view&gt;
 &lt;h:form&gt;
 &lt;h:panelGrid columns="2"&gt;
 &lt;h:outputLabel for="estado" value="Estado " /&gt;
 &lt;h:selectOneMenu id="estado" value="#{regiaoMB.estado.id}"&gt;
 &lt;f:selectItem itemValue="" itemLabel="Selecione..." /&gt;
 &lt;f:selectItems value="#{regiaoMB.estados}" /&gt;
 &lt;a4j:support event="onchange" ajaxSingle="true" action="#{regiaoMB.actionCarregaCidades}" reRender="estado,cidade"/&gt;
 &lt;/h:selectOneMenu&gt;

 &lt;h:outputLabel for="cidade" value="Cidade " /&gt;
 &lt;h:selectOneMenu id="cidade" value="#{regiaoMB.cidade.id}"&gt;
 &lt;f:selectItem itemValue="" itemLabel="Selecione..." /&gt;
 &lt;f:selectItems value="#{regiaoMB.cidades}" /&gt;
 &lt;/h:selectOneMenu&gt;
 &lt;/h:panelGrid&gt;
 &lt;/h:form&gt;
&lt;/f:view&gt;
&lt;/body&gt;
&lt;/html&gt;
UMC

nisso: #{regiaoMB.estados}
de ond vem o regiaoMB?
vlw
abs

juniorsatanas
package br.com.serjaum.mb;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import org.hibernate.Session;

import br.com.serjaum.dao.CidadeDAO;
import br.com.serjaum.dao.EstadoDAO;
import br.com.serjaum.dao.HibernateUtil;
import br.com.serjaum.modelo.Cidade;
import br.com.serjaum.modelo.Estado;

public class RegiaoMB implements Serializable {

	private static final long serialVersionUID = -4281390476508498320L;

	private List&lt;SelectItem&gt; cidades = new ArrayList&lt;SelectItem&gt;();
	
	private Estado estado = new Estado();

	private Cidade cidade = new Cidade();
	
	public List&lt;SelectItem&gt; getEstados(){
		Session session = HibernateUtil.currentSession();
		EstadoDAO dao = new EstadoDAO(session, Estado.class);
		
		List&lt;Estado&gt; lista = dao.list();
		
		List&lt;SelectItem&gt; itens = new ArrayList&lt;SelectItem&gt;(lista.size());
		
		for(Estado s : lista){  
			itens.add(new SelectItem(s.getId(), s.getNome()));
		}
		
		return itens;
	}
	
	public void actionCarregaCidades(){
		System.out.println("id do estado selecionado &gt;&gt;&gt; " + this.estado.getId());

		this.cidades = this.getCidadesByEstado();
	}
	
	public List&lt;SelectItem&gt; getCidadesByEstado(){  
		Session session = HibernateUtil.currentSession();
		
		CidadeDAO dao = new CidadeDAO(session, Cidade.class);

		List&lt;Cidade&gt; cidades = dao.getCidadesByEstado(this.estado.getId());

		List&lt;SelectItem&gt; items = new ArrayList&lt;SelectItem&gt;(cidades.size());  
		
		for(Cidade c : cidades){  
			items.add(new SelectItem(c.getId(), c.getNome()));  
		}
		
		return items;
	}

	public List&lt;SelectItem&gt; getCidades() {
		return cidades;
	}

	public void setCidades(List&lt;SelectItem&gt; cidades) {
		this.cidades = cidades;
	}

	public Estado getEstado() {
		return estado;
	}

	public void setEstado(Estado estado) {
		this.estado = estado;
	}

	public Cidade getCidade() {
		return cidade;
	}

	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}
}
Criado 11 de janeiro de 2010
Ultima resposta 18 de jan. de 2010
Respostas 25
Participantes 3