Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
12
respostas

Dúvida no Ex. 1 da Aula 1 - Trabalhando com um banco de dados

Na hora de criar o banco no DatabaseManager recebo esse retorno:

General error: Database alias does not exist

Já tentei criar o projeto loja-virtual em varios locais diferentes do computador, inclusive dentro da raiz do c:

o comando usado para inicar o DatabaseManager foi: java -cp hsqldb.jar org.hsqldb.util.DatabaseManager

e a tela com o servidor do baco esta aberta e rodando normalmente, mas quando tento criar a conexão com o banco recebo a mensagem na tela, e a mesma na console do servidor do banco que esta rodando

[Thread[HSQLDB Connection @18b135db,5,HSQLDB Connections @4517d9a3]]: database alias=loja-virtual does not exist.

atualmente o projeto esta na pasta c:\loja-virtual

Se tento compilar pela console, ele me retorna a mensagem:

Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:hsqldb:hsql://localhost/loja-virtual at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at TestaConexao.main(TestaConexao.java:8)

É como se ele não estivesse conseguindo achar o driver do hsqldb, mas ele foi copiado para a pasta do projeto, se dou um dir pela console o arquivo hsqldb.jar esta la, e já cliquei com o botão direito no arquivo dentro do eclipe e mandei adicionar o caminho, se clico novamente com o botão direito tenho agora a opção de remover o caminho ou migrate jar file ...

Obrigado

Emerson

12 respostas

Emerson, Boa Tarde !

vamos por parte ok !

no prompt de comando entre na sua pasta do projeto de loja virtual , e execute o seguinte comando :

java -cp hsqldb.jar org.hsqldb.server.Server --dbname.0 loja-virtual

esse comando criará o database , chamado loja-virtual

feito isso faça o seguinte comando para subir seu banco :

java -cp hsqldb.jar org.hsqldb.server.Server --database.0 file:loja-virtual --dbname.0 loja-virtual

feito isso você ja consegue verificar através do código java se consegue conectar com o banco através do código abaixo :

public static void main (String[] args {
    Connection c =         DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/loja-virtual", "SA", "");

System.out.println("Conexão aberta!");

c.close();
}

teste e veja se deu certo , ok !

Bons estudos

Executei o primeiro comando e ele criou a base de dados e inicializou o servidor. Precionei CTRL +C para para o servidor e executei o segundo comando. O Servidor inicializou novamente com sucesso, sem mensagens de erro.

Colei o código que vc enviou dentro de uma class TestaExecuxao conforme abaixo:

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;

public class TestaConexao {

public static void main (String[] args) throws SQLException { Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/loja-virtual", "SA", "");

System.out.println("Conexão aberta!");

c.close(); } }

Quando executei recebi a mensagem de erro database alias does not exist, detalhes abaixo.

Exception in thread "main" java.sql.SQLException: General error: database alias does not exist at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) at org.hsqldb.jdbc.JDBCConnection.(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at TestaConexao.main(TestaConexao.java:8) Caused by: org.hsqldb.HsqlException: General error: database alias does not exist at org.hsqldb.error.Error.error(Unknown Source) at org.hsqldb.ClientConnection.(Unknown Source) ... 6 more

Emerson,

legal funcionou subir o banco , vamos testar ele com o seguinte comando , ok

java -cp hsqldb.jar  org.hsqldb.util.DatabaseManager

esse comando é feito com em outro prompt de comando , escolha a opção 'HSQL Database Engine Server'

adicione loja-virtual no fim da url .

tente criar uma tabela

você importou o biblioteca hsqldb para seu projeto ?

baixe nesse link o arquivo hsqldb arraste seu arquivo hsqldb.jar que encontra lib/hsqldb.jar para o projeto no eclipse , e clique com o botão direito nele e em build Path adicione ele ao seu projeto .

se ja importou , tente excluir e importar novamente .

Ok, executei o comando java -cp hsqldb.jar org.hsqldb.util.DatabaseManager

A tela apareceu, escolhi HSQL Database Engine Server e adicionei loja-virtual no final da url, assim que clico ok recebo o seguinte erro no rodapé da tela do Database Manager:

java.sql.SQLExcepition: General error: database alias does not exist

você subiu o banco de dados , e depois realizou esse procedimento ?

Sim, subi o banco, e deu tudo certo, recebi a mensagem:

[Server@4517d9a3]: [Thread[main,5,main]]: checkRunning(false) entered [Server@4517d9a3]: [Thread[main,5,main]]: checkRunning(false) exited [Server@4517d9a3]: Startup sequence initiated from main() method [Server@4517d9a3]: Could not load properties from file [Server@4517d9a3]: Using cli/default properties only [Server@4517d9a3]: Initiating startup sequence... [Server@4517d9a3]: Server socket opened successfully in 31 ms. [Server@4517d9a3]: Database [index=0, id=0, db=file:test, alias=] opened sucessfully in 1766 ms. [Server@4517d9a3]: Startup sequence completed in 1813 ms. [Server@4517d9a3]: 2015-10-14 09:43:47.032 HSQLDB server 2.3.3 is online on port 9001 [Server@4517d9a3]: To close normally, connect and execute SHUTDOWN SQL [Server@4517d9a3]: From command line, use [Ctrl]+[C] to abort abruptly

Veja que o banco esta no ar, mas quando abro o DatabaseManager em uma nova janela, e clico ok recebo a mensagem na tela do DatabaseManager:

java.sql.SQLExcepition: General error: database alias does not exist

e a seguinte mensagem na tela do servidor:

[Thread[HSQLDB Connection @6dcc1997,5,HSQLDB Connections @4517d9a3]]: database alias=loja-virtual does not exist

Como pode ver tenho um problema de alias, já tentei rodar em varios locais diferentes do computador, inclusive da raiz do C:, mas ele não resolve o caminho.

Emerson,

Repare nessa linha quando você sobe seu banco :

Database [index=0, id=0, db=file:test, alias=]

ele não está associando alias como loja-virtual sem contar que seu arquivo está com nome de test

você ja fez alguma conexão com test ?

o nome do arquivo do database , está chamando test e não loja-virtual

tem algo errado na sua criação do seu banco

Verdade, mas eu nunca criei um banco test.

Para testar apaguei todos os arquivos test que estavam na pasta c:\loja-virtual, e criei o banco novamente com o comando:

java -cp hsqldb.jar org.hsqldb.server.Server dbname.0 loja-virtual dbname.0 file: loja-virtual

mas ele continua criando o db=file:test, e o alias = vazio

tem alguma ideia do porque isto pode estar ocorrendo ou o que posso fazer para resolver?

Para testar tentei conectar na base test, ou seja escrevi test no final da url, e no código que abre o banco:

Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/test", "SA", "");

Mas o mesmo erro de Database alias does not exist continua aparecendo.

O que deveria aparecer após o campo alias na mensagem : Database [index=0, id=0, db=file:test, alias=] quando o banco é inicializado?

solução!

Emerson ,

deveria aparecer a seguinte :

[Server@4517d9a3]: Database [index=0, id=0, db=file:loja-virtual, alias=loja-virtual] tual] opened sucessfully in 1531 ms.

vamos tentar executar todos os passos de criação de banco , passo - a -passo , ok !

no prompt vá na pasta de seu projeto e digite o seguint comando :

java -cp hsqldb.jar org.hsqldb.server.Server

depois esse :

java -cp hsqldb.jar org.hsqldb.server.Server --dbname.0 loja-virtual

e depois esse :

java -cp hsqldb.jar org.hsqldb.server.Server --database.0 file:loja-virtual --dbname.0 loja-virtual

comigo já aconteceu uma vez isso , realizei todos esses procedimentos e deu certo .

veja se irá dar certo contigo também

Deu certo, executei um comando de cada vez, ao final de cada um dei CTRL + C para parar o servidor e executar o próximo, ao final do ultimo comando ele criou o banco loja-virtual com file e alias corretos.

Muito obrigado por sua ajuda.

Emerson