quarta-feira, 25 de novembro de 2009

Tutorial Hibernate

Devido a carência de bons tutoriais sobre Hibernate, estou disponibilizando este tutorial criado a partir de um trabalho meu de faculdade.
O Hibernate é uma ferramenta de mapeamento objeto-relacional, você não entendeu o que isso quer dizer? Bom, digamos que você tem uma aplicação Java desenvolvida através do modelo de orientação a objetos, e você precisa interagir com um banco de dados relacional, o Hibernate faria esta interface fazendo um mapeamento do banco sem que você tenha de alterar seu modelo OO. Parece simples, mas o Hibernate é bem chato com algumas coisas, mas uma vez configurado você não terá mais problemas.

DOWNLOAD


sábado, 21 de novembro de 2009

Funções MySQL no PHP

A linguagem PHP tem um relacionamento muito íntimo com o MySQl, existem várias funções criadas especificamente para trabalhar com este banco de dados. Vamos ver algumas delas:

mysql_connect()
Acessa o banco de dados
Exemplo:

$conexao = mysql_connect(“localhost”, “root”, “senha”);
mysql_select_db(“Nome do banco”, $conexao);
O valor de retorno é 1 se conectar, e 0 se o comando falhar.

mysql_query()
Para fazer consultas
Exemplo:

Primeiro definimos uma variável que conterá a consulta:
$insere = “INSERT INTO tabela_exemplo (nome, email) VALUES (“José da Silva”, “jose.silva@mail.com.br”);
Executamos a consulta:
mysql_query($insere, $conexao);

mysql_fetch_row()
Escrevendo dados do banco

$consulta = “SELECT nome, email FROM tabela_exemplo”;
Definimos uma variável para receber os dados da consulta:
$resultado = mysql_query($consulta, $conexao);

E por fim escrevemos os dados no browser:
A variável $linha irá pegar (fetch) todos as linhas de resultado:
while ($linha = mysql_fetch_row($resultado)) {
   echo “Nome: ”;
   printf("$linha[0]”);
   echo “Email: ”;
   printf(“$linha[1]”);
}

mysql_close()
Fecha a conexão ao banco

mysql_close(“Nome do Banco”);

Outras funções utéis:

mysql_affected_rows()
Retorna o número de linhas alteradas, inseridas ou excluidas pela última consulta com UPDATE, DELETE, ou INSERT.

mysql_change_user()
Muda o usuario em um banco de dados em uma conexão que já esta aberta.

mysql_character_set_name()
Retorna o nome do conjunto de caracteres usado para abrir a conexão.

mysql_data_seek()
Busca por uma linha determinada no resultado de uma consulta.

mysql_debug()
Efetua um DBUG_PUSH com a string dada.

mysql_dump_debug_info()
Faz o servidor escrever informações de depuração no log.

mysql_eof()
Determina quando a ulitma linha de um conjunto de resultados foi lida.

mysql_errno()
Retorna o número do erro para uma função MySQL.

mysql_error()
Retorna a mensagem de erro para uma função MySQL.

mysql_escape_string()
Escapa strings para serem utilizadas no MySQL, escapar é trocar algo que não pode (aspas, por exemplo) por caracteres aceitos pelo banco (barra aspas, no exemplo).

mysql_fetch_field()
Retorna o tipo do próximo campo na tabela.

mysql_fetch_field_direct()
Retorna o tipo de um campo da tabela, dado um número do campo.

mysql_fetch_fields()
Retorna um vetor com todas as estruturas do campo.

mysql_fetch_lengths()
Retorna o tamanho de todas as colunas da linha atual.

mysql_field_seek()
Coloca o cursor de busca da em uma coluna específica.

mysql_field_count()
Retorna o número de colunas resultantes da consulta mais recente.

mysql_field_tell()
Retorna a posição do cursor de campos usado pelo último mysql_fetch_field().

mysql_free_result()
Libera a memória usada por um resultado.

mysql_get_client_info()
Retorna uma string com a versão do cliente.

mysql_get_client_version()
Returna o número da versão do cliente.

mysql_get_host_info()
Retorna uma string descrevendo os parâmetros da conexão.

mysql_get_server_version()
Retorna o número da versão do servidor como um inteiro (disponível somente a partir da versão 4.1).

mysql_get_proto_info()
Retorna a versão do protocolo usado para a conexão.

mysql_get_server_info()
Retorna o número da versão do servidor.

mysql_info()
Retorna informações sobre a consulta executada mais recentemente.

mysql_init()
Aloca ou inicializa um objeto MYSQL.

mysql_insert_id()
Retorna o ID gerado para uma coluna AUTO_INCREMENT pela consulta anterior.

mysql_kill()
Mata uma thread dada.

mysql_list_dbs()
Retorna o nome do banco de dados que coincidem com uma expressão regular.

mysql_list_fields()
Retorna o nome dos campos que coincidem com uma expressão regular.

mysql_list_processes()
Retorna uma lista das threads atuais do servidor.

mysql_list_tables()
Retorna os nomes de tabelas que coincidem com uma expressão regular.

mysql_num_fields()
Retorna o número de colunas em um conjunto de resultados.

mysql_num_rows()
Retorna o número de linhas em um conjunto de resultados.

mysql_options()
Define opções de conexão para mysql_connect().

mysql_ping()
Verifica se a conexão ao servidor está funcionando, e se necessário se reconecta.

mysql_query()
Executa uma consulta SQL especificada com uma string terminada com null.

mysql_real_connect()
Conecta no servidor MySQL (equivalente a mysql_connect()).

mysql_real_escape_string()
Escapa caracteres especiais em uma string para ser utilizada em uma instrução SQL (equivalente a mysql_escape_string()).

mysql_real_query()
Executa uma consulta SQL especificada como uma string fixa.

mysql_reload()
Informa ao servidor para recarregar a tabela de permissões

mysql_row_seek()
Busca por um offset de linha no resultado, usando o valor retornado de mysql_row_tell().

mysql_row_tell()
Retorna a posição do cursor de linhas.

mysql_select_db()
Seleciona um banco de dados (para servidores onde existe mais do que um banco).

mysql_set_server_option()
Define uma opção para a conexão (como multi-statements).

mysql_sqlstate()
Retorna o código de erro SQLSTATE para o último erro.

mysql_shutdown()
Desliga o servidor de banco de dados.

mysql_stat()
Retorna o status do servidor como uma string.

mysql_store_result()
Recupera um resultado completo para o cliente.

mysql_thread_id()
Retorna a identificação da thread atual.

mysql_thread_safe()
Retorna 1 se o cliente foi compilado como thread-safe.

mysql_use_result()
Inicia um resultado recuperado registro por registro.

mysql_warning_count()
Retorna a contagem do aviso da instrução SQL anterior.

mysql_commit()
Faz um commit na transação (disponível somente a partir da versão 4.1).

mysql_rollback()
Faz um roll back na transação (disponível somente a partir da versão 4.1).

mysql_autocommit()
Liga ou desliga o modo autocommit (disponível somente a partir da versão 4.1).

mysql_more_results()
Verifica se não existem mais resultados (disponível somente a partir da versão 4.1).

mysql_next_result()
Em execuções de consultas múltiplas, retorna e reinicia o próximo resultado (disponível somente a partir da versão 4.1).

sexta-feira, 6 de novembro de 2009

Script de Criação de Tabelas no SQL Server

Para quem quiser aprender como fazer um script de criação de tabelas é só baixar este arquivo SQL exemplo, além das tabelas também existem exemplos de criação de índices e constraints default e check.


Se tudo correr bem na execução do script ele irá criar uma estrutura igual ao diagrama a seguir.

terça-feira, 3 de novembro de 2009

Arquivos de Parâmetros PFILE e SPFILE do Oracle

Devido principalmente à semana de provas da faculdade, dei uma pausa rápida nas postagens, mas agora estou voltando com força total.
Além dos Control Files o Oracle ainda tem dois tipos de arquivos de parâmetro, estes arquivos são lidos na inicialização do banco de dados. Quando você inicializa a instância o Oracle verifica o conteúdo do diretório de parâmetros ($ORACLE_HOME/database no Windows ou $ORACLE_HOME/DBS no Linux), e procura primeiramente o SPFILE e depois o PFILE e por fim um arquivo init.ora (forma antiga do Oracle guardar parâmetros), caso ele não encontre nenhum destes arquivos a inicialização falha.

PFILE

O PFILE é um arquivo texto, dentro dele estão guardadas os parâmetros de configuração do banco de dados. Entre outras coisas estes parâmetros informam a quantidade de memória a ser alocada, onde estão os arquivos do banco de dados e onde gravar os arquivos necessários ao funcionamento do banco.
Como o PFILE é um arquivo de texto puro, ele pode ser facilmente editado no VI do UNIX ou no Notepad do Windows. Normalmente ele tem o nome de init.ora, onde SID é a identificação de seu banco de dados, exemplo se seu SID é bdteste então seu PFILE será nomeado como initbdteste.ora

SPFILE

Diferente do PFILE, o SPFILE é um arquivo binário e seu conteúdo não pode ser editado.
Para verificar se ele existe, use o comando:

SHOW PARAMETER SPFILE;

Embora não possa ser editado diretamente, através do comando ALTER SYSTEM você pode mudar seus parâmetros. Embora pareça ser mais fácil usar um PFILE, o SPFILE traz maiores benefícios, pois ele é incluído no backup feito pelo RMAN toda vez que é alterado, o que garante uma recuperação menos problemática em caso de falhas (falarei sobre o RMAN no futuro), a Oracle também introduziu várias rotinas de otimização automática do banco baseadas no uso do SPFILE, mas um dos maiores benefícios do SPFILE é que você pode fazer mudanças dinâmicas (com o banco em uso) em parâmetros persistentes, estas alterações são efetuadas usando o comando ALTER SYSTEM, como no exemplo a seguir:

ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=10G;

Um SPFILE usa o mesmo formato de nome que um PFILE, exceto pela palavra SPFILE que fica no lugar de INIT. Por exemplo, se o seu ORACLE_SID é bdteste, o nome do SPFILE será spfilebdteste.ora.

Administrando o PFILE e o SPFILE

A sua maior preocupação com os SPFILE e PFILES será em manter cópias de backup deles, como dissemos antes você pode usar o RMAN para fazer isso, ou pode fazer o backup manualmente. Como o PFILE é apenas um arquivo texto, você pode copia-lo para outro diretório sem afetar a instância, mas no caso do SPFILE, você precisaria primeiro converte-lo em um PFILE, para fazer isso use o seguinte comando:

CREATE PFILE FROM SPFILE;

Será criado um PFILE chamado init.ora no diretório $ORACLE_HOME/database (Windows) ou no $ORACLE_HOME/dbs (Linux/Unix).
Você também pode gravar o PFILE em um outro diretório de sua preferência, basta acrescentar ao comando:

CREATE PFILE=//BACKUP.ORA FROM SPFILE;

Você também pode criar um SPFILE a partir do PFILE que você copiou, usando o comando:

CREATE SPFILE FROM PFILE=/PATH/TO/BACKUP.ORA

Atenção: se o banco de dados esta usando o SPFILE, antes de usar este comando você precisa parar o banco de dados com o comando:

SHUTDOWN IMMEDIATE;

Para ver quais os valores atuais dos parâmetros do banco de dados, use a view dinâmica V$PARAMETER.