Distribuir aplicação java com banco de dados (mysql)

Olá a todos…

Não sei se estou postando no lugar correto, mas vamos lá…

Tenho um aplicação java desktop com acesso a banco de dados mysql.

Está tudo rodando bonitinho, mas agora eu preciso distribuir essa aplicação…

A minha principal dúvida é a seguinte: No computador do cliente TEM que ter o MySql instalado também, além do JRE (pra rodar o java)? se sim, tem algum tipo de JRE pro mysql… assim, seria só pra roda o banco mesmo, ou tem que instalar o mysql todo?..

Agradeço desde já pela atenção…

So novo em java e to adorando trabalhar com a linguagem, agora preciso avançar no meu estudo, por isso minha nescessidade de distribuir uma aplicação minha, mesmo sendo pequena…

Abraços.

Felipe.

Que eu me lembre, para distribuir os drivers do MySQL, você precisa de uma licença comercial. Alguém sabe se isso mudou?

De qualquer forma, MySQL pode não ser o melhor banco de dados para você distribuir. Existem muitos outros, como SQLite, Firebird, e o próprio Derby, que podem funcionar muito bem com uma aplicação desktop. A não ser que você esteja usando muitos recursos específicos do MySQL, pode valer a pena migrar.

Tenta ve se da o PostGree SQL

Se a aplicação não for muito grande, pode usar o Java DB

http://developers.sun.com/javadb/
:wink:

Bom, CASO o seu programa precise de um banco de dados ou drivers ou bibliotecas de terceiros E vc não pode distribui-las junto do seu programa por questões de licensa e $$$, nada impede que vc:

1 - Deixe claro no manual, readme, etc que PRECISA desses softwares e o cara que baixe por conta própria.
2 - Crie um programa ou script que baixe e instale os programas necessários.

Em todo o caso, leia a(s) licensa(s) de distribuição dos softwares envolvidos pra não receber uma visita dos homens de terno preto.

Hehehe…isso foi engraçado (mas é perigoso msm :lol:

Mas eu acho que não consegui ser bem claro com a minha dúvida…

Deixa eu tentar de novo.

O que eu quero saber é: se é preciso eu ter o mysql instalado no computador do cliente para o meu programa em java possa acessar um banco de dados que desenvolvi no mysql. É simples assim a minha dúvida. Parece até besta :roll: . Se for o caso, e a resposta para a minha dúvida seja sim ( que eu acredito que é), tem como eu instalar somente o necessário do mysql (assim como JRE é pro java) pro meu programa poder acessar o banco de dados que fiz? Acho que não né :? . To viajando legal… :oops:

Meu programa é simples e prático. É um gerenciador para lan house, com opção de cadastro de clientes, controle de contas pros mesmos e controle de caixa, e claro controle de tempo para os que “alugam” os computadores da lan…

Se for o caso eu troco (tento hehe) troco de banco de dados…

Venho estudando programação faz um tempinho… mas nunca cheguei a concluir um projeto por completo entendem, e acho que é normal surgirem duvidas (bestas as vezes 8) ) em algum estagio do aprendizado…

Agradeço a atenção de todos, o pessoal do guj realmente é fantastico.

Felipe.

Para responder sua dúvida, sim, você precisaria instalar o gerenciador de banco de dados (no caso, o MySQL) no computador do cliente. Por isso eu sugeri alternativas que não exigem instalação, só copiar algumas DLLs (e no caso do Derby, nem isso).

Sim, como ja foi dito você teria que instalar o mysql sim.

Por que? Veja bem, o seu sistema é divido em duas partes.
1 - O banco de dados, onde ficarão armazendas as informações(nomes dos clientes, horas utilizadas e etc…)
2 - E o programa java que acessa e manipula estes dados

Se você levasse só programa java, seia como “levar um videogame sem o jogo”

Como eu distribuiria isso
Pelo que você contou, na maquina do seu cliente você vai ter que instalar:

  • O banco mysql
  • A JRE(máquina virtual)
  • E seu programa, que deverá ir “compactador” como um arquivo .jar

Lembrando que o ideal é usar as mesmas versoes do que está instalado na sua máquina.

Considerações finais
"Devo usar o mysql ou outro banco?". Na minha opnião depende. Este sistema vai ser usado em apenas uma maquina(aplicacao standalone) ou em várias, todas compartilhando as informações do banco de dados(aplicação cliente-servidor).
No primeiro caso,vejo muita gente usando outros banco de dados como o H2 ou hsqldb. No último caso, usaria mysql sem dúvida.

[quote=rubinelli]Que eu me lembre, para distribuir os drivers do MySQL, você precisa de uma licença comercial. Alguém sabe se isso mudou?
[/quote]

Dúvida interessante.

Acesse o site oficial:http://dev.mysql.com/downloads/connector/j/5.1.html

Corrijam-me se eu tiver errado, mas Eu euntendi que o driver segue o licenciamento GPL, então seu programa que use o driver, teria que ser GPL também. Porém, caso você não queira isso, favor entrar em contato com o setor de vendas da SUN :twisted:

[quote=venomtotal]
Corrijam-me se eu tiver errado, mas Eu euntendi que o driver segue o licenciamento GPL, então seu programa que use o driver, teria que ser GPL também. Porém, caso você não queira isso, favor entrar em contato com o setor de vendas da SUN :twisted: [/quote]

Bah! Que interessante isso! Não sabia dessa e acho que muitos programadores que utilizam o MySQL também não sabem.

Poxa :? … eu pensei que o mysql fosse algo diferente…mais “livre” entendem?? pois toooodo mundo usa (muita gente pelo menos :roll: … )

Alguém ai trabalha em produção com o mysql?? Poderia confirmar ai o que o nosso amigo venomtotal falou sobre a licença e tal??

Valeu :!:

E com vocês, a resposta:

http://www.mysqlbrasil.com.br/?q=node/6

Então eras isso 8) … axo que ficou mais clara algumas coisas pra mim. Vo testar o PostGreSQL (antes que eu me precipite, vo verificar se ele não sofre das mesmas consequencias do mysql :slight_smile: , se não vo fazer meu programa com licença gpl :lol: já que é pra aprendizado mesmo).

venomtotal : valeu pelo link.

Vo te que estudar mais sobre distribuição de qualquer aplicação com acesso a banco de dados. A começar pela arquitetura da aplicação eu axo,mas um dia eu chego lá hehehe…

Valeu pessoal.