Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

helkton

Sistema Java com DB embutido Derby

Recommended Posts

Olá galera sou novo por aqui e também no ramo da programação em Java, vou ser rápido e procurar explicar bem explicadinho rsss
Vamos lá....
Seguinte comecei agora no Java e já desenvolvi um pequeno programa para gerenciamento de veículos, para uma garagem de vendas, bem simples cadastra, vendas, controles, gera relatório de vendas por vendedor essas coisas e todas essas informações estão cadastradas em uma base de dados javaDB (derby), agora preciso criar um instalador para instalar no PC do cliente pra isso usei o InstallCreator, tudo certinho e instala numa boa, porém já revirei tudo e não sei como fazer o banco de dados, e se possível instalar tbm no ato da instalação do sistema,a até segui uma vídeo aula dizendo que para criar um instalador junto com o banco de dados embutido, bastava anexar as pastas do banco de dados junto com o .jar, mais não rodou, não inicializa o servidor. O máximo que consegui foi entrar manualmente na pasta do java e ativar o startNetworkServer.bat manualmente ai o sistema abre não da mais o erro de java.net.ConnectException... só da o erro de que o banco de dados não foi encontrado
E já não sei mais o que fazer para o sistema ser instalado certinho no PC do cliente, se alguem puder me dar uma Help vlw 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, a única coisa que você vai poder manter embutido no seu JAR é o próprio JAR do derby, por isso se diz embeddable, você não vai conseguir um caminho para algo dentro do seu JAR, mas isso pode ser contornado de forma absurdamente fácil.

O legal seria você criar seu instalador em Java mesmo e então copiar as coisas de dentro dele para uma pasta padrão do sistema operacional.

String systemName = "NomeDoSeuSistema";
String installationPath = System.getProperty("user.home") + File.separator + systemName;

File file = new File(installationPath);

if (!file.exists()) {
    file.mkdir();
}

Isso ai já vai criar uma pasta para seu sistema no diretório padrão do usuário, para copiar o banco de dados de dentro do seu JAR para esta pasta terá que convertê-lo para stream lendo-o como um resource 

InputStream dataBase = getClass().getClassLoader().getResourceAsStream("seuBanco.db");

Agora o que precisa fazer é copiá-lo para a pasta criada anteriormente e terá um caminho

InputStream dataBase = getClass().getClassLoader().getResourceAsStream("seuBanco.db");
		
if (dataBase == null) {
    System.out.println("Banco de dados não encontrado");
}
else {
    BufferedOutputStream out = null;
    
    try {
        byte[] bytes = new byte[4096];
        
        int read = 0;
        
        out = new BufferedOutputStream(
                new FileOutputStream(installationPath + File.separator + dbName));
        
        while ((read = dataBase.read(bytes)) > -1) {
            out.write(bytes, 0, read);
        }
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    finally {
        if (out != null) {
            try {
                out.close();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

Agora seu banco tem um caminho acessível

String dbPath = System.getProperty("user.home") + 
    File.separator + "NomeDoSeuSistema" + File.separator + "seuBanco.db";

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso aí acabei optando pelo Mysql, vou estudar mais para conseguir integrar o sistema para instalar o DB no momento da instalação, mas por hora me resolveu, instalei e configurei o Mysql no cliente e ta tudo rodando 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.