V Seminário RSJUG Confraria do Java JavaDB Um Banco de Dados 100% Java Profa. Me. Karen Selbach Borges
V Seminário RSJUG Confraria do Java 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
V Seminário RSJUG Confraria do Java Introdução Cloudscape – IBM Doação dos fontes para Apache Foundation Projeto Derby Apache
V Seminário RSJUG Confraria do Java Introdução Características: –Tamanho: 2 MB –100% Java –Fácil de instalar e usar –Grátis e com suporte !
V Seminário RSJUG Confraria do Java 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.
V Seminário RSJUG Confraria do Java Introdução Onde usar: –Aplicações desktop –Aplicações web –Aplicações para dispositivos móveis, como por exemplo PDAs.
V Seminário RSJUG Confraria do Java Introdução Onde conseguir : downloads/ downloads/
V Seminário RSJUG Confraria do Java 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
V Seminário RSJUG Confraria do Java Acesso via Netbeans - Runtime Selecione Tools > Options > Advanced Options IDE Configuration > Server and External Tools Settings > Derby Database
V Seminário RSJUG Confraria do Java Acesso via Netbeans - Runtime Selecione Tools > Derby Database > Start Derby Server
V Seminário RSJUG Confraria do Java Acesso via Netbeans - Runtime Selecione Tools > Derby Database > Create Derby Database...
V Seminário RSJUG Confraria do Java Acesso via Netbeans - Runtime Mude para aba de Runtime e veja sua conexão com o banco de dados
V Seminário RSJUG Confraria do Java Acesso via Netbeans - Runtime Através desta conexão é possível criar tabelas e executar comandos SQL
V Seminário RSJUG Confraria do Java Passo a Passo de Uma Aplicação 1) Acrescentar o JavaDB ao projeto passo1passo2
V Seminário RSJUG Confraria do Java 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: [propertyList] As propriedades mais comuns são: –Create=true, user=userName, password=userPassword, shutdown=true
V Seminário RSJUG Confraria do Java 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
V Seminário RSJUG Confraria do Java 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 ); }
V Seminário RSJUG Confraria do Java Passo a Passo de Uma Aplicaçã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 "); } Classe de conexão
V Seminário RSJUG Confraria do Java 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); }
V Seminário RSJUG Confraria do Java Passo a Passo de Uma Aplicaçã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); } Classe de conexão
V Seminário RSJUG Confraria do Java 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; }
V Seminário RSJUG Confraria do Java 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)
V Seminário RSJUG Confraria do Java Referências Projeto Apache Derby Brian Leonard. Netbeans Derby Tutorial. John O'Conner. Using Java DB in Desktop Applications. SE/Desktop/javadb/ SE/Desktop/javadb/
V Seminário RSJUG Confraria do Java Outras coisas interessantes Demo (Mozilla Firefox only) w/product_tour/readme.jsp#Download w/product_tour/readme.jsp#Download Derby e Hibernate
V Seminário RSJUG Confraria do Java Dúvidas ?