JavaDB Embedded, erro no esquema?

13 respostas
rbroz85

Bom dia…
to com um probleminha nessa javaSB embedded…
eu o jatinha realizado no nb5.5.1 agora estou no nb6

criei um banco “JavaApplicarion1” com esse nome !
depois o copiei e colei em:
C:\JavaApplicarion1 <- assim…

depois me conectei nele usando o driver embedded ! conectou normalmente ate criei uma tabela Users no esquema APP,e coloquei uns dados…
depois criei uma classe “Entity class from database”. escolhi o banco . selecionei minha tabela. e criei o toplink
entao ele me gerou minha classe Users. entao realizei uma consulta pra pegar tudo da tabela…
e o danado me deu o seguinte erro:

[color=darkred]Local Exception Stack:
Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: O esquema ‘ADMIN’ não existe
Error Code: 30000[/color]

que esquema ADMIN é esse? se eu criei a tabela no esquema APP… nao to entendo esse erro !

alguem poderia me ajudar ?

Grato desde já!

13 Respostas

rbroz85

Pow concegui resolver…

meu esquema se chama APP
e meu login era ADMIN

dropei o banco e criei o mesmo com o nome de logion APP

e funcionou !

agora nao etendi o pq disso ? o o nome do login tem que ser o mesmo do esquema…

abs

G

Cara, aconteceu a mesma coisa aqui comigo !
Só que o nome do meu schema já é igual ao nome do meu user !
O que pode ser ?

rbroz85

Brother eu ate hoje nao entendi o pq…
mas comigo so funciona quando eu coloco login e chema APP (maiusculo)

tenta colocar nos dois escrito APP

abraçao

G

Cara, já mudei o nome do schema e do user lah nas properties do meu banco de dados, porém continua dando a exception falando que não achou o esquema CRH ! Até dps de mudar o nome do schema pra APP, continua procurando o schema CRH !
Q negócio esquisito do c*** bixo … hehehe

rbroz85

ehuaheuahe
mt doido mesmo
eu sofri mt pra colocar isso pra rodar

tenta detonar o banco todo e cria tudo do zero colocando sempre o nome do schema e login igual a APP

so assim que eu consegui.

se voce conseguir outra maneira, por favor posta aí.

se precisar de qualquer coisa so falar.
abraçao

G

Cara, vc usou que IDE pra desenvolver sua app ? Netbeans ?

rbroz85

Isso mesmo
netbeans 6.5.1

G

Cara, vc usou o driver embutido do JavaDB pra conectar no seu banco, certo ?
E sobre o servidor, como vc fez ?
To tentando iniciar um servidor Java DB direto do meu programa, mas não consigo de jeito nenhum !!
Só funciona quando inicio o servidor manualmente, com botão direito no Java DB -> Start Server …

rbroz85

sim o drive embutido
como minha app era desktop

eu copiei o diretorio onde o banco javaDB estava e coloquei junto a minha app.

nesse caso nao usei servidor pra estartar meu javadb, acho q o proprio jre estartava.

talvez sua aplicaçao nao esteja conseguindo achar o seu banco…
cola o erro ae pra mim ver se voce puder

abraçao

G

Olha soh como está meu código cara:

try{

Connection con = DriverManager.getConnection(“jdbc:derby:CRHDatabase,APP, APP);

launch(CRHDatabaseApp.class, args);

}catch(Exception ex){

System.out.println(“Erro na execução: + ex.getMessage());

}

O nome do meu banco é CRHDatabase mesmo. Como vc sugeriu, coloquei o diretório dele (com a pasta CRHDatabase contendo log, seg0 e service properties, além dos arquivos derby.properties e o derby log file).

O erro:
Erro na execução:Falha ao iniciar o banco de dados ‘CRHDatabase’, consulte a próxima exceção para obter detalhes.

Edit: Cara, dei uma pesquisada aqui, e acho que utilizar um driver embutido não será minha solução. Preciso que o aplicativo rode em várias máquinas, acessando o mesmo banco de dados, logo meu ambiente será um ambiente cliente/servidor.

Alguma idéia de como iniciar um servidor para que o aplicativo possa rodar em qq uma das máquinas em q for instalado ??

rbroz85

hummm tipo brother

se vc quizer cliente/servidor, sujiro o uso do mysql

se vc quizer bancos individuais em cada maquina… usa javaDB

se a app sua for swing vc pode usar javaDB junto a aplicaçao ou tornar cliente servidor
mas se for web… usa o mysql…

tenta usar o recurso de JPA do netbeans… ele vai resolver seu problema!

fernandoh.computacao

na net tem um link a respeito, ja posto em seguida, vou achar

X

Olá,

No código abaixo estava acontecendo o mesmo erro,

Resolvi colocando APP. antes do nome da tabela:

“SELECT * FROM APP.usuario WHERE login = '” + login + “’”;

[]'s Everton


response.setContentType(text/html;charset=UTF-8);

PrintWriter out = response.getWriter();

String driver = org.apache.derby.jdbc.ClientDriver;

String url = jdbc:derby://localhost:1527/WebMail”;

String username = admin;

String password = adminadmin;

try

{

// Carregando driver do BD.

Class.forName(driver);

// Estabelecendo conexao com BD

Connection connection = DriverManager.getConnection(url, username, password);

// Criando statement para executar queries.

Statement statement = connection.createStatement();

/* CODIGO AQUI */
String login = request.getParameter("login");
        String senha = request.getParameter("senha");
        String query = "SELECT * FROM app.usuario WHERE login = '" + login + "'";
        out.println(query+"<br>");

        ResultSet results = statement.executeQuery(query);
        
        if (results.next()) 
        {   // usuario encontrado
            out.println("Usuario encontrado<br>");
Criado 22 de janeiro de 2008
Ultima resposta 25 de out. de 2009
Respostas 13
Participantes 4