terça-feira, 2 de dezembro de 2014

Puxando os dados de uma tabela para o JCombobox para inserir em outra tabela:


No meu caso tenho uma tabela TipoQuarto que irei puxar somente o id para tabela Quarto.

Nesse caso é utilizando JPA com Swing.

O mapeamento na "class TpQuarto" é feito dessa forma:

   @OneToMany(mappedBy = "tpQuarto")  
   @Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)   
   @Column(name = "tpQuarto_id")  
   private List<Quarto> quartos;  

E o mapeamento na "class Quarto" é feito dessa forma:
   @ManyToOne  
   @JoinColumn(name = "tpQuarto_id", nullable = false)  
   private TpQuarto tpQuarto;  

...E em ambas as classes criasse os métodos get's e set's....


No JFrame de cadastro de Quarto é feita a seguinte configuração:


 public class JFrameQuarto extends javax.swing.JFrame {  
   TpQuarto tpQuarto = new TpQuarto();  
   TpQuartoDAO tpQuartoDAO = new TpQuartoDAO();  
   TpQuartoController tpQuartoController = new TpQuartoController();  
 
   public JFrameQuarto() {  
     initComponents();  
     try {  
       carregaJComboBox();  
     } catch (Exception ex) {  
       Logger.getLogger(JFrameQuarto.class.getName()).log(Level.SEVERE, null, ex);  
     }  
   }  
   public void carregaJComboBox() throws Exception{  
     for (TpQuarto cg : tpQuartoController.listaTpQuarto() ){  
       jComboBox1.addItem(cg);  
     }  
   }    


Desse modo carrega automaticamente no JComboBox, mas na hora de visualizar tudo que já foi feito aparecerá dessa forma:


Figura 1 Mostra de forma desconfigurada

Para funcionar de forma limpa para o usuario adiciona na classe de origem, no caso TpQuarto:
   @Override  
   public String toString() {  
     return getDescricao();  
   }  

Feito isso aparecerá dessa forma:

Figura 2 Mostra de forma desconfigurada
Espero ter ajudado!

terça-feira, 23 de setembro de 2014

Ruby on Rails - Instalando gem mysql2 no Windows

Pela grande dificuldade de tentar instalar o mysql2, na maioria das páginas que encontrava só mandava executar no cmd:

 gem install mysql2 -v '0.3.16'  

Que logo após tentar executar esse comando, aparecia a seguinte mensagem:


 Temporarily enhancing PATH to include DevKit...  
 Building native extensions. This could take a while...  
 ERROR: Error installing mysql2:  
     ERROR: Failed to build gem native extension.  

Continua
...........
 extconf failed, exit code 1  
 Gem files will remain installed in C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.  
 3.16 for inspection.  
 Results logged to C:/Ruby200/lib/ruby/gems/2.0.0/extensions/x86-mingw32/2.0.0/my  
 sql2-0.3.16/gem_make.out  

Mas para instalar a gem mysql2, é necessário baixar o mysql-connector-c disponível no sitio do MySQL, baixe a versão de 32-bits, mesmo seu sendo 64-bits. E baixe o arquivo em Zip, pois mais a frente precisaremos descompacta-lo.
Feito essa etapa, descompacta-lo em uma pasta fácil de localizar, agora vá na pasta
mysql-connector-c-6.1.5-win32\lib e copie o arquivo libmysql.dll e cole-o na pasta bin da instalação do seu ruby no meu caso foi esse caminho C:\Ruby200\bin.

Agora abra o cmd como Administrador e execute o seguinte comando:



 gem install mysql2 -- --with-mysql-dir=D:\Downloads\Compressed\mysql-connector-c-6.1.5-win32  

onde "D:\Downloads\Compressed\mysql-connector-c-6.1.5-win32"  é a pasta que você descompactou o mysql-connector. Pronto sua gem mysql2 0.3.16 está instalada!!


Por Nara Chaves

terça-feira, 8 de outubro de 2013

PDO (PHP Data Objects) Conexão em diversos bancos

É um modulo da linguagem PHP responsável por unificar o acesso a vários banco de dados utilizando uma mesma sintaxe, atuando ainda na camada de abstração do PHP.
Vantagem
- Fornece uma biblioteca limpa e consistente, para deixar unificadas as características das extensões que acessam os bancos de dados.
Desvantagem
- Não efetua a leitura e tradução das instruções SQL, é apenas realizada a fusão dos métodos mandados para extensão respectiva.

Características PDO
Flexibilidade -  Como o PDO carrega driver especifico do banco de dados em tempo de execução, não é preciso reconfigurar o PHP sempre que um banco de dados diferente for usado.
Desempenho – O PDO está escrito em C e compilado em PHP, o que lhe garante um aumento considerável no desempenho em relação a sua escritas em PHP.
Consistência de código – No PDO não existe inconsistência de código, pois é oferecida apenas uma interface unificada que é está disponível para qualquer banco de dados.
Características de orientação de objetos – Possui recursos de orientação a objetos, o que resulta em uma comunicação mais poderosa e eficiente com banco de dados.
Instalação
O PDO vem junto com o PHP 5.1 (e nas versões mais recentes), por isso quem possuir essa versão terá apenas verificar se no php.ini possui a linha:

extension=php_pdo.dll
extension=php_pdo_mysql.dll

Conexão para o banco de dados POSTGRESQL
New PDO(‘pgsql: dbname=example; user=usuário; password=senha; host=localhost’);


Fazendo a Conexão


use PDO;
    class Database{
        //variavel global (conexao com o BD)
        public static $db;

        //Nosso metodo de instancia
        public function instance(){
          //se não existir a conexao com o banco de dados ele cria, senão ele retorna a conexao.
            if (!self::$db) {
                //
                $db = new Database();
                //Cria a conexao
                self::$db = $this->connect();
            }
            //
            return self::$db;
        }
        // Nossa conexão com PDO
        private function connect(){
            //Instanciar o PDO, onde teste é o nome do meu banco,
            $db = new PDO('pgsql:dbname=teste;user=postgres; password=pgsql;host= localhost');
            //serve para tratamento de erro
            $db->setAttribute(PDO::ATTR_ERRMODE, ERRMODE_EXCEPTION);
            //
            return $db;
        }
    }
    //Instancia de Database
    $db = new Database();
    //Para inserir precisa chamar o instance
    $bancodedados = $db->instance();
    //inserindo dados
    $bancodedados->query("insert into cliente values (123124,'Maria','F',23456676)");

?>

Agora só executar que será inserido no banco de dados....