JavaDB Um Banco de Dados 100% Java

Propaganda
JavaDB
Um Banco de Dados
100% Java
Profa. Me. Karen Selbach Borges
Confraria do Java
V Seminário RSJUG - 2006
Sumário
•
•
•
•
•
Apresentação do JavaDB
Instalação
Como usar via Netbeans 5.0
Passo a passo de uma aplicação desktop
Como fazer a distribuição da aplicação
Confraria do Java
V Seminário RSJUG - 2006
Introdução
• Cloudscape – IBM
• Doação dos fontes para Apache Foundation
• Projeto Derby Apache
Confraria do Java
V Seminário RSJUG - 2006
Introdução
• Características:
–
–
–
–
Tamanho: 2 MB
100% Java
Fácil de instalar e usar
Grátis e com suporte !
Confraria do Java
V Seminário RSJUG - 2006
Introdução
• Características:
–
–
–
–
–
–
–
–
API JDBC
ANSI SQL
ACID (Atomic, Consistent, Isolation, Durable)
Controle de transações
Stored procedures
Triggers
Concorrência
Backup de dados.
Confraria do Java
V Seminário RSJUG - 2006
Introdução
• Onde usar:
– Aplicações desktop
– Aplicações web
– Aplicações para dispositivos móveis, como por
exemplo PDAs.
Confraria do Java
V Seminário RSJUG - 2006
Introdução
• Onde conseguir :
http://developers.sun.com/prodtech/javadb/
downloads/
Confraria do Java
V Seminário RSJUG - 2006
Como Usar
• Instalação :
– Descompactar o arquivo
javadb-10_1_1_0-fcs-bin-b01-windows-21_mar_2006.zip
• Não possui GUI !
• Então usar via Netbeans5.0
Confraria do Java
V Seminário RSJUG - 2006
Acesso via Netbeans - Runtime
• Selecione Tools > Options > Advanced Options
• IDE Configuration > Server and External Tools Settings > Derby
Database
Confraria do Java
V Seminário RSJUG - 2006
Acesso via Netbeans - Runtime
• Selecione Tools > Derby Database > Start Derby
Server
Confraria do Java
V Seminário RSJUG - 2006
Acesso via Netbeans - Runtime
• Selecione Tools > Derby Database > Create Derby
Database...
Confraria do Java
V Seminário RSJUG - 2006
Acesso via Netbeans - Runtime
• Mude para aba de Runtime e veja sua conexão
com o banco de dados
Confraria do Java
V Seminário RSJUG - 2006
Acesso via Netbeans - Runtime
• Através desta conexão é
possível criar tabelas e
executar comandos SQL
Confraria do Java
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
1) Acrescentar o JavaDB ao projeto
Confraria dopasso1
Java
passo2
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
2) Criar um arquivo db.properties contendo as
informações necessárias para a conexão
com o banco
conexao.driver=org.apache.derby.jdbc.EmbeddedDriver
conexao.url=jdbc:derby:Agenda
conexao.database=Agenda
conexao.dir=AgendaDB
URL : jdbc:derby:<dbName>[propertyList]
As propriedades mais comuns são:
– Create=true, user=userName, password=userPassword, shutdown=true
Confraria do Java
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
3) Criar um arquivo sql.properties contendo
os códigos SQL necessários para as
transações do banco
CreateTable.Contato=CREATE TABLE APP.CONTATO
(idContato INTEGER NOT NULL
PRIMARY KEY
GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
nome
VARCHAR(40) NOT NULL,
endereco
VARCHAR(50),
telefone
VARCHAR(20) NOT NULL)
Insert.Contato=INSERT INTO APP.CONTATO (Nome, Endereco, Telefone)
VALUES (?,?,?)
Select.Contato=SELECT * FROM APP.CONTATO
Confraria do Java
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
4) Criar a classe de conexão
public static Connection getInstance(String user, String password){
if( conexao == null ) {
new DBConnection(user, password);
}
return conexao;
}
private DBConnection( String user, String password ) {
loadProperties();
setDBSystemDir();
if ( !dbExists() ){
createDatabase( user, password );
}
else {
conexao = openConnection( user, password );
}
}
Confraria do Java
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
Classe de conexão
public void loadProperties(){
int count=0;
try {
InputStream is = getClass().getResourceAsStream( "db.properties" );
Properties props = new Properties();
props.load( is );
driver = props.getProperty("conexao.driver");
dbName = props.getProperty("conexao.database");
url = props.getProperty("conexao.url");
dir = props.getProperty("conexao.dir");
is.close();
} catch( IOException ioex ) {
System.err.println(" Erro ao carregar arquivo de propriedades ");
}
}
Confraria do Java
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
Classe de conexão
private void setDBSystemDir() {
// Obtém o diretório da aplicação
String userDir = System.getProperty("user.dir", ".");
// Define o caminho do diretório do banco da aplicação
String systemDir = userDir + "/" + dir;
// cria o diretório para o banco
File fileSystemDir = new File(systemDir);
if (!fileSystemDir.exists()){
fileSystemDir.mkdir();
}
// Seta a propriedade que indica o banco da aplicação
System.setProperty("derby.system.home", systemDir);
}
Confraria do Java
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
Classe de conexão
private void createDatabase(String user, String password){
String tabelaContato;
String tabelaEndereco;
try{
url=url+";create=true";
conexao = this.openConnection(user, password);
Statement stmt = conexao.createStatement();
tabelaContato = new SQLManager().loadSQL("CreateTable.Contato");
stmt.execute(tabelaContato);
} catch (SQLException sqle){
System.err.println(sqle);
}
}
Confraria do Java
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
Classe de conexão
private Connection openConnection(String user, String password) {
try {
Class.forName(driver); //carrega o driver.
conexao = DriverManager.getConnection(url, user, password);
return conexao;
} catch (SQLException sqlex) {
System.err.println( "Unable to connect" );
return null;
} catch(ClassNotFoundException cnfex) {
System.err.println(" Failed to load JDBC driver." );
return null;
}
}
Confraria do Java
V Seminário RSJUG - 2006
Passo a Passo de Uma Aplicação
5) Elaborar os DAOs e VOs
6) Editar o arquivo de manifesto
7) Gerar o arquivo JAR
Build > Build Main Project (F11)
Confraria do Java
V Seminário RSJUG - 2006
Referências
• Projeto Apache Derby
http://db.apache.org/derby/
• Brian Leonard. Netbeans Derby Tutorial.
http://www.netbeans.org/kb/50/derby-demo.html
• John O'Conner. Using Java DB in Desktop
Applications.
http://java.sun.com/developer/technicalArticles/J2
SE/Desktop/javadb/
Confraria do Java
V Seminário RSJUG - 2006
Outras coisas interessantes
• Demo (Mozilla Firefox only)
http://developers.sun.com/prodtech/javadb/overvie
w/product_tour/readme.jsp#Download
• Derby e Hibernate
http://wiki.apache.org/db-derby/HibernateHelp
Confraria do Java
V Seminário RSJUG - 2006
Dúvidas ?
[email protected]
www.confrariadojava.org/karen
Confraria do Java
V Seminário RSJUG - 2006
Download