Java php Javascript C/C++

Configuração do java-db, Derby Rede Local (LAN) Java

A utilização de um banco de dados instalado em um servidor de rede local de um empreendimento corporativo em que os dados são armazenados em arquivo no formato de um database relacional tem função no compartilhamento de uma base de dados aonde alguns usuário ou setores colaboram acessando para consultas e modificação dos dados conforme direitos fornecidos individualmente para os participantes. Um aplicativo cliente e servidor java com os drivers do java-db ou Derby foram utilizados neste tópico com uma configuração e exemplificacao em código java para a conexão e listagem dos dados de um database de exemplo o Datavendas.

O banco de dados relacional java-db ou Derby está disponíveis nos arquivos binários de instalação do JRE e JDK 1.7 e versões superiores e no projeto Apache Software Foundation com o nome Apache Derby em arquivos zipados. Existe distribuições deste software em versão comercial e opensource para os mais variados sistemas operacional 32 e 64 bits inclusive e que podem ser baixados das homepages de internet dos fabricantes Sun, Oracle e Apache.

Utilizaremos a seguinte alternativa: inicialização do servidor de banco de dados através do programa localizado no diretório bin de instalação do java-db ou Derby startNetworkServer, um programa padrão instalado o ij para a conexão, criação de um banco dados chamado Datavendas, criação da estrutura de tabelas, inclusão de alguns registros e o aplicativo java ServerApp.class para a conexão remota e listagem dos registros incluídos.

O hardware empregado inclui pelo menos dois microcomputadores e um switch, um com a instalação de um sistema operacional rede local (LAN) aonde será inicializado o progama java server de banco de dados neste inclusive há a necessidade da instalação dos programas mencionados nos parágrafos anteriores; o segundo computador será a estação de trabalho que acessará a base de dados criada no servidor, um switch é necessario para a configuração TCP/IP dos equipamentos envolvidos e para o funcionamento desta rede local ethernet.

O trabalho tem início no servidor com a configuração do programa padrão que carrega os drivers do banco de dados para o funcionamento cliente e servidor, o programa startNetworkServer foi modificado e passou a ser inicializado pela seguinte linha de commando resumida batch

 
@REM Inicializacao do programa server do java-db ou Derby
@REM 
java -cp "%DERBY_HOME%"\lib\derbynet.jar; org.apache.derby.drda.NetworkServerControl start -h 192.168.2.1 -p 1527
pause 

--------------------------------------------------------------------------------------------------------------------

#  Inicializacao do programa server do java-db ou Derby
#
java -cp "%DERBY_HOME%"/lib/derbynet.jar: org.apache.derby.drda.NetworkServerControl start -h 192.168.2.1 -p 1527

O arquivo padrão da instalação para a inicialização do servidor o startNetworkServer inicializa o servidor entretanto faltará a inclusão manual dos argumentos da linha de comando, o servidor é inicializado e parado pelos argumentos start/shutdown, um host local ou seu IP configurado pelo argumento -h e a porta por -p. Localize no seu servidor o seu endereço IP através das cofigurações de rede, a porta número 1527 é a padrão para este serviço. O programa no diretório bin do java-db ou Derby o sysinfo pode ser utilizado para a verificação da configuração do sistema quanto aos arquivos java necessários, utilize a linha de comando do arquivo .bat ou .sh a seguir para ver a sua configuração.


@REM  sysinfo exibe uma informacao da configuracao java
@REM 
java -cp "%DERBY_HOME%"\lib\derbyrun.jar; org.apache.derby.tools.sysinfo
pause

----------------------------------------------------------------------------

#  sysinfo exibe uma informacao da configuracao java
# 
java -cp "%DERBY_HOME%"/lib/derbyrun.jar: org.apache.derby.tools.sysinfo  

As variaveis de ambiente JDK_HOME, DERBY_HOME e CLASSPATH devem estar corretamente configurados para o funcionamento dos aplicativos java.

A rede local com seu protocolo de rede como por exemplo o TCP/IP deve estar ativada para a invocação do programa servidor e para o funcionamento da conexão com a estação de trabalho. A próxima configuração compreende no programa cliente java para a conexão através da rede ao servidor, criação do banco de dados Datavendas e inclusão de registros neste database.

Utilizamos um programa padrão para a conexão com uma instalação de um banco de dados java um programa instalado no diretório bin o ij para a conexão e criação da base de dados. A seguir mostramos o código batch aonde verificamos se o servidor está funcionando pelo argumento ping do programa NetworkServerControl e a inicialização resumida do ij.

@REM Ping servidor status da conexao utilizando o seu IP do servidor e a porta de conexao
@REM
java -cp "%DERBY_HOME%"\lib\derbynet.jar; org.apache.derby.drda.NetworkServerControl ping -h 192.168.2.1 -p 1527
pause
@REM ij e uma ferramenta de conexao compactada no arquivo jar do diretorio lib do arquivo derbytools.jar
@REM
java -cp "%DERBY_HOME%\lib\derbytools.jar"; org.apache.derby.tools.ij
pause

------------------------------------------------------------------------------------------------------------------

#  Ping servidor status da conexao utilizando o seu IP do servidor e a porta de conexao
#
java -cp "%DERBY_HOME%"/lib/derbynet.jar; org.apache.derby.drda.NetworkServerControl ping -h 192.168.2.1 -p 1527

# ij e uma ferramenta de conexao compactada no arquivo jar do diretorio lib do arquivo derbytools.jar
#
java -cp "%DERBY_HOME%\lib\derbytools.jar"; org.apache.derby.tools.ij
pause

Inicializado o prompt de comando do ij efetuamos a conexão digitando uma linha de comando configurada esta irá de uma vez conectar ao programa servidor utilizando o endereço de rede informado, criar o banco de dados Datavendas o banco de dados será criado criptografado e com senha de acesso para a sua inicialização, para qualquer sistema operacional esta linha de comando e a mesma.

CONNECT  'jdbc:derby://192.168.2.1:1527/Datavendas;create=true;dataEncryption=true;bootPassword=3z0215x64c';

A conclusão consiste na criação da estrutura das tabelas para consulta, inclusão e exclusão dos registros neste banco de dados, o exemplo abaixo exemplifica um texto processável pelo ij que pode ser copiado e colado no prompt deste programa.

create table produtos (id integer NOT NULL, empresa varchar(500) NOT NULL, cod_produto varchar(50), quantidade float, rg_fiscal varchar(200), desc_mercadoria varchar(100), valor_unitario float, valor_frete float, valor_total float, observacao varchar(1080), PRIMARY KEY (id));

Os drivers do java-db ou Derby apresentam duas opções de utilidade o org.apache.derby.jdbc.EmbeddedDriver servirá para a conexão com uma base de dados localmente no computador na inicialização do programa a outra org.apache.derby.jdbc.ClientDriver compõe uma conexão de rede com a base de dados localizada em um servidor em rede local (LAN). O código em java na próxima seção apresenta uma codificação simplificada do uso do driver na modalidade cliente e servidor, (1) campo texto representando o driver desejado (2) a URL da conexão (3) o carregamento do objeto driver (4) o estabelecimento da conexão e (5) criação do objeto Statement e do ResultSet para o processamento da pesquisa dos registro na tabela produtos como sendo os principais itens do programa respectivamente:

  • (1)   String driver = "org.apache.derby.jdbc.ClientDriver";
  • (2)   String URLconexao = "jdbc:derby://192.168.2.1:1527/Datavendas;create=false;bootPassword=3z0215x64c";
  • (3)   Class.forName(driver).newInstance();
  • (4)   conn = DriverManager.getConnection(URLconexao);
  • (5)   Statement stmt = conn.createStatement() ; ResultSet rs = stmt.executeQuery("SELECT * FROM produtos");


  • import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import javax.swing.border.*; import javax.swing.colorchooser.*; import javax.swing.filechooser.*; import javax.accessibility.*; /* As bibliotecas java.sql.* compreendem a API do JDBC da progamacao da linguagem SQL em java */ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class ServerApp { static Connection conn; public static void main(String[] args) { String driver = "org.apache.derby.jdbc.ClientDriver"; String URLconexao = "jdbc:derby://192.168.2.1:1527/Datavendas;create=false;bootPassword=3z0215x64c"; try { Class.forName(driver).newInstance(); JOptionPane.showMessageDialog(null, "Carregado o driver java-db, Derby apropriado ", "Caixa de Dialogo", 1); } catch (java.lang.Exception ld) { } try { conn = DriverManager.getConnection(URLconexao); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM produtos"); int y = 0; while (rs.next()) { System.out.println(++y + " Id: " + rs.getString(1) + " Empresa: " + rs.getString(2) + " Cod. Produto: " + rs.getString(3) + " Qtde: " + rs.getString(4) + " Preco Total: " + rs.getString(5)); } rs.close(); } catch (Exception e) { } } }


    O aplicativo java de banco de dados exemplificado utiliza a conexão com um database em rede local como descrito neste tópico o driver java-db ou Derby pode ainda ser substituido por outros drivers escritos em java para utilizar um banco de dados diferente deste e compilado em uma outra linguagem de programação. A interface gráfica e o código do seu programa pode ser aproveitado integralmente e utilizar como driver de database o SQLite, MySQL Server, PostgreSQL, o Microsoft Access e SQL Server entre outros aonde a expressao driver é substituida pela versão em java destes programas de banco de dados. A especificação JDBC 1.4 (Java Database Connectivity) dos fabricantes Sun e Oracle compreende em um conjunto de classes e interfaces (API) escritas em Java para o envio de instruções SQL para um banco de dado instalado localmente ou em um servidor de rede.