Dúvida Banco

10 respostas
igor_jua

Boa tarde!
Desenvolvo uma aplicação em swing e gostaria de saber se é possivel levar um banco de dados dentro dela ao finalizar meu projeto.
Sei que existe bancos bem pequenos e simples…como derby, etc…

É possivel ao criar um instalador levar um banco dentro da minha app?
Ou tenho sempre que instalar um banco no pc que minha app irá rodar?

10 Respostas

furutani

Se vc usa derby tem como embarcar ele na aplicacao. Na pratica vc tera que levar o jar`s do derby junto com a sua aplicacao so isso

panngo

Pode usar o javadb tbem

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

igor_jua

Hum…O Java Db do NetBeans?
E ele já gera os diretorios e salva as tabelas automaticamente?

panngo

igor_jua:
Hum…O Java Db do NetBeans?
E ele já gera os diretorios e salva as tabelas automaticamente?

Estava respondendo seu outro tópico, rs, sim é do NetBeans, na verdade esse banco é do java.
Você escolho o diretório onde vai salvar os arquivos com isso, você pode escolher e configurar onde vai salvar seus arquivos de banco de dados e inclusive dentro do jar da sua aplicacao…

igor_jua

então se eu deixar no local default do net beans ele ficará no mesmo qaundo gerar o jar da minha app?

panngo

eu acho que não pq ele gera na pasta que está instalado o java.

Hoje não vou mexer com isso mas se você quiser amanhã vejo um esquema pra deixar os arquivos dentro do jar e ai te mando explicando.

igor_jua

Se vc poder, agradeço muito!
:smiley:

daniellfeijo

da uma olhadinha no HSQLDB (HyperSQL DataBase). To usando ele para tentar fazer isso. Estou tentando colocar o banco dentro do meu arquivo .jar
http://hsqldb.org/
www.guj.com.br/content/articles/hsqldb/hsqldb_guj.pdf

Abraço…

daniellfeijo

Abraço…

panngo

igor_jua:
Se vc poder, agradeço muito!
:D

Aew joew Desculpa a demora.

Bom vamos lá…

Crie um banco de dados no javadb, pode ser pelo NetBeans, seta como endereço para o banco, o src do seu projetos em uma basta /banco, por exemplo.
Ai em seu código você deve proceder da seguinte maneira.

String systemDir = getClass().getResource("/banco");

Onde /banco é o diretório dentro do seu projeto o qual você escolheu, quando criou o banco de dados no javadb, para ser o local onde ele irá criar os arquivos do banco.

É preciso setar o diretório home do banco no javadb.

System.setProperty("derby.system.home", systemDir);

O a classe do driver que você irá utilizar para acessar o banco de dados é o “EmbeddedDriver” do próprio javadb que está na pasta de instalação do próprio javadb em “local da instalção”/sun/javadb/lib/derby.jar

Criei um banco chamado “teste” e fiz a conexão da seguinte forma.

String strUrl = "jdbc:derby:" + systemDir + "/teste";
java.sql.Connection dbConnection = DriverManager.getConnection(strUrl, "guj", "guj");

Criei uma tabela a qual nomiei de “HA” com um campo ID (INT) e um DESCRICAO (VARCHAR) e que, creio eu, por padrão do javadb a tabela ficou dentro da pasta APP. Com isso, quando você for fazer um select é preciso fazer da seguinte forma. “select id, descricao from APP.HA”. Posso estar falando besteira mas creio que o conceito que o javadb trabalhe, seja como o Oracle onde APP é uma “table space”.

Caso queira fazer um teste para verificar as tabelas que têm em seu banco, o código abaixo faz isso para você.

ResultSet rs = dbConnection.getMetaData().getTables(null, null, null, null);
                
while(rs.next()) {
     System.out.println(rs.getString("TABLE_SCHEM"));
     System.out.println(rs.getString("TABLE_NAME"));
}
Criado 15 de novembro de 2009
Ultima resposta 17 de nov. de 2009
Respostas 10
Participantes 4