[Dica] - Banco de dados Desktop (Resolvido)

Olá GUJ! :slight_smile:

Oi pessoal. Tô atualmente tendo que resolver um problema quanto a banco de dados. Estou querendo adicionar a capacidade de ter um banco de dados para desktop em qualquer aplicação que eu faça. Eu não entendo muito de banco de dados ainda, só tenho 1 ano de experiência em Java e, tô querendo uma dica do que posso usar para ter um banco de dados em um programa desktop. Fazer pesquisas rápidas, guardar dados, consultar, todas essas coisas. Vocês que são mais experientes devem saber, certo?

Eu atualmente ando estudando Hibernate, e confeso, dei uma parada pois tive outras coisas para fazer. Criei até um tópico aqui sobre Hibernate e o usuário romarcio estava me ajudando. Queria até pedir desculpas por deixar o tópico parado e não responder nada a ele. Quando eu tiver mais tempo, acredite, eu vou voltar naquele tópico e continuar a resolução de meu problema junto dele e de todos os que quiserem me ajudar.

Como atualmente estudo Hibernate, e eu não conheço bem ainda este framework, também gostaria de saber se posso usar o próprio Hibernate que é orientado a objeto, na hora de criar programas com banco de dados para desktop.

Aguardo uma resposta e obrigado pela atenção de todos. :wink:

Até, Litium.

Então dá para usar o hibernate normalmente em um ambiente desktop, aqui na empresa onde trabalho temos 2 aplicativos desktop que se comunicam com 2 tipos de banco de dados, um deles esta instalado em um servidor onde o aplicativo desktop se conecta no banco de dados localizado no servidor.

Outros tipos de bancos que utilizamos aqui são HSQL e o H2, a caracteristicas desses banco é um pouco direfente, eles são feitos em puro java e você pode realizar a persistencia local sem haver a necessidade de um servidor, mas claro que isso depende da aplicação que você esta desenvolvendo.

Da uma pesquisada nesses tipos de banco de dados, segue alguns links:

http://www.h2database.com/html/main.html
http://hsqldb.org/

Falou.

Olá cvinicius!

Então quer dizer que eu posso utilizar o próprio Hibernate em um aplicativo desktop? Digo, sem estar ligado a um servidor ou sem ter de fazer o usuário instalar o mySQL, por exemplo? Porque acredite, eu sei que o Hibernate pode ser usado para desktop numa boa. Mas o sistema de gerenciamento de banco de dados (é esse o nome, né?) como o mySQL, por exemplo, necessita que o usuário instale o mySQL na máquina, não é? Oh, se eu estiver falando besteira, me avisem! Não entendo muito de banco.

Agora que você falou, no outro tópico com o romarcio, eu estava justamente tirando umas dúvidas com ele sobre HSQL. Estou (estava, mas vou voltar) lendo atualmente um livro de Hibernate, “Java Persistence com Hibernate”, e logo no começo ele fala do HSQL. Pelo que eu vi, o HSQL permite que eu salve os dados da aplicação, se eu quiser, em disco e ainda permite que eu use orientação a objeto devido ao Hibernate, correto? Seria uma boa.

Quanto ao H2, eu nunca ouvi falar. :frowning:

Vou dar uma olhada nos links que você me mandou cvinicius. Obrigado pelas dicas. Se alguém mais conhecer algum outro tipo de banco de dados que eu possa utilizar com finalidades apenas para desktop (não necessito necessariamente agora utilizar bancos de dados que sejam via internet ou servidores), eu ficarei muito grato.

Abraços GUJ. :wink:

Litium.

litium,

Hibernate é uma coisa. SGBD é outra.
O que o cvinicius disse é que você pode usar um banco de dados embarcado (HSQLDB, Derby, etc.).
Você não consegue fugir de usar um SGBD entendeu?

[]'s

Olá davidbuzatto!

É eu tô meio confuso mesmo. Calminha… Eu sei que o Hibernate é um Framework (em “resumo cuspido”, conjunto de classes e API com função própria para um específico problema cujo o código é totalmente reutilizável, né isso? Se for novamente besteira, preciso estudar mais), e ele nos permite utilizar orientação a objetos para se trabalhar com banco de dados. :?

O SGBD é cada tipo de banco de dados diferente que manipulam os dados. É isso? Não entendo muito do assunto, desculpem se pareço meio bobo com relação a esses tópicos. Acho que que o cvinicius disse que eu posso utilizar o Hibernate e mesmo assim, escolher um sistema de gerenciamento de bando de dados para trabalhar junto ao Hibernate, não é? Ai ai… Foi isso, né? Acontece que eu sinceramente, acho o HSQLDB meio complicado… Pelo menos atualmente! Eu dei uma pausa em estudar o livro com HSQLDB, pois, meu professor mesmo falou que ele nunca usou, e me recomendou utilizar o MySQL. Só que o MySQL o cara, o usuário, tem que ter instalado o bendito no computador dele! :x

Falando em SGBD, eu dei uma olhada de 5 a 15 minutos no site do H2 (já conhecia o do HSQLDB), e sinceramente, achei mais organizado. Com tutorial e muita informação que o olho humano mesmo preguiçoso, tem vontade de ler. Não tenho preguiça para ler, mais é muito mais apetitivo ler um texto (para mim, pelo menos), com imagens e cores e símbolos, do que ler um texto tudo junto, puramente de uma cor e sem imagem nenhuma. O cérebro trabalha menos para entender a informação, correto? Afinal, o mais importante, é que a informação seja passada!

Dos dois, qual vocês me recomendam? Tem mais algum? Qualquer informação adicional sobre eles ou qualquer outro SGBD será muito bom. E o mais importante, eles têm capacidade de desenvolver programas comerciais? A coisa aqui é séria. hehehehe :smiley:

Obrigado a todos por responderem e se importarem.

Abraços GUJ!

Litium.

Isso mesmo.

Bom aqui no projeto que trabalho tivemos problemas com o HSQL relacionados ao consumo de memoria e lentidão, mas isso aconteceu porque nossa aplicação importa uma grande quantidade de dados, ai testamos a mesma rotina utilizando o H2 e ele foi superior ao HSQL, por isso optamos pelo H2, mas isso vai depender da sua aplicação, vale a pena testar os 2, como sua apliacação tem a persistencia gerenciada pelo Hibernate esse teste fica transparente e facil de fazer.

Bom isso é relativo, porque imagina a seguinte situação, você tem um software desktop instalado em várias estações de trabalho na empresa, esse software tem que se comunicar com um banco de dados unico, porque todos os funcionarios precisam trabalhar com as mesmas informações, então esse negocio de instalar o SGBD na máquina onde o software esta instalado depende muito do caso, geralmente o SGBD esta em um servidor e o aplicativo se conecta a ele.

Espero ter ajudado.

E aí cvinicius.

Bem, é extamente isso o que eu iria querer no futuro. Trabalhar com uma enorme quantidade de dados em um banco de dados. Quem que tem uma empresa, não quer isso um dia? Acho que seria uma boa opção tentar o H2. Parece fácil e aparentemente o próprio site dá suporte ao usuário.

Pois é. Aí é que tá. Se vendo um programa para um cara que, este program rode de maneira offline e fóra de uma rede, provavelmente tenho que proporcionar ao usuário essa independência dele mesmo ter de instalar um SGBD, certo? Ia ser meio absurdo eu dar mais trabalho ao usuário para utilizar um programa que irá trabalhar dessa forma.

E é claro! Todos ajudaram! Estou feliz agora e, principalmente, informado. Era exatamente isso que eu queria, informação. Coisa que falta de N formas nesse país.

Obrigado a todos pela ajuda!

Até, Litium.