Banco de Dados em Disquete
A JDBC da linguagem Java torna possível à conexão com praticamente todos os bancos de dados conhecidos, isto abrange desde o Adabas (banco de grande porte - mainframe) a bancos que cabem em um único disquete. Neste momento imagino que você está pensando que estou me referindo a bancos de dados do tipo TXT sem nenhuma interação. Errou longe, o banco a qual me refiro possui acesso JDBC aceita cláusulas SQL além de possuir integridade relacional, transações e Java Stored Procedures, estou me referindo ao Hypersonic SQL projeto de Thomas Muller, ou melhor, a sua versão Open Source HSQLDB, as tabelas podem ficar em memória ou persistentes no HD. Completamente escrito em Java, pode ser baixado no endereço http://hsqldb.sourcefourge.net.
Se você não conhece nada sobre a JDBC vamos a alguns passos básicos, a sua conexão se processa através da disponibilidade de um Driver de conexão isso é feito com a seguinte instrução:
Class.forName("org.hsqldb.jdbcDriver");
Após este comando utilizamos um gerente para obter a conexão que ficou disponibilizada e a capturamos com um objeto do tipo Connection, do seguinte modo:
Connection con = DriverManager.getConnection("jdbc:hsqldb:file:teste", "sa", "");
No caso do HSQLDB o teste se refere ao nome da database. De posse da conexão necessitamos armar um modo de conversar com o banco, que poderá ser:
1. De maneira direta, através de um objeto Statement – de modo a passar comandos diretos para o banco, do tipo: SELECT * FROM tabela WHERE cod = 2
2. De maneira parametrizada, através de um objeto PreparedStatement – de modo a pré-preparar um comando e em seguida realizando instruções seguidas, do tipo: SELECT * FROM tabela WHERE cod = ?
3. De maneira de chamadas, através de um objeto CallableStatement – de modo a executar uma chamada a uma Stored Procedure do banco de dados (ou a uma função deste), do tipo: call sp30()

Neste exemplo vamos colocar um simples statement para criarmos nossa tabela:
Statement stm = con.createStatement();
Temos agora duas possibilidades de executar, através de um comando de modificação (create, drop, alter, insert, update ou delete) que lhe retornará um tipo inteiro indicando quantas linhas foram processadas, ou através de um comando de consulta (select) que neste caso lhe retorna um objeto matrix conhecido por ResultSet. Neste momento vamos realizar o primeiro comando para termos a criação da nossa tabela:
stm.executeUpdate("CREATE TABLE frase(" +
"numFrase int not null
...
Exibição do post interrompida. Para ler conteúdo completo,
clique aqui