sexta-feira, 26 de agosto de 2016

Meetup Java São Paulo

Javeiros, o décimo segundo Meetup vai rolar dia 01/09/2016 às 19h30 na Caelum, perto do Metrô Vila Mariana. Estão todos convidados.

Agenda:

  19:30h - Aumente sua produtividade com Spring Boot - Fernando Boaglio

  20:30h - Coffee break / networking!

  20:45h - Ecossistema Spring Cloud  - Rafael (Netshoes)

Local:

Caelum - Ensino e Inovação,  Rua Vergueiro, 3185 - segundo andar

Conto com a presença de todos. :D

Link do Evento para se inscrever e confirmar presença: Meetup Java São Paulo

sexta-feira, 19 de agosto de 2016

Comandos básicos MySQL


  • Conectando ao MYSQL

Com o MySQL já instalado na sua maquina, para fazer uma conexão com o servidor MySQL, podemos entrar com o seguinte comando no prompt ou terminal:
mysql -h NOME_DO_SERVIDOR -u NOME_DO_USUARIO

Após dar o comando, o sistema vai pedir a sua senha de usuário. Se você instalou o MySQL no seu próprio PC, você pode usar também localhost no lugar de NOME_DO_SERVIDOR.

Ou você pode se conectar com o root, basta usar o seguinte comando:
mysql -u root -p

  • Criando um banco de dados no MySQL
Para criar um Banco de Dados no MySQL usamos o comando CREATE DATABASE seguido do nome do seu Banco de Dados, uma boa pratica é deixar com o mesmo nome do seu projeto. exemplo:

CREATE DATABASE nome_do_banco;

Para ver todos os bancos de dados existentes no servidor usamos o comando:

SHOW DATABASES;

Em seguida selecionamos/entramos nesse Banco que criamos para podermos criar nossas tabelas, e realizar outras operações. Usando o comando:

USE nome_do_banco;

  • Criando uma Tabela no seu Banco de Dados
Para criarmos uma tabela dentro do nosso Banco de Dados usamos o comando CREATE TABLE seguido do nome da tabela que queremos criar. Exemplo:

CREATE TABLE `usuarios`
`id_usuario` INT (11),
`nome` VARCHAR (255),
`telefone` INT (15),
`data` DATETIME DEFAULT '0000-00-00 00:00:00'
);

O campo id_usuario será um número inteiro com até 11 caracteres, já o campo nome será VARCHAR que significa que é um campo de Texto com 255 caracteres, o campo Telefone que também é um numero inteiro com 15 caracteres, e por fim o campo data e hora DATETIME que por padrão DEFAULT preenche a data seguida da hora nesse formato  0000-00-00 00:00:00
  • Exibindo suas Tabelas
Para exibir as tabelas que foi criada usamos o comando:

SHOW TABLES;

E para ver as informações das suas tabelas, usamos o comando DESCRIBE ou DESC:

DESCRIBE usuarios;
  • Adicionando informações na tabela
Para adicionarmos os dados na nossa tabela usamos o comando  INSERT INTO iseguido do nome da tabela e entre parenteses o nome dos campos, fechamos, abrimos outro parenteses e colocamos as informações para cada campo. Exemplo:

INSERT INTO `usuarios` (`id_usuario`,`nome`,`telefone`, 'data') 
VALUES (1,'Melissa Lobo','22012201', '2016-08-19 12:15:41');

INSERT INTO `usuarios` (`id_usuario`,`nome`,`telefone`, 'data') 
VALUES (1,'Bruno Marinho','99012201', '2016-08-19 12:15:41');
  • Exibindo os Registros da sua Tabela
Para exibir as informações que adicionamos na nossa tabela, usamos o comando SELECT FROM que seleciona toda a tabela, seguido do nome da tabela no caso usuarios; Exemplo:

SELECT FROM usuarios;
  • Excluindo um Registro da sua Tabela
Para aparar alguma informação usamos o comando  DELETE FROM seguido do nome da tabela, seguido do comando WHERE que significa onde, nome da coluna é igual ao nome do valor do campo. Exemplo:

DELETE FROM clientes WHERE nome'Bruno Marinho';
  • Excluindo sua Tabela ou Banco (Para Sempre)
Para excluir a tabela ou o bando inteiro basta usar o comando DROP seguido do nome da tabela, ou nome do Banco de dados, mas lembre-se que ele vai excluir sua tabela ou Bando de Dados inteiro com todos os registros para sempre, por isso tome muito cuidado com esse comando. Exemplo:

Removendo a Tabela:
DROP TABLE nome-da-tabela;
ou, Removendo o Bando de Dados:
DROP DATABASE nome-do-banco;
  • Atualizando um Registro da sua Tabela
Para atualizar alguma informação usamos o comando UPDATE seguido do nome da tabela, seguido de SET que configura o campo para receber o novo valor, onde o id for igual ao que você definir, por isso toda tabela que usamos colocamos o campo id, para que assim fique mais facil localizar, atualizar e excluir um registro. Exemplo:

UPDATE usuarios SET telefone=33003300 WHERE id_usuario= 1;

Bom acho que esses são os básico, se precisarem de mais algum fiquem avontade para perguntar, futuramente posto umas queries mais complexas e legais. 

Melissa Lobo.

terça-feira, 9 de agosto de 2016

Ciclo de vida de uma requisição JSF

O ciclo de vida de uma requisição JSF compreende um conjunto de etapas realizadas pelo Framework para a criação/restauração e exibição das páginas ao usuário. Essas etapas são responsáveis por capturar os dados enviados pela UI, verificar a validade dos mesmos, aplicar esses dados às regras de negócio e exibir o resultado do processamento. Assim, o entendimento deste ciclo é de extrema importância para o desenvolvedor que precisa lidar com este Framework. A Figura abaixo representa as etapas de uma requisição JSF.

Baseando-se no fluxo mostrado, podemos descrever as ações realizadas em cada fase da seguinte maneira:
  • RESTORE_VIEW (Criar ou Restaurar a view): é a primeira fase do JSF e visa criar ou restaurar (no caso de uma página já requisitada) a árvore de componentes de uma página. Caso seja a primeira requisição à página, o framework cria uma nova árvore de componentes e associa a ela e caso não seja a primeira requisição, o framework restaura a árvore de componente já existente.
  • APPLY_REQUEST_VALUES (Aplica valores do usuário): nesta fase são atribuídos os valores que foram enviados na requisição para seus respectivos componentes da árvore de componentes. Como os dados coletados no formulário HTML são transferidos na requisição como String, o JSF também armazena essas informações na árvore de componentes como String;
  • PROCESS_VALIDATIONS (Certifica que os valores estão corretos): depois de completada a fase anterior, é iniciada a fase de processar conversões e validações como, por exemplo, validar uma formatação de uma data ou até mesmo verificar se determinado campo está sendo informado. Assim, caso ocorra algum erro, as informações são armazenadas no FacesContext e o fluxo é direcionado para a fase Renderiza a view para construir a resposta. Caso contrário, o fluxo segue para a próxima fase.
  • UPDATE_MODEL_VALUES (Atualiza o modelo com valores válidos): se tudo ocorreu bem na fase anterior, o JSF já tem certeza que pode atualizar os valores dos atributos do bean gerenciado com os valores contidos na árvore de componentes através da utilização dos métodos get e set;
  • INVOKE_APPLICATION (Busca uma nova view se necessário): depois de passar por todas as fases anteriores, é nesta fase que serão tratados as ações e os eventos da lógica de negócio da aplicação. É aqui que o desenvolvedor vai determinar o que será feito com o que foi aplicado ao modelo. Assim, podemos determinar nesta fase qual será a próxima página que será exibida para o usuário;
  • RENDER_RESPONSE (Renderiza a view): finalmente o ciclo de vida chega ao fim. Nesta fase será feita a codificação da árvore de componentes, transformando-a em HTML (+ CSS e JS) e exibindo-a no navegador do cliente.

segunda-feira, 8 de agosto de 2016

O que é o JavaServer Faces ?

O JSF é um Framework MVC para sistemas web baseado em componentes que auxilia bastante a construção de aplicações desse tipo com a tecnologia Java. Esses componentes são colocados em formulários de páginas e ligados a objetos Java de forma a prover suporte a várias características presentes no Framework, tais como: mecanismos de manipulação de eventos, validações de informações enviadas pelos clientes, navegação entre páginas, entre outras. Assim, com essa tecnologia torna-se mais fácil a construção de interfaces com o usuário pelo fato de o desenvolvedor poder implementar as aplicações simplesmente utilizando componentes visuais reusáveis.

Devido à existência destes componentes na interface, toda página JSF é um documento XML com namespaces, recurso utilizado para importar e possibilitar o uso de componentes HTML do JSF. Alguns exemplos de namespaces são: xmlns:h, xmlns:f e xmlns:ui.

A partir da declaração destes os componentes são utilizados na interface com o usuário e ligados a objetos Java – conhecidos como JavaBeans – através da utilização da tag <h:form/> e dos métodos get e set das classes. Dessa forma, os componentes de UI que serão vinculados às propriedades de um JavaBean devem, necessariamente, fazer parte de um formulário JSF, pois é através dele que o JSF envia e recebe dados do servidor. A seguir é apresentada a declaração da tag <h:form/>:

   <h:form id="form1">
       <!-- componentes JSF de interface com o usuário devem ser colocados aqui -->
  </h:form> 

No lado do servidor, cada JavaBean que tenha atributo vinculado a alguma página deve possuir a anotação @ManagedBean sobre o nome da classe, para que seja gerenciado pelo framework JSF e permita a ligação entre as regras de negócio da aplicação e a camada de visualização. Essa anotação possui ainda um atributo chamado name, não obrigatório, que representa o nome dado ao bean gerenciado. Ademais, para definir o ciclo de vida de cada um dos beans conforme a necessidade do projeto, é possível especificar o seu escopo fazendo uso de uma das anotações analisadas a seguir:

@ApplicationScoped: especifica que existirá somente uma instância da classe em toda a aplicação, ou seja, todos os usuários terão acesso à mesma instância;

@SessionScoped: garante a existência de uma instância para cada usuário que utiliza a aplicação;

@ViewScoped: relaciona a instância do bean gerenciado à página. Assim, enquanto essa página estiver sendo manipulada pelo usuário, o bean estará disponível;

@RequestScoped: garante que existirá uma instância pelo tempo de duração da requisição feita pelo usuário;

@NoneScoped: cada vez que houver uma chamada a uma propriedade ou método da classe bean, será criada uma nova instância. Neste caso a instância não terá ligação com qualquer escopo da aplicação;

@CustomScoped: essa anotação permite a criação de escopos personalizados. Para isso, a instância de uma classe bean é armazenada em uma interface do tipo java.util.Map <K,V> e disponibilizada para uma página ou um conjunto de páginas da aplicação.