Dúvida Banco

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?

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

Pode usar o javadb tbem

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

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

[quote=igor_jua]Hum…O Java Db do NetBeans?
E ele já gera os diretorios e salva as tabelas automaticamente?
[/quote]

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…

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

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.

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

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…

Abraço…

[quote=igor_jua]Se vc poder, agradeço muito!
:D[/quote]

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"));
}