0

Tipos de Tabelas no Mysql

logo_mysqlTipos de Tabelas no Mysql

No MySQL podemos definir vários tipos de tabelas, sendo que um banco de dados pode conter diferentes tipos de tabelas. Quando criamos uma nova tabela, você pode dizer ao MySQL que tipo de tabela criar. O tipo padrão é o MyISAM.

Abaixo segue um descrição rápida dos tipos de tabelas suportados pelo MySQL:

  • MyISAM: MyISAM é o tipo de tabela padrão no MySQL baseada no código ISAM possuindo várias extensões úteis, onde o índice é armazenado em um arquivo com extensão .MYI (MYIndex), e os dados são armazenados em um arquivo com a extensão .MYD (MYData). Você pode verificar/reparar tabelas MyISAM com o utilitário myisamchk.
  • Merge: Uma tabela MERGE (também conhecida como tabela MRG_MyISAM) é uma coleção de tabelas MyISAM idênticas. Você só pode fazer SELECT, DELETE, e UPDATE da coleção de tabelas. Se você fizer um DROP na tabela MERGE, você só está apagando a especificação de MERGE.
  • HEAP: As tabelas HEAP do MySQL utilizam hashing 100% dinâmico sem áreas em excesso. Não há espaços extras necessários para listas livres. Tabelas HEAP também não têm problemas com deleção + inserção, o que normalmente é comum em tabelas com hash:
  • InnoDB: O InnoDB provê o MySQL com um mecanismo de armazenamento seguro com transações (compatível com ACID) com commit, rollback, e recuperação em caso de falhas. InnoDB faz bloqueio a nível de registro e também fornece uma leitura sem bloqueio em SELECT em um estilo consistente com Oracle. Estes recursos aumentam a performance e a concorrência de multi-usuários. InnoDB é o primeiro gerenciador de armazenamento no MySQL que suportam restrições FOREIGN KEY.
  • BerkeleyDB ou BDB: Tem favorecido o MySQL com um mecanismo de armazenamento transacional. Tabelas BDB podem ter maior chance de sobrevivência a falhas e também são capazes de realizar operações COMMIT e ROLLBACK em transações.
0

Formulário com Frames Dinâmicos em JavaScript

jsFormulário com Frames Dinâmicos em JavaScript

Nesta postagem exemplifico um exemplo simples de como criar um formulário dividido em frames sanfonados. Ao clicar em suas labels podemos ocultar ou deixar visível o conteúdo do formulário.

formAccordion

Para obter o efeito sanfonado no seu formulário basta seguir  a implementação a seguir:

  • 1º Passo: Criar a Folha de Estilo, salve com o nome style.css.

  • 2º Passo: Criar o Javascript, salve com o nome jscript.js.

 

 

Na primeira função a ser carregada pelo navegador capturamos os elementos e os labels presentes em nossa página html, já na função  showBlock() definimos o evento de clique do mouse para esconder e mostrar a label clicada pelo usuário.

3º Passo: Criar o Formulário HTML e incorporar na página a folha de estilo e javascript.

 

Mantenha todos os arquivos criados no mesmo diretório, ou não se esqueça de ajustar a chamada de cada arquivo caso queria manter em diretórios diferentes.

0

CRUD completo com PHP – parte 07

phpFormulário de Alteração de Clientes com PHP e Mysql – Parte 07

Na parte 7 do tutorial CRUD com PHP e MySQL construiremos o formulário para alterar os dados do cliente, o formulário foi criado com a mesma estrutura do formcliente,php. Este formulário receberá como paramentro GET o código do cliente a ser alterado. Crie o formulário no diretório cadastroclientes do seu projeto com o nome formalterar.php.

O primeiro passo é recuperar o id do cliente passado via get pelo link do modulo exibirclientes.php, feito isso devemos realizar as consultas nas tabelas tb_cliente, tb_contato, tb_endereco, tb_formacao e tb_profissao baseando-se no id recuperado.

formalterar

Segue a implementação do formalterar.php com comentários nas rotinas realizadas.

Em cada input text a ser populado foi inserido em seu atributo value o atributo correspondente do php, exemplo:

 

Outro detalhe importante é setar um input hidden com o ID do cliente a ser alterado, exemplo:

 

No próximo post seguiremos com o modulo de alteração.

0

Gerando WebServices com JAX-WS

Java (2)Gerando WebServices com JAX-WS

A Java XML API for Web Services (JAX-WS) é uma biblioteca de Web Services para Java, que permite implementar serviços baseados nas normas XSD, WSDL e SOAP. A JAX-WS define o mapeamento de WSDL para Java e vice-versa. Com a JAX-WS é possível implementar Web Services partindo de um contrato WSDL ou partindo de código Java. Com a JAX-WS é também possível criar código cliente de invocação de Web Services.

Testando na Prática

Crie um projeto no eclipse com a seguinte estrutura:

prjws

Crie a classe WsServidor no pacote service e o SourceFolder wsdl.

Implementação do Serviço

Para implementação da classe de serviço utilizaremos as anotações @WebService e @WebMethod do pacote javax.

@WebService : representa uma interface ou classe de serviço.

@WebMethod: representa os métodos de uma interface de serviço.

@WebParam: representa os parâmetros de um método.

Gerando os artefatos do Serviço

Para gerar os artefatos do Serviço utilizaremos a ferramenta wsgen. Execute os comandos do wsgen apontado pro diretório raiz do projeto.

Para gerar com o WSDL, ServicePort e ServiceName use o comando a seguir, digite tudo em uma única linha:

Depois de gerados os artefatos com o wsgen o projeto deverá ficar com seguinte estrutura:

prjws2 Gerando o EndPoint do Serviço

Para publicar o Serviço, criaremos uma classe com o publicador do endpoint.

Para visualizar execute main para publicar o Serviço e digite em seu navegandor: http://localhost:8080/WsServidor/service

0

Criação de Web Service com Spring e Apache CXF

Java (2)Criação de Web Services com Spring Framework e Apache CXF

Nesta postagem implemento a criação de um web service básico utilizando o framework spring e o Apache CXF. O projeto de exemplo foi criado com a seguinte estrutura:

estrutprojBibliotecas do Projeto

Criação da Interface do Serviço

Na Interface do Serviço definiremos os métodos a serem implementados no WebService.

Criação do Serviço

Na criação do serviço deveremos implementar interface do mesmo e realizar as anotações para definição do web service e de seus métodos(@WebService, @WebMethod).

Gerando o WebService

Para a criação do web service usando o Framework Spring e o Apache CXF devemos criar um arquivo xml com a configuração do serviço, informando a classe definida com a anotação web service e o endpoint do serviço. Para isso criaremos o arquivo webservice-definition-beans.xml no diretório WEB-INF do WebContent do projeto.

Codificação:

Por fim configuramos o web.xml com a seguinte implementação:

Em um próximo post criarei o Client do Serviço para consumir o WebService.

4

CRUD completo com PHP – parte 06

phpCadastro de Clientes com PHP e Mysql – Parte 06

Nesta postagem criaremos uma lista com os clientes cadastrados no banco, além de exibir os dados dos clientes definiremos 3 links para visualizar, atualizar e remover um determinado cliente da base de dados. Segue o modelo da listagem:

listaphp

Codificação da Lista de Clientes:

Salve o script no diretório modulos, feito isso temos uma lista da tabela clientes, nos próximos posts realizaremos busca de clientes por nome com índices full text e busca por cpf. Alguns das imagens usadas nesse tutorial estão presentes no site https://www.iconfinder.com/.

2

Conversão de Jrprint em PDF

Java (2)

 

Conversão de Jrprint em PDF

Nesta postagem veremos como converter um arquivo com a extensão .jrprint em um arquivo pdf utilizando o framework jasperreports. Os arquivos .jrprint são gerados através de relatórios JasperReport. O sistema de declaração de imposto de renda salva seus relatórios com essa extensão, podemos usar o framework do jasper para gerar o PDF de um determinado arquivo .jrprint com poucas linhas de comandos.

Bibliotecas Utilizadas neste exemplo:

libsjasper

Segue a implementação:

  • Exemplo simples de Conversão usando o método main.

  • Exemplo de como gerar um .jar do Conversor

Para executar o jar basta executar o comando abaixo no diretório onde está salvo o .jar, e apontar qual é o diretório e nome do arquivo a ser convertido.

Exemplo:

conversorJrprint

Código simples mas funcional, caso haja necessidade de converter diversos arquivos podemos criar um formulário com AWT ou Swing para executar a conversão. Em uma próxima postagem colocarei um exemplo com um Jframe.

 

0

Conexão com o Banco de Dados com MyBatis

mybatisLogoConexão com o Banco de Dados com MyBatis

Nesta postagem realizaremos a conexão com uma base de dados postgres utilizando o framework myBatis. Primeiramente criaremos a base de dados uma tabela onde serão persistidos os dados.

Script do Banco de Dados

 

Criando o Projeto no Eclipse

Para este tutorial utilizo o Eclipse Juno e o Banco de Dados PostGres. Além das bibliotecas do MyBatis descritas abaixo:

bibliotecasMybatis

Download Libs MyBatis

No Eclipse definimos a seguinte estrutura de projeto:

estruturaProjetoMybatis

Classe PessoaVo

Primeiramente criaremos um exemplo simples com apenas os dados de contato de uma pessoa, nos próximos posts abordarei relacionamentos e consultas complexas.

O Arquivo de Configuração SQLMapConfig.xml

No arquivo SQLMapConfig.xml criado a raiz do projeto contêm as configurações  da conexão com o postgres, tais como a url e porta do banco, nome da base, o alias da classe a ser mapeada, o mapper de persitência, etc.

Codificação:

Configurações de Conexão do MyBatis:

Type Aliases – Apelidos

Um type alias é um nome menor para um tipo Java. É apenas relevante para a configuração em XML e só existe para evitar redundância de digitar o nome completo de uma classe.

Usamos PessoaVo como tipo no resultMap no arquivo PessoaSqlMap.xml  porque configuramos PessoaVo como apelido.

Environments – Ambientes

O MyBatis pode ser configurado para ser usado em vários ambientes. Isso ajuda a re-usar os mapeamentos XML e, vários bancos de dados. Você pode configurar vários ambientes, mas você pode escolher apenas UM ambiente por instância do SqlSessionFactory.

A ambiente padrão/default e o ID do ambiente acho que se auto-explica. Você pode dar o nome que você desejar, mas tenha certeza de que um deles seja o mesmo que o padrão.

Transaction Manager – Gerenciamento de Transações

Existem dois tipos de TransactionManager:

  • JDBC – esta configuração faz o uso das features de commit e rollback do JDBC diretamente. Depende da conexão do dataSource para gerenciar o escopo da transação.
  • MANAGED – esta configuração não faz nada. Nunca faz commit ou rollback. Deixa toda a responsabilidade para o container de gerenciar o ciclo de vida da transação. Alguns containers não esperam que isso seja feito, e se precisar fechar a conexão, é melhor setar a propriedade closeConnection para false.

Data Source

O element dataSource configure a fonte da conexão do JDBC usando a interface padrão do JDBC DataSource.

  • driver
  • url
  • username
  • password

Connection Factory

Toda aplicação que utiliza o MyBatis é centralizada numa instância do SqlSessionFactory. Uma instância do SqlSessionFactory pode ser adquirida usando o SqlSessionFactoryBuilder. O SqlSessionFactoryBuilder pode criar uma instância do SqlSessionFactory a partir de um XML ou a partir de uma instância customizada da classe Configuration. (Fonte: Loiane.com)

Configuração do Connection Factory

Mapeando a Classe PessoaVo

Para mapear a classe PessoaVo, criamos um xml com as configurações de persistência do objeto da classe no banco, para isso inserimos as queries de persistência no mapper abaixo:

Configuração do Mapper da classe PessoaVo

  • resultMap – descreve como carregar os objetos do banco de dados para os resultsets.
  • insert – query de insert mapeada.
  • update – query de update mapeada.
  • delete –  query de delete.
  • select – query de select mapeada.

Camada de acesso aos dados

Para que tudo funcione devidamente só resta a configuração do DAO da nossa classe PessoaVo.

Testando o projeto com MyBatis

Realizando o um teste básico do modelo de dados implementado.