Java DB e dispositivos móveis st1\:*{behavior:url(#ieooui) }

Java DB e dispositivos móveis

 

O número atual de SGBD´s que os desenvolvedores podem usar é extenso, porém, se filtrarmos por SGBD´s que também possam ser usados no ambiente móvel, este número cai drasticamente. Neste pequeno texto, iremos falar brevemente do Java DB, um banco de dados 100% Java que pode ser usado na plataforma Java SE, Java EE e, inclusive na Java ME. O Java DB começou em 1996, com o projeto Cloudscape, em 2004 foi incorporado ao projeto Apache. Sua idéia tem muitos pontos em comum com o DB2, tendo limites e características semelhantes.

 

Para quem já utiliza a linguagem Java, esta pode ser uma ótima opção, porque o Java DB é construído 100% Java, além de ser recomendado pela Sun. Outras características importantes do banco de dados:

  • Suporte ao JDBC 4;
  • Simples de embarcar em uma aplicação (basta colocar o derby.jar no classpath de sua aplicação);
  • Administração zero para dispositivos móveis e muito simples para uso desktop;
  • Tamanho médio de 2MB

 

E sobre a possibilidade de sua utilização com o Java ME? Porque o RMS ainda existe? Calma, infelizmente o Java DB ainda não está disponível para a configuração CLDC, somente para a CDC, versão 1.1. Há alguns pontos importantes que precisam ser conhecidos. Se a versão do seu Java DB é menor que a 10.1.1, não existe suporte para a Java ME. Se a versão é maior que a 10.1.1 e menor que a 10.3.1.4, CDC/FP 1.0 também é suportado. O Java DB tem suporte ao perfil Foundation Profile (FP) da CDC, sendo assim, ela também oferece suporte aos perfis que são subconjuntos da FP, como o Personal Basis Profile.

 

A codificação é mais próxima do uso JDBC no Java SE, do que a persistência de dados com o Record Management System. Veja a Listagem 1 com um pequeno trecho de código:

   

1: EmbeddedSimpleDataSource ds = new EmbeddedSimpleDataSource();

2: String dbName = "simpleMobileDB";

3: ds.setDatabaseName(dbName);

4: ds.setCreateDatabase("create");

5:         

6: Connection conn = null;

7: Statement s = null;

8: PreparedStatement ps = null;

9: ResultSet rs = null;   

10:

11: try {

12:     conn = ds.getConnection();

13:     s = conn.createStatement();

14:

15:     s.execute("create table streetaddr(num int, addr varchar(40))");

16:         

17:     s.execute("insert into streetaddr values (1956, 'Dado')");

18:                       

19:     ps = conn.prepareStatement("update streetaddr set num=?, addr=?

                                   where num=?");

20:           

21:     ps.setInt(1, 180);

22:     ps.setString(2, "Grand Ave.");

23:     ps.setInt(3, 1956);

24:     ps.executeUpdate();

25:

26: } catch (SQLException e) {}

 

O uso do Java DB no Java SE permite o uso da classe java.sql.DriverManager, porém, no Java ME, é necessário utilizar a classe EmbeddedSimpleDataSource (linha 1). A linha 2 especifica o nome do database, a linha 3 configura o nome da base de dados que será acessada pelo Java DB. A linha 4 permite que o database seja criado automaticamente se ele não existir.

As linhas seguintes do código servem apenas para mostrar que o uso do Java DB no ambiente ME se assemelha em muito com o ambiente desktop, inclusive utilizando chamadas SQL.

Infelizmente, o Java DB ainda não está disponível na configuração CLDC, então, teremos que conviver com o RMS mais algum tempo, ou, com o Floggy e outros frameworks que facilitam a persistência de dados. Porém, assim como o uso de smartphones cresce exponencialmente, a implementação da CDC pode ser implementada em um número de dispositivos bem maior do que o atual. Sendo assim, é interessante, como programadores Java ME, conhecermos, ao menos que a essência, deste banco de dados chamados Java DB.