P. 1
h2 Tutorial

h2 Tutorial

|Views: 1.986|Likes:
Publicado porAbraão Borges

More info:

Published by: Abraão Borges on Jun 30, 2011
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as TXT, PDF, TXT or read online from Scribd
See more
See less

05/27/2013

pdf

text

original

- Início e como usar o Console H2 A aplicação do Console H2 permite acessar um banco de dados usando um navegador.

Pode ser um banco de dados H2, ou outro banco de dados que suporta a API JDBC. Esta é uma aplicação cliente / servidor, portanto, um servidor e um cliente (um browse r) são necessários para executá-lo. - Dependendo da sua plataforma e ambiente, existem várias maneiras para iniciar o Console H2: Windows: Clique em [Iniciar], [Todos os programas], [H2] e [H2 Console (Command Line)]. Ao usar o Sun JDK 1.5, uma janela com "Console H2" o título deve aparecer . Ao usar o Sun JDK 1.6, um ícone será adicionado à bandeja do sistema: Se você não obter a janela e o ícone da bandeja do sistema, então talvez o Java não esteja instalado corretamente (neste caso, tente outra maneira de iniciar a a plicação). A janela do navegador deve abrir e "apontar" para a página de login em ht tp://localhost:8082. Windows: Abra um navegador de arquivos, navegue até h2/bin, e dê um duplo clique no h2.bat. A janela do console aparece. Se houver um problema, você verá uma mensagem de erro nesta janela. A janela do navegador será aberta e apontará para a página de login (URL: htt p://localhost:8082). Qualquer: Clique duas vezes no arquivo h2*.jar. Isso só funciona se a extensão .jar estiver associado com o Java. Qualquer: Abra uma janela do console, navegue até o diretório h2/bin e digite: java -jar h2*.jar - Firewall Se você iniciar o servidor, você pode receber um aviso de segurança do firewall (se vo cê tiver instalado um). Se você não quer que outros computadores na rede tenham acesso ao aplicativo em sua máquina, você pode deixar o firewall bloquear essas ligações. A conexão da máquina local ainda funcionará. Se você deseja que outros computadores tenh am acesso ao banco de dados no computador, você precisa permitir conexões remotas no firewall. Tem sido relatado que, ao usar o Kaspersky 7.0 com firewall, o Console de H2 é mui to lento quando conectado via o endereço IP. A solução é conectar usando 'localhost'. Um firewall pequeno já está embutido no servidor: outros computadores podem não se conectar ao servidor por padrão. Para mudar isso, vá a "Preferências" e selecione "Permitir conexões de outros computad ores. - Testes de Java Para saber qual versão do Java está instalado, abra um prompt de comando e digite: java-version

Como os objetos do banco de dados residem no servidor.Login Na página de login. uma p orta diferente precisa ser configurada. você pode precisar adicionar o diretório binário J ava para a variável de ambiente do caminho. Se você deseja se conectar a aplicação de outro computador. por ex emplo: http://192.. Se você estiver pronto. mas isso.Mensagem de erro 'Port may be in use " Você pode iniciar apenas uma instância do Console H2. geralmente. . O Javascript precisa estar habilitado.). Você pode salvar e reutilizar as configurações salvas anteriormente.Usando outro 'Port' Se a porta padrão do console H2 já está em uso por outro aplicativo.Adicionando drivers do banco de dados Para registrar drivers JDBC adicionais (MySQL.0. Se nenhuma porta for especificado para o TCP e servidores PG.2:8082. nome de usuário e senha. adicion . Defina a classe do driver JDBC de seu banco de dados. Se você iniciou o servidor no mesmo computa dor que o navegador.. caso contrário.. você precisa fornecer o endereço IP do servidor. . co nsulte Configurações do Console de H2. clicando sobre a mensagem. em seguida. HSQLDB . A entrada é WebPort. cada serviço vai ten tar escutar em sua porta padrão.168. . a URL JDBC. Você pode mostrar / esconder o rastr eamento da pilha de exceção. Para mais detalhes.Várias sessões simultâneas Múltiplas sessões simultâneas pelo browser são suportados. Se a porta padrão já está em uso.Conectando ao Servidor utilizando um Browser Se o servidor foi iniciado com êxito. PostgreSQL.Mensagens de erro Mensagens de erro no são mostradas em vermelho.. não é necessário por que o console suporta múltiplas co nexões simultâneas. a quantidade de trabalho simultâneas é limitado pela memória disponível para o aplicativo do servidor. uma porta aleatória é usada. É possível iniciar vários aplicativos de console no mesmo computador (usando portas di ferentes). clique em [Connect]. você precisa fornecer informações de conexão para se conectar a um ban co de dados. abra a URL http://localhost:8082.Se você receber uma mensagem de erro. . a URL deve começar com https://.". As configurações são armazenadas em um arquivo de propriedades. possível causa: um outro servidor já está e m execução . . As definições são armazenadas em um arquivo de propriedades (consulte Configurações do Con sole H2). . você pode se conectar a ele usando um navegado r web. . Se você ativou a SSL no lado do servidor. você terá a seguinte mensagem de erro: "O servidor Web não pôde ser iniciado..

Se você clicar em uma tabela enquanto a consulta está vazia. clique direito no ícone da bandeja do sistema e selecione [ Exit]. a tabela que foi usada é expandida na árvore. o servidor ainda está funcionando e pronto para aceitar novas sessões. . WebPort: a porta do Console H2. . Por exemplo se você digitar SELECT * FROM TEST T WHERE T. tabelas) são listados à esquerda. navegue até [Preferências] e clique em [Shu tdown]. Para parar o servidor. Esses comandos precisam estar no início de uma declaração (antes de qualquer intervenção). caso contrário. As configurações suportadas são: webAllowOthers: permite que outros computadores se conectem. então SELECT * FROM . C: \ Programas \ hsqldb \ lib \ hsqldb. No entanto.properties no diretório do seu usuário. ou feche a janela do console. as entradas devem ser separadas por: (Windows) ou (outros sistemas operacionais). Os objetos de banco de dados (por exemplo. clique no item na "árvo re". O arquivo de configuração contém as configurações do aplicativo e é criado automaticamente uando o console de H2 é iniciado. Vários drivers podem ser definidos.jar.h 2. Para instalações do Windows. é a dicionado. clique em [Desligar] no painel de barra de ferramen tas. Digite um comando SQL no painel de consulta e clique em [Executar]. Esses são interpretados dentro do C onsole H2. As configurações não devem ser citadas.Inserindo nomes de tabela ou coluna Para inserir os nomes das tabelas e colunas para o script.e os nomes de arquivos jar para as variáveis ??do ambiente H2DRIVERS ou CLASSPATH.Configurações do Console H2 As configurações do console de H2 são armazenados em um arquivo de configuração chamado . Em caso de dúvida.Usando o Console de H2 A aplicação Console H2 tem três painéis principais: a barra de ferramentas no topo.Desligar e interromper o aplicativo Para sair do banco de dados. e o painel de consulta / resultado à direita. . Exemplo (Windows): para adicionar o driver JDBC HSQLDB. . então a tabela TEST é expand ida.jar. . o diretório do usuário geralmente é C: \ Documents and Settin gs \ [usuário].server. Se você não tem o ícone na bandeja do sistema. eles não são analisados ??corretamente. onde o servidor foi iniciado (Windows ).. acrescentar antes do comando.Sintaxe Console especial H2 O H2 Console suporta alguns comandos internos. Ao digitar uma consulta. .. Espaços nos nomes de caminho são suportados. defina o H2DRIVERS variável de ambiente para C: \ Programas \ hsqldb \ lib \ hsqldb. a "árvore" à esquerda. pressione [Ctrl] + [C] no console. O resultado aparece logo abaixo do comando. então eles trabalham com qualquer banco de dados.

uma é usando a ferramenta Server. Uma maneira simples de fazer isso é usando o seguinte código: import java. Os servidores p odem ser iniciados de diferentes maneiras. Para obter a lista de opções e valores adrão. mas as senhas são. jar org. Exemplo: 1 = Generic H2 (Embedded) org. ""). } } Esse código primeiro carrega o driver (Class. . Neste banco de dados. e então obter uma conexão.Server -? .forName (. execute: java-cp h2 *. um novo banco de dados (vazio) é criado automaticamente.close().h2.)) e então abre uma conexão ( usando DriverManager. . O segundo parâmetro na getConnection() é o nome de usuário (AS de Administrador do Sis tema. // add application code here conn. Além dessas definições. "AS". A URL do banco de dados sempre precisa começar c om jdbc: h2: para ser reconhecido por este banco de dados. O usuário que criou o banco de dados automaticamente se torna o administrador do b anco de dados.Driver"). exec ute: java-cp h2 *. Por favor note que apenas o servidor web browser suporta conexões.Usando o Servidor H2 atualmente suporta três servidores: um servidor web (para o Console de H2). se o banco de dados especificado na URL ainda não existe.h2.tools.Driver".. O terceiro parâmetro é a senha. consulte Opening a Datab ase Only if it Already Exists (Abrindo um Banco de Dados somente se este existe) .sql. neste exemplo). Connection conn = DriverManager.. .Conectar a um banco de dados usando JDBC Para se conectar a um banco de dados. getConnection("jdbc:h2:~/test".Server Isto irá iniciar a ferramenta com as opções padrão. nomes de usuário não são case sensitive.webSSL: usa conexões criptografadas (HTTPS).tools.Criação de novos bancos de dados Por padrão. um servidor TCP (para conexões cliente / servidor) e um servidor de PG (para clientes PostgreSQL).h2. "Auto-criar" o novo banco de dados pode ser desativado. O nome do driver é "org.*.Iniciando a Ferramenta Server na linha de comando Para iniciar a ferramenta Server da linha de comando com as configurações padrão.Driver jdbc \: h2 \: ~ / teste A S .forName("org. public class Test { public static void main(String[] a) throws Exception { Class. as propriedades da última conexão utilizada são listados na forma < umber> = <name> <driver> <url> <user> usando o caractere de escape \.getConnection ()). jar org. um aplicativo Java primeiro precisa carreg ar o driver de banco de dados.h2.h2.

h2. note que você não pode conectar com um navegador da web para este URL. Ao usar esse modo de compatibilidade. . . Você pode usar o H SQLDBDialect. Para parar um servidor remoto.. use o se guinte driver e URL do banco de dados: JDBC driver class: org.Connection Pools.h2. use o HibernateDialect para o banco de dad os correspondente em vez do H2Dialect. . modos de compatibilidade.h2.jdbcx. .tools. execute: java org.stop(). .Conectando ao Servidor TCP Para se conectar remotamente a um banco de dados usando o servidor TCP. // start the TCP Server Server server = Server. Código de exemplo: import org. Esta função só irá parar o servidor TCP.Server-tcpShutdown tcp: / / localhost: 9092 Para parar o servidor de uma aplicação do usuário.tools.Server.JDBC . Um patch para o Hibernate foi enviada e agora é aplicado.start(). . Você pode renomeá-lo para H2 Dialect. defina o Classname Datasource para org .. ver também em "Recursos". . Vo cê só pode se conectar usando um cliente H2. e iniciar ou não iniciar partes..JdbcDataSource.h2.Driver Database URL: jdbc:h2:tcp://localhost/~/test Para mais detalhes sobre a URL do banco de dados. ou atualizar para u ma versão do Hibernate.shutdownTcpServer ("tcp: / / localhost: 9094"). Por favor. Você pode definir isso no GUI em Application Server . Para evitar a recuperação.Utilizando Hibernate Este banco de dados suporta Hibernate versão 3.Existem opções disponíveis para utilizar outras portas. Para parar o se rvidor a partir da linha de comando. Se outros servidores foram iniciados no mesmo p rocesso.Parar um servidor TCP de outro processo O servidor TCP pode ser interrompido a partir de outro processo. tentar usar o H2Dialect se possível. como MODE = MySQL não são suportados. eles vão continuar a executar. Desligar um servidor TCP pode ser protegida usando a opção -tcpPassword (a mesma senha deve ser usado para iniciar e parar o servidor TCP). onde este é fixo.Recursos .java e incluir esta como um patch em seu aplicativo. use o seguinte código: org.. Ao usar Hibernate. Infelizmente. quando as bases de dados forem abertos na próxima vez.1 e mais recentes. Ao usar o H2Dialect.tools.Server.xml: no elemento de conexão jdbc-pool. . conexões remotas devem estar habilitadas no servido r. ou editando o arquivo sun-resources. toda s as ligações às bases de dados devem ser fechados antes de chamar esse método. ou o H2Dialect.createTcpServer(args).Usando TopLink e Glassfish Para usar o H2 com Glassfish (ou Sun AS).Iniciando o Servidor TCP dentro de um aplicativo Servidores também pode ser iniciado e interrompido a partir de uma aplicação.h2. // stop the TCP Server server. o H2Dialect incluído em algumas versões antigas do Hibernate foi bugad o.

adapter.database. .NEXTVAL SELECT. O código fonte desta plataforma está incluído no H2 em src/tools/oracle/toplink/essent ials/platform/database/DatabasePlatform.persistenc e.Usando EclipseLink Para usar o H2 em EclipseLink. você pode usar o Orac lePlatform vez em muitos casos. Neste caso. Você terá que copiar este arquivo para sua aplicação.store. Este é um problema para consultas que modificam o estado.xml: <property name="toplink. o TransactDatabaseLocker utiliza SELECT .TransactDatabaseLocker".eclipse.Usando Apache ActiveMQ Quando utilizar H2 como banco de dados para o Apache ActiveMQ.Usando bancos de dados em aplicativos da Web Existem várias maneiras de acessar um banco de dados de dentro de aplicações web. o nome da propriedade é toplink. e renomeá-lo para .H2Platform. Para habili tá-lo. . o que mantém o regi sto de transações de encolhimento (faz com que o arquivo de banco de dados pare de c rescer). jar para o diretório glassfish / gl assfish / lib. por favor use o T ransactDatabaseLocker em vez de o mecanismo de bloqueio padrão. Para usá-lo. O banco de dados H2 é compatível com HSQLDB e PostgreSQL. use a classe da plataforma org. . dois valores da sequência são atribuídos ao invés de apenas um.essentials. Para tirar proveito dos re cursos H2 específico. Para usar o H2 dentro Glassfish. altere a seguinte configuração no persistence.Utilizando H2 dentro NetBeans O projeto de Apoio H2 Database Engine Para NetBeans permite que você iniciar e par ar o servidor de H2 a partir do IDE..target-database" value="oracle.Modo embutido A solução mais simples (atualmente) é usar o banco de dados no modo incorporado.defina o atributo datasource-classname para org. copie o h2 *.apache. usando o modo de MVCC voltará a resultar no mesmo problema.java. No entanto. como SEQ. FOR UPDATE que não é problemático. mude a configuração do elemento ApacheMQ <jdbcPersistenceAdapter> databas eLocker = "org. Outra solução (mais perigosa) é definir useDat abaseLock para false. Caso contrário o arquivo de banco de dados irá crescer sem limites. o que significa abrir uma conexão em seu aplicativo quando ele começa (uma boa solução é utiliz ar um Servlet Listener.platform. O problema é que o mecanismo de bloqueio padrão usa uma transação UPDATE não confirmada.H2Platform"/> Em versões antigas do Glassfish. por favor não use o modo MVCC neste caso.java. Se esta plataforma não está disponível na sua versão do EclipseLink.h2.toplink.txt. Portanto. Em vez de usar uma instrução UPDATE. se você usar o Tomcat ou JBoss.activemq.jdbcx. veja abaixo).class.name .database. Veja também H2Platform. Há um problema conhecido quando se utiliza o Netbeans SQL Execution Window: antes de executar uma consulta. . utilize o H2Platform. . outra consulta na forma SELECT COUNT (*) FROM <query> é executado. ou quando uma sessão é iniciada.platform.JdbcDataSource.jdbc.platform.. Aqui estão alguns exemplos. .

xml: . . Estas opções devem ser colocadas entre a tag de descrição e as tags listener / filter: <context-param> <param-name>db.Modo de servidor O modo de servidor é semelhante. É uma boa idéia para abrir o banco de dados quando a aplicação web começa.xml.h2. de modo que este não é um problema (a menos que você execute no modo Tomcat em cluster). jar na sua aplicação. Para fazer isso. Tomcat usa vários segmentos e classloaders múltiplas. . e fechá-lo quand a aplicação web para. inclua o arquivo do h2 *. você pode acessar da seguinte forma: Connection conn = getServletContext(). e adicionar o seguinte trecho ao seu arquivo web. Se você quiser usar essa conexão dentro do seu servlet. a conexão do banco de dados será fechada autom aticamente. mas pod e ser usado como um servlet também. e a senha AS.java.server. ou mesmo uma conexão por pedido (açã as conexões devem ser fechadas após o uso.tcpServer</param-name> <param-value>-tcpAllowOthers</param-value> </context-param> Quando o aplicativo web é interrompido.Um banco de dados pode ser acessado de várias sessões e aplicativos ao mesmo tempo. jar para a sua aplicação web. ele também será interrom pido automaticamente. DbStarter também pode iniciar o servidor TCP. Na aplicação. Se o servidor TCP é iniciado dentro do DbStarter. e adicione a seguin te configuração ao seu web. você precisa colocar o jar do banco de dado s no shared/lib ou server/lib. Se vários aplicativos acessarem o mesmo banco de dados ao mesmo tempo. Para h abilitá-lo.xml: <listener> <listener-class>org.web. consulte o arquivo DbSt arter. contanto que eles corram no mesmo processo. mas permite que você execute o servidor em outro pr ocesso. porém este é desativado por padrão.user</param-name> <param-value>sa</param-value> </context-param> <context-param> <param-name>db.password</param-name> <param-value>sa</param-value> </context-param> <context-param> <param-name>db. essa ferramenta abre uma conexão incorporada usando o banco de dados da URL jdbc: h2: ~ / teste.getAttribute("connection"). Aqui está a lista complet a de opções. use o parâmetro db. Por padrão. Adicione o arquivo h2*.DbStarter</listener-class> </listener> Para obter detalhes sobre como acessar o banco de dados. Usando um Servlet Listener para iniciar e parar um banco de dados. Se usar várias aplicações. A maioria dos servidores (Tomcat.tcpServer no arquivo web. por exemplo) apenas usam um processo. uma idéia é usar uma conexão por sessão. nome de usuário AS.Usando o H2 Console Servlet O H2 Console é um aplicativo independente e inclui seu próprio servidor web. apenas um (qualquer) deles tem de fazer isso.url</param-name> <param-value>jdbc:h2:~/test</param-value> </context-param> <context-param> <param-name>db. se possível (mas não é assim tão mau se não for hado).

forName("org. porque as classes jav ax. execute o seguinte comando : build warConsole .xml. mas parece que o de sempenho é semelhante ao SQLite. 02 segundos).sql necessárias.WebServlet</servlet-class> <!-<init-param> <param-name>webAllowOthers</param-name> <param-value></param-value> </init-param> <init-param> <param-name>trace</param-name> <param-value></param-value> </init-param> --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>H2Console</servlet-name> <url-pattern>/console/*</url-pattern> </servlet-mapping> Para detalhes. e SQLite cerca de 0. não estão disponíveis no Android.Suporte CSV (Comma Separated Values) O suporte a arquivos CSV podem ser usados ??dentro do banco de dados usando as f unções CSVREAD e CSVWRITE. Até agora.<servlet> <servlet-name>H2Console</servlet-name> <servlet-class>org.2 segundos. e tudo par ece funcionar como esperado.Lendo um arquivo CSV de dentro de um banco de dados Um arquivo CSV pode ser lido usando o CSVREAD função. exemplo: . Até agora. que ainda não está otimizado em H2 (H2 leva cerca de 0. Para criar um aplicativo web com apenas o Console H2. Os arquivos de banco de dados precisam ser armazenado em um lugar que seja acessív el para a aplicação.FILE_LOCK=FS" + ". ou ele pode ser usado fora do banco de dados como uma fer ramenta autônoma. apenas poucos testes e benchmarks foram executados. e operações de gravação ecem ser mais lentas. Exemplo: String url = "jdbc:h2:/data/data/" + "com. conn = DriverManager. a pesquisa de texto nativo deve funcionar..h2.Driver"). Class.web.CACHE_SIZE=8192".Android Você pode usar esta base de dados em um dispositivo Android (usando o VM Dalvik) e m vez de. Limitações: Usando uma connection pool não é suportada atualmente. . Operações de leitura parecem ser um pouco mais rápidas que SQLite. .example. Fulltext pesquisa ainda não foi testado. ou além do SQLite.. no entanto. ver também src / tools / WEB-INF / web.hello" + "/data/hello" + ".h2.PAGE_SIZE=1024" + ".server. apenas poucos testes foram executados.getConnection(url). exceto para abrir e fechar um banco de dados. .

public class TestCsv { public static void main(String[] args) throws Exception { SimpleResultSet rs = new SimpleResultSet().getColumnCount(). . se necessário. i++) { System.VARCHAR.h2.Escrevendo um arquivo CSV de um aplicativo Java A ferramenta CSV pode ser usado em um aplicativo Java.*. } System. import org. CREATE TABLE TEST AS SELECT * FROM CSVREAD('test. consulta esta tabel a. import org. null. Outra opção é usar INSERT INTO . Csv. CREATE TABLE TEST(ID INT PRIMARY KEY. em seguida.getString(i + 1)).sql.write("data/test. . .csv".jones@abcde.Escrevendo um arquivo CSV de dentro de um banco de dados A função CSVWRITE pode ser usada para criar um arquivo CSV a partir de uma consulta. 'World'). crie os índices necessários. 255.next()) { for (int i = 0.getColumnLabel(i + 1) + ": " + rs. rs. rs. e.addRow("Bob Meier".out. NAME VARCHAR).h2. 'Hello'). null).csv". Em vez disso. i < meta.getInstance(). null). read("data/test. exemplo: CREATE TABLE TEST(ID INT. } . 0). "bob.tools. 255. while (rs. importe os primeiros dados (possivelmente em uma tabela tem porária).addRow("John Jones". Opcionalm ente. Por favor. public class TestCsv { public static void main(String[] args) throws Exception { ResultSet rs = Csv.meier@abcde.VARCHAR.h2.abc").addColumn("NAME". import org.Lendo um arquivo CSV de um aplicativo Java É possível ler um arquivo CSV sem abrir um banco de dados. mesmo quando não estiver us ando um banco de dados. ResultSetMetaData meta = rs.println().. SELECT.Importando dados de um arquivo CSV Uma maneira rápida para carregar ou importar dados (algumas vezes chamado de "carg a a granel") de um arquivo CSV é combinar com a criação da tabela de importação. 0).SELECT * FROM CSVREAD ('test.tools.println( meta.abc"). CSVREAD não deve ser usado dentro de um JOIN. INSERT INTO TEST VALUES(1. exemplo: import java. rs.Csv.addColumn("EMAIL". CALL CSVWRITE('test.csv'). Types.tools.csv'.Csv. rs.. exemplo: import java. (2. "john. note por motivos de desempenho.csv'). os nomes das colunas e tipos de dados pode ser definido ao criar a tabela.out.getMetaData().SimpleResultSet. } } . NAME VARCHAR(255)) AS SELECT * FROM CSVREAD('test.csv').*. Types.getInstance().sql. rs. 'SELECT * FROM TEST').

h2.Upgrade.tools. os arquivos de script referênciais precisa m estar disponíveis no lado do servidor. No entanto.tools. consulte o RunScript comando SQL. A maneira rec omendada de backup um banco de dados é criar um arquivo compactado script SQL. BACKUP TO 'backup.Backup -? . Também é possível usar o comando SQL RunScript para executar um script SQL.h2.jar org. .RunScript -url jdbc:h2:~/test -user sa -script test. é p ossível copiar os arquivos de banco de dados.z ip -options compression zip Para mais informações sobre as opções. enqu anto o banco de dados está em uso. Para obte r mais informações sobre uma ferramenta. Ist o pode ser feito usando a ferramenta Script: java org. O problema é que não se pode garantir que os dados são copiados na ordem certa. . } } . A cópia de segurança resultante é transacional consistente. consulte o script do comando SQL.h2. você pode usar a fer ramenta RunScript: java org. ao usar o modo de servidor.Ferramentas de Linha de Comando Esta base de dados vem com uma série de ferramentas de linha de comando. No entanto. o que significa a consistênc ia e atomicidade regras se aplicam.Script -url jdbc:h2:~/test -user sa -script test. Criando um backup para copiar os arquivos de banco de dados enquanto o banco de dados está sendo executado não é suportado. .h2. os arquivos de banco de dados não são legíveis e são bem grande. e depois executar o script SQL usando o novo. Por exemplo.zip -options compression zip Também é possível usar o script de comando SQL para criar o backup do banco de dados.rs. salvo se os sistemas de arquivos suporta a criação de snapshots. o arquivo precisa ser no lado do servidor. o conteúdo deste arquivo não é legível.tools.Backup) não pode ser usado para criar um backup online. O backup pode s er feito remotamente.close().Backup usando a ferramenta Script Existem maneiras diferentes de fazer backup de um banco de dados. o banco de dados não deve estar em uso durante a execução deste programa. no entanto. Construído no servidor FTP pode ser usado para recuperar o arquivo do servidor.Backup on-line A instrução SQL ea ferramenta de Backup tanto criar um arquivo zip com todos os arqu ivos de banco de dados. Co nstruído no servidor FTP pode ser usado para copiar o arquivo para o servidor. na forma de coma ndos RunScript. Para mais informações sobre as opções. iniciá-lo com o parâmetro'-?'. o arquivo será criado no lado do servidor. por exemplo: java -cp h2*. Backup e restauração Upgrade do banco de dados A forma recomendada para atualizar de uma versão do banco de dados para a próxima ve rsão é a de criar um backup do banco de dados (na forma de um script SQL) usando o a ntigo. No entanto.zip' A ferramenta Backup (org. Arquivos d e script SQL pode conter referências a outros arquivos de script. no entanto.Restaurar a partir de um script Para restaurar um banco de dados de um arquivo de script SQL. Além disso.tools. . isso não é recomendado. A restauração pode ser feita remotamente.

Para se conectar a um banco de dados H2 usando o OpenOffice Base. [Novo].] Selecione o arquivo h2.jar (localização é com você.].] Selecione o arquivo h2. poderia ser qualquer lugar que você es colher) Clique em [OK] (tanto quanto necessário). selecione [JDBC].. códigos abertos de connection pool disponíveis. pare o OpenOffice (incluindo o Quickstar ter) Inicie Base OpenOffice Conecte a um banco de dados existente. Ele é baseado no Mini Connection Manager Pool de Christian d'Heureuse.. Exemplo datasource URL: jdbc: h2: ~ / teste JDBC driver class: org. [Preferências] Olhe para a página em [NeoOffice].*.. Para H2.Driver Outra solução para uso em H2 NeoOffice é: O pacote jar h2 dentro de um pacote de extensão Instalá-lo como uma extensão de Java no NeoOffice Isto pode ser feito por criá-lo usando o plugin NetBeans OpenOffice. Clique em Av ançar. Há outros. Ver também Exte nsions Development. [Adicionar Arquivo . . vá para [ferramentas]. Agora. é cerca de duas vezes mais rápido para obter uma conexão do con nection pool do que para obter um usando DriverManager.sql.: import java. import org. o Apache Commons DBCP. vá para [NeoOffice].. ma is complexos. Para usar o H2 em NeoOffice (OpenOffice sem X11): No NeoOffice.h2. [banco de dados].jdbcx.getConnection() O connect ion pool é usado como segue. poderia ser qualquer lugar que você es colher) Clique em [OK] (tanto quanto necessário).JdbcConnectionPool. [Opções] Certifique-se de ter selecionado um ambiente de execução Java em OpenOffice. public class Test { public static void main(String[] args) throws Exception { . Ainda assim.h2.. primeiro você precisa a dicionar o driver JDBC para o OpenOffice.Driver Agora você pode acessar o banco de dados armazenado no diretório atual usuários doméstic os. [Java] Clique em [Path Class]. Selecione [Ligar para banco de dados existente] e selecione [JDBC].jar (localização é com você. por exemplo. Uma Conn ection pool simples é incluído no H2.. [Next] Exemplo datasource URL: jdbc: h2: ~ / teste JDBC driver class: org. ao criar um novo banco de dados usando o "Database Wizard": Clique em [File].Usando o OpenOffice Base OpenOffice. abrir uma conexão é rápido se o banco de dados já está aberto.org / Ja va Clique em [Path Classe .. [Adicionar Arquivo .org Base suporta o acesso de banco de dados sobre a API JDBC. Os passos para se conectar a um banco de dados H2 são: Iniciar o OpenOffice Writer. reinicie o NeoOffice.Usando uma Connection Pool Para H2.h2. usand o uma Connection Pool melhora o desempenho se você abrir e fechar conexões.

org/schema/beans http://www. Para pesquisar o índice.FullText.h2. O índice é atuali zado em tempo real.org/schema/beans/spring-beans. PUBLIC é o nome do esquema. Ver também a issue SPR-8235."TEST" WHERE "ID"=1 Você também pode chamar o índice de dentro de um aplicativo Java: org.8043" /> </bean> O método de destroy-method ajuda a evitar exceções em quando reiniciar o servidor. text. } cp.tools.h2. CALL FT_INIT(). 'TEST'.Pesquisa de texto completo H2 inclui duas implementações de pesquisa de texto.init".search(conn.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop"> <constructor-arg value="-tcp. offset). for (int i = 0. A lista de nomes de colunas (co luna separada) é opcional. use a seguinte consulta: SELECT * FROM FT_SEARCH('Hello'. "sa"). Há uma incompatibilidade com o JdbcTemplate Spring e versão H2 1. 'Hello World'). i < args.tools. conn.utilizando Spring Usando o Servidor TCP Use a seguinte configuração para iniciar e parar o H2 servidor TCP usando o Spring F ramework: <bean id = "org. org.length. limit. INSERT INTO TEST VALUES(1.3.createStatement().getConnection().h2.execute(args[i]). i++) { Connection conn = cp.-tcpAllowOthers.h2. Para inicializar. Uma está usando Apache Lucene.fulltext. você pode criar um índice de texto completo para uma tabela usando: CREATE TABLE TEST(ID INT PRIMARY KEY. NULL). Depois.dispose().JdbcConnectionPool cp = JdbcConnectionPool.FullText.searchData(conn. chame: CREATE ALIAS IF NOT EXISTS FT_INIT FOR "org. todas as colunas são indexadas. } } . TEST é o nome da tabela.Server" class="org. neste caso. 0).xsd" . NAME VARCHAR). Você precisa inicializá-lo em cada banco de dados onde você quer usá-lo. por causa de uma mudança no código de erro.h2.FullText.create( "jdbc:h2:~/test".154 e mais recent e.springframework. text. Isso fará com que o JdbcTemplate não dete cte uma condição de chave duplicada. "sa".-tcpPort. offset).w3. e o utro (a implementação nativa) armazena os dados do índice em tabelas especiais no banc o de dados.true. CALL FT_CREATE_INDEX('PUBLIC'.springframework. 0.org/schema/beans" xmlns:xsi="http://www.fulltext. limit. A solução é adicionar o seguinte arquivo XML na raiz do cla sspath: <beans xmlns="http://www.fulltext. e assim uma DataIntegrityViolationException é jog ado em vez de DuplicateKeyException. conn.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.springframework. Isso irá produzir um conjunto de resultados que contém a consulta necessários para rec uperar os dados: QUERY: "PUBLIC". .close().

> <import resource="classpath:org/springframework/jdbc/support/sql-error-codes .90126</value> </property> <property name="cannotAcquireLockCodes"> <value>50200</value> </property> </bean> </beans> .23000</value> </property> <property name="dataAccessResourceFailureCodes"> <value>90046.42132 </value> </property> <property name="duplicateKeyCodes"> <value>23001.xml"/> <bean id = "H2" class="org.42122.22025.SQLErrorCodes"> <property name="badSqlGrammarCodes"> <value> 42000.22012.42001.42111.42102.42121.23505</value> </property> <property name="dataIntegrityViolationCodes"> <value>22003.90121.42112.90100.springframework.jdbc.42101.90117.support.

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->