Ir para conteúdo

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 Jack Oliveira
      Ola pessoal boa tarde
      estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso
       
      Este é o codigo 
      <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>  
    • Por Elisame Araújo
      Seguinte,
      Eu tenho uma página de atualização de lista de faixas que estão agrupados por álbum, com os dados vindo através de parâmetros na url como o albumID e detalhes e são retornados dentro de um while.
      O que eu queria é que ele atualizasse todos os campos que fossem editados se eles fossem modificados, mas o que o ocorre é que apenas o último registro é atualizado.
       
      O script que traz as faixas:
       
      <tr> <form class="form-group" method="post" action="includes/funcoes/atualizar-faixas.php"> <?php while($sqlSelect = mysqli_fetch_assoc($result)) { ?> <td><input type="text" value="<?php echo $sqlSelect['trackNumero'] ?>" class="form-control" name="trackNumero"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTitulo'] ?>" class="form-control" name="trackTitulo"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTraducao'] ?>" class="form-control" name="trackTraducao"></td> <td><input type="text" value="<?php echo $sqlSelect['trackID'] ?>" class="form-control" name="trackID" readonly></td> <td><input type="text" value="<?php echo $sqlSelect['albumID'] ?>" class="form-control" name="albumID" readonly></td> </tr> <?php } ?> <tr><a href="albuns-lista.php"><button name="cancelar" id="cancelar" class="btn btn-danger mb-3 mr-1" type="button"> <i class="fa-solid fa-arrow-left"></i> Voltar</button></a></tr> <tr><button name="update" id="update" class="btn btn-success mb-3" type="submit" value=""><i class="fa-solid fa-arrow-up-from-bracket"></i> Atualizar</button></tr> </form>  
       
      E esse é o resultado do código acima:

       
      E este é o código que uso pra fazer o UPDATE no banco de dados:
      <?php require_once "../db/albuns.php"; if(isset($_POST['update'])){ $trackNumero = $_POST['trackNumero']; $trackTitulo = mysqli_real_escape_string($conecta2, $_POST['trackTitulo']); $trackTraducao = $_POST['trackTraducao']; $trackID = $_POST['trackID']; $albumID = $_POST['albumID']; $sqlUpdate = "UPDATE `faixas` SET `trackTitulo` = '$trackTitulo', `trackNumero` = '$trackNumero', `trackTraducao` = '$trackTraducao' WHERE `albumID` = $albumID AND `trackID` = $trackID"; if($atualizaDados = mysqli_query($conecta2, $sqlUpdate) == true){ var_dump($sqlUpdate); //header("location: ../../albuns.php?update=sucesso"); } else { //header("location: ../../albuns.php?update=erro"); } } ?> Como eu faria para que cada linha fosse atualizada individualmente? Já tentei diversos métodos, mas o resultado continua sendo a atualização apenas do último registro no banco, ignorando o restante das atualizações.
    • Por Rengavitp
      Boa noite pessoal!
       
      Estou fazendo um projeto web com spring boot e é a primeira vez que lido com imagens. Minha idéia é salvar imagens em uma pasta e depois recuperar essa imagem e mostrar, mas o problema que estou enfrentando é o seguinte, seu eu envio para o src do projeto na pasta imagens, eu até consigo acessar as imagens, mas preciso atualizar o projeto na IDE (isso vai acontecer em produção?) eu tentei salvar em uma pasta fora do source do projeto mas ai não consigo acessar. como devo fazer? fiz várias pesquisas, mas nenhuma me ajudou.
       
      Desde já agradeço.
    • Por Rengavitp
      Bom dia pessoal!

      Estou com o seguinte problema, tenho uma aplicação que funciona perfeitamente rodando na minha IDE (Spring Tool Suite) mas ao gerar o arquivo war e subir a aplicação no tom cat ele não funciona, mas apenas erro 404, abri o war e todos os arquivo estão lá, já tem seguir tudo quando e tutorial com problemas semelhantes mas nenhum resolveu. Abaixo mais informações,.

      Versão do java na aplicacao 11
      Versão do jva no servidor 11
      Versão do tomcat no servidor 8.5.55
       
      minha classe principal
      package br.com.masterplastfitas; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MasterApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MasterApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MasterApplication.class); } } meu pom.xml
      <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>masterplast</groupId> <artifactId>Master</artifactId> <version>2.0</version> <packaging>war</packaging> <name>Master</name> <description>Aplicação web </description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> </dependency> <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.4</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.0</version> </dependency> </dependencies> <build> <plugins> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> --> </plugins> </build> </project>  
    • Por luiz0o
      Estou fazendo um projeto para faculdade, e tenho um formulário, esse formulário precisa enviar as respostas tanto para um banco de dados, mas também tem que enviar para uma API que envia para meu email, mas não sei como fazer essas duas coisas ao mesmo tempo
×

Informação importante

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