Você está na página 1de 18

25/10/13

Tutorial

Tutorial
Iniciar e utilizar o H2 Console especiais H2 Console Sintaxe Configuraes do Console H2 Conectando-se a um banco de dados usando JDBC Criando novos bancos de dados usando o Servidor Usando Hibernate Usando TopLink e Glassfish Usando EclipseLink Usando Apache ActiveMQ Usando H2 no NetBeans Usando H2 com jOOQ Usando bancos de dados na Web Aplicaes Android CSV (Comma Separated Values) Suporte para atualizao, backup e restaurao de ferramentas de linha de comando A ferramenta Shell Usando OpenOffice Base de Java Web Start / JNLP Usando um pool de conexo de texto completo Pesquisa Variveis definidas pelo usurio data e hora usando Spring OSGi Java Gesto Extension (JMX )

Traduzir Pesquisar:

Incio de Download Cheat Sheet Documentao Quickstart Instalao Tutorial Caractersticas Desempenho Avanado Referncia SQL Gramtica Funes Tipos de dados Javadoc PDF (1 MB) Suporte FAQ Erro Analyzer Google Group (em Ingls) Google Group (japons) Google Group (chins) Apndice Histria e Roteiro Licena Envergadura links JaQu MVStore

Iniciar e utilizar o H2 Console


A aplicao H2 Console permite que voc acesse um banco de dados usando um navegador. Isso pode ser um banco de dados H2, ou outro banco de dados que suporta a API JDBC.

Esta uma aplicao cliente / servidor, portanto, um servidor e um cliente (um navegador) so necessrios para execut-lo. Dependendo da sua plataforma e ambiente, existem vrias maneiras de iniciar o H2 Console: OS Comear

Windows Clique no boto [Iniciar], [Todos os programas], [H2] e [H2 Console (Command Line)] Um cone ser adicionado bandeja do sistema: Se voc no obter a janela eo cone da bandeja do sistema, ento talvez Java no est instalado corretamente (neste caso, tente outra maneira de iniciar o aplicativo). Uma janela do navegador deve abrir e apontar para a pgina de login na http://localhost:8082 . Windows Abra um navegador de arquivos, navegue at h2/bin E clique duas vezes em h2.bat . Aparece uma janela de console. Se houver um problema, voc vai ver uma mensagem de erro nesta janela. Uma janela do navegador ser aberta e apontar para a pgina de login (URL: http://localhost:8082 ). Qualquer D um duplo clique sobre o h2*.jar arquivo. Isso s funciona se o .jar sufixo est associada com Java.

www.h2database.com/html/tutorial.html#fulltext

1/18

25/10/13

Tutorial

associada com Java. Qualquer Abra uma janela do console, navegue at o diretrio h2/bin E digite: java -jar h2*.jar

Firewall
Se voc iniciar o servidor, voc pode receber um aviso de segurana do firewall (se tiver instalado um). Se voc no quer que outros computadores na rede para acessar o aplicativo em sua mquina, voc pode deixar o firewall bloquear essas ligaes. A conexo da mquina local ainda funcionar. S se voc quiser outros computadores para acessar o banco de dados no computador, voc precisa permitir conexes remotas no firewall. Tem sido relatado que, ao usar o Kaspersky 7.0 com firewall, o Console de H2 muito lento ao ligar sobre o endereo IP. A soluo conectar usando 'localhost'. Um pequeno firewall j est embutido no servidor: outros computadores podem se conectar ao servidor por padro. Para mudar isso, v em "Preferncias" e selecione "Permitir conexes de outros computadores".

Teste Java
Para descobrir qual verso do Java est instalado, abra um prompt de comando e digite: java -version Se voc receber uma mensagem de erro, voc pode precisar adicionar o diretrio binrio Java para a varivel de ambiente do caminho.

Mensagem de erro 'Porta pode estar em uso "


Voc s pode iniciar uma instncia do H2 Console, caso contrrio voc vai receber a seguinte mensagem de erro: "O servidor Web no pde ser iniciado Possvel causa:. Outro servidor j est em execuo ...". possvel iniciar vrios aplicativos de console no mesmo computador (usando portas diferentes), mas isso geralmente no necessrio que o console suporta mltiplas conexes simultneas.

Usando outro Porto


Se a porta padro do Console H2 j est em uso por outro aplicativo, em seguida, uma porta diferente precisa ser configurado. As configuraes so armazenadas em um arquivo de propriedades. Para mais detalhes, consulte Configuraes do Console H2 . A entrada relevante webPort . Se nenhuma porta for especificada para os servidores PG TCP e, cada servio vai tentar ouvir em sua porta padro. Se a porta padro j est em uso, uma porta aleatria usado.

Conectando-se ao servidor usando um navegador


Se o servidor foi iniciado com sucesso, voc pode conect-lo usando um navegador web. Javascript precisa estar habilitado. Se voc iniciou o servidor no mesmo computador como o navegador, abra a URL http://localhost:8082 . Se voc deseja conectar-se a aplicao de outro computador, voc precisar fornecer o endereo IP do servidor, por exemplo: http://192.168.0.2:8082 . Se voc ativou o SSL no lado do servidor, a URL deve comear com https:// .

Mltiplas sesses concorrentes


Vrias sesses do navegador simultneos so suportados. Enquanto que os objetos de banco de dados residem no servidor, a quantidade de trabalho concomitante limitada pela memria disponvel para o aplicativo de servidor.

Login
Na pgina de login, voc precisa fornecer informaes de conexo para se conectar a um banco de dados. Defina a classe do driver JDBC do seu banco de dados, JDBC URL, nome de usurio e senha. Se voc estiver pronto, clique em [Connect]. Voc pode salvar e reutilizar as configuraes salvas anteriormente. As configuraes so armazenadas em um arquivo de propriedades (veja Configuraes do Console H2 ).

Mensagens de erro
www.h2database.com/html/tutorial.html#fulltext 2/18

25/10/13

Mensagens de erro

Tutorial

Mensagens de erro no so mostrados em vermelho. Voc pode exibir / ocultar o rastreamento de pilha de exceo, clicando na mensagem.

Adicionando drivers de banco de dados


Para registrar drivers JDBC adicionais (MySQL, PostgreSQL, HSQLDB, ...), adicione os nomes de arquivo jar para as variveis de ambiente H2DRIVERS ou CLASSPATH . Exemplo (Windows): para adicionar o driver JDBC HSQLDB C:\Programs\hsqldb\lib\hsqldb.jar , Defina a varivel de ambiente H2DRIVERS a C:\Programs\hsqldb\lib\hsqldb.jar . Vrios drivers pode ser definido; entradas precisam ser separados por ; (Windows) ou : (Outros sistemas operacionais). Espaos nos nomes de caminho so suportados. As configuraes no deve ser citado.

Utilizando a consola de H2
A aplicao H2 Console tem trs painis principais: a barra de ferramentas no topo, a rvore esquerda, eo painel de consulta / resultado direita. Os objetos de banco de dados (por exemplo, tabelas) esto listados na esquerda. Digite um comando SQL no painel de consulta e clique em [Run]. O resultado aparece logo abaixo do comando.

Inserindo nomes de tabela e os nomes das colunas


Para inserir nomes de tabelas e colunas para o script, clique no item na rvore. Se voc clicar em uma mesa, enquanto a consulta est vazia, ento SELECT * FROM ... adicionado. Ao digitar uma consulta, a tabela que foi usada expandido na rvore. Por exemplo, se voc digitar SELECT * FROM TEST T WHERE T. ento o teste de mesa expandido.

Desligar e parar a aplicao


Para sair do banco de dados, clique em [Desligar] no painel de barra de ferramentas. No entanto, o servidor ainda est em execuo e pronto para aceitar novas sesses. Para parar o servidor, clique direito sobre o cone da bandeja do sistema e selecione [Sair]. Se voc no tem o cone na bandeja do sistema, navegue at [Preferncias] e clique em [Shutdown], pressione [Ctrl] + [C] no console onde o servidor foi iniciado (Windows), ou fechar a janela do console.

Sintaxe especial H2 Console


O Console H2 suporta alguns comandos embutidos. Aqueles que so interpretadas dentro do H2 Console, ento eles trabalham com qualquer banco de dados. Comandos built-in precisa estar no incio de uma declarao (antes de quaisquer observaes), caso contrrio eles no so analisados corretamente. Em caso de dvida, adicione ; antes do comando. Command (s) @autocommit_true; @autocommit_false; @cancel; @columns null null TEST; @index_info null null TEST; @tables; @tables null null TEST; Descrio Ativar ou desativar autocommit. Cancelar a instruo atualmente em execuo. Chame o correspondente DatabaseMetaData.get mtodo. Padres so sensveis caso (geralmente identificadores so maisculas). Para obter informaes sobre os parmetros, consulte a documentao do Javadoc. Parmetros em falta no fim da linha so definidas como null. A lista completa dos comandos de metadados : @attributes, @best_row_identifier, @catalogs, @columns, @column_privileges, @cross_references, @exported_keys, @imported_keys, @index_info, @primary_keys, @procedures, @procedure_columns, @schemas, @super_tables, @super_types, @tables, @table_privileges, @table_types, @type_info, @udts, @version_columns Use um conjunto de resultados atualizvel.

@edit select * from test;

@generated insert into test() values(); Mostrar o resultado de Statement.getGeneratedKeys() . @history; @info; Listar o histrico de comandos. Exibir o resultado de vrios Connection e DatabaseMetaData mtodos.
3/18

www.h2database.com/html/tutorial.html#fulltext

25/10/13

Tutorial

@list select * from test; @loop 1000 select ?, ?/*rnd*/; @loop 1000 @statement select ?;

Mostrar o conjunto de resultados em formato de lista (cada coluna em sua prpria linha, com nmeros de linha). Execute a instruo isso muitas vezes. Parmetros ( ? ) So definidas usando um loop de 0 at x - 1. Os valores aleatrios so utilizados para cada ?/*rnd*/ . Um objeto Statement utilizado em vez de um PreparedStatement se @statement usado. Os conjuntos de resultados so lidos at ResultSet.next() retornos false . Informao de tempo impresso. Defina o nmero mximo de linhas para mostrar. Mostra a memria utilizada e livre. Isso vai chamar System.gc() . Liste o ResultSetMetaData aps a execuo da consulta. Ver o resultado da PreparedStatement.getParameterMetaData() chamadas. A declarao no executado. Iniciar / parar a ferramenta de profiling built-in. O top 3 rastreamentos de pilha da declarao (s) entre o incio e parada so listados (se houver 3). Latncia para um nmero de segundos. Usado para o perfil de uma consulta de longa durao ou a operao que est sendo executado em outra sesso (mas no mesmo processo). Mostrar (sem parmetros) ou mudana (com parmetros 1, 2, 4, 8), o nvel de isolamento da transao.

@maxrows 20; @memory; @meta select 1; @parameter_meta select ?;

@prof_start; call hash('SHA256', '', 1000000); @prof_stop; @prof_start; @sleep 10; @prof_stop; @transaction_isolation; @transaction_isolation 2;

Configuraes do H2 Console
As configuraes do Console H2 so armazenados em um arquivo de configurao chamado .h2.server.properties em voc diretrio home do usurio. Para instalaes do Windows, o diretrio home do usurio geralmente C:\Documents and Settings\[username] ou C:\Users\[username] . O arquivo de configurao contm as configuraes do aplicativo e criado automaticamente quando o Console H2 iniciado pela primeira vez. As definies suportadas so: webAllowOthers : Permitir que outros computadores se conectem. webPort : A porta do H2 Console webSSL : Usar conexes criptografadas (HTTPS). Alm dessas configuraes, as propriedades de a ltima ligao recentemente utilizadas so listadas na forma <number>=<name>|<driver>|<url>|<user> usando o caractere de escape \ . Exemplo: 1=Generic H2 (Embedded)|org.h2.Driver|jdbc\:h2\:~/test|sa

Conectando-se a um banco de dados usando JDBC


Para se conectar a um banco de dados, uma aplicao Java precisa primeiro carregar o driver de banco de dados e, em seguida, obter uma conexo. Uma maneira simples de fazer isso usando o seguinte cdigo: import java.sql.*; public class Test { public static void main(String[] a) throws Exception { Class.forName("org.h2.Driver"); Connection conn = DriverManager. getConnection("jdbc:h2:~/test", "sa", ""); // add application code here conn.close(); } } Esse cdigo primeiro carrega o driver ( Class.forName(...) ) E, em seguida, abre uma conexo (usando DriverManager.getConnection() ). O nome do driver "org.h2.Driver" . A URL do banco de dados sempre precisa comear com jdbc:h2: para ser reconhecido por esta base de dados. O segundo parmetro na getConnection() chamada o nome de usurio ( sa para o administrador do sistema,

www.h2database.com/html/tutorial.html#fulltext

4/18

25/10/13

Tutorial

parmetro na getConnection() chamada o nome de usurio ( sa para o administrador do sistema, neste exemplo). O terceiro parmetro a senha. Neste banco de dados, nomes de usurio no so case sensitive, mas as senhas so.

Criando novos bancos de dados


Por padro, se o banco de dados especificado na URL ainda no existe, um novo banco de dados (vazio) criado automaticamente. O usurio que criou o banco de dados automaticamente se torna o administrador do banco de dados. Auto-criao de novo banco de dados pode ser desativado, consulte Abrir um banco de dados somente se ele j existe .

Utilizao do servidor
H2 atualmente suporta trs servidores: um servidor web (para o H2 Console), um servidor TCP (para conexes de cliente / servidor) e um servidor de PG (para clientes do PostgreSQL). Por favor, note que apenas o servidor web suporta conexes navegador. Os servidores pode ser iniciado de maneiras diferentes, uma est a utilizar o Server ferramenta. Iniciando o servidor no abrir um banco de dados bases de dados so abertos assim que um cliente se conecta.

Iniciando a Ferramenta Server a partir da linha de comando


Para iniciar o Server ferramenta de linha de comando com as configuraes padro, execute: java -cp h2*.jar org.h2.tools.Server Isso vai iniciar a ferramenta com as opes padro. Para obter a lista de opes e valores padro, execute: java -cp h2*.jar org.h2.tools.Server -? Existem opes disponveis para usar outras portas, e iniciar ou no iniciar partes.

Conectando-se ao servidor TCP


Para se conectar remotamente a um banco de dados usando o servidor TCP, use o seguinte motorista e banco de dados URL: Classe do driver JDBC: org.h2.Driver URL do banco de dados: jdbc:h2:tcp://localhost/~/test Para obter detalhes sobre a URL do banco de dados, ver tambm em recursos. Por favor, note que no possvel conexo com um navegador da web para este URL. Voc s pode conectar usando um cliente H2 (sobre JDBC).

Iniciando o servidor TCP dentro de um aplicativo


Os servidores tambm pode ser iniciado e interrompido a partir de dentro de um aplicativo. Exemplo de cdigo: import org.h2.tools.Server; ... // start the TCP Server Server server = Server.createTcpServer(args).start(); ... // stop the TCP Server server.stop();

Parar um servidor TCP de outro processo


O servidor de TCP pode ser parado a partir de outro processo. Para parar o servidor a partir da linha de comando, execute: java org.h2.tools.Server -tcpShutdown tcp://localhost:9092 Para parar o servidor a partir de um aplicativo de usurio, use o seguinte cdigo:
www.h2database.com/html/tutorial.html#fulltext 5/18

25/10/13

Tutorial

org.h2.tools.Server.shutdownTcpServer("tcp://localhost:9094"); Esta funo s ir parar o servidor TCP. Se outro servidor foram iniciados no mesmo processo, eles vo continuar a correr. Para evitar a recuperao, quando os bancos de dados so abertos na prxima vez, todas as conexes com os bancos de dados devem ser fechados antes de chamar esse mtodo. Para parar um servidor remoto, conexes remotas deve estar habilitado no servidor. Desligar um servidor TCP podem ser protegidas usando a opo -tcpPassword (A mesma senha deve ser utilizado para iniciar e parar o servidor TCP).

Usando Hibernate
Este banco de dados suporta Hibernate verso 3.1 e mais recentes. Voc pode usar o dialeto HSQLDB, ou o dialeto nativo H2. Infelizmente, o dialeto H2 includo em algumas verses antigas do Hibernate foi buggy. Um patch para o Hibernate foi enviado e agora aplicado. Voc pode renome-lo para H2Dialect.java e incluir esta como uma mancha em seu aplicativo, ou atualizar para uma verso do Hibernate que isso seja corrigido. Ao usar o Hibernate, tente usar o H2Dialect se possvel. Quando se utiliza o H2Dialect , Tais como os modos de compatibilidade MODE=MySQL no so suportados. Quando usar o modo essa compatibilidade, use o dialeto do Hibernate para o banco de dados correspondente, em vez do H2Dialect , Mas por favor note H2 no suporta todas as caractersticas de todos os bancos de dados.

Usando TopLink e Glassfish


Para usar o H2 com Glassfish (ou Sun AS), defina a fonte de dados para Classname org.h2.jdbcx.JdbcDataSource . Voc pode definir isso no GUI em Application Server - Recursos JDBC - Pools de conexo, ou editando o arquivo sun-resources.xml : Pelo elemento jdbc-connectionpool , Defina o atributo datasource-classname a org.h2.jdbcx.JdbcDataSource . O banco de dados H2 compatvel com HSQLDB e PostgreSQL. Para tirar proveito dos recursos especficos H2, use o H2Platform . O cdigo de fonte de esta plataforma est includo em H2 a src/tools/oracle/toplink/essentials/platform/database/DatabasePlatform.java.txt . Voc ter que copiar este arquivo para o seu aplicativo, e renome-lo para. Java. Para habilit-lo, altere a seguinte configurao no persistence.xml: <property name="toplink.target-database" value="oracle.toplink.essentials.platform.database.H2Platform"/> Em verses antigas do Glassfish, o nome da propriedade toplink.platform.class.name . Para usar o H2 no Glassfish, copie o h2 *. Jar para o diretrio glassfish/glassfish/lib .

Usando EclipseLink
Para usar o H2 em EclipseLink, use a classe plataforma org.eclipse.persistence.platform.database.H2Platform . Se essa plataforma no est disponvel na sua verso do EclipseLink, voc pode usar o OraclePlatform vez, em muitos casos. Veja tambm H2Platform .

Usando Apache ActiveMQ


Ao utilizar H2 como o banco de dados de back-end para Apache ActiveMQ, utilize o TransactDatabaseLocker em vez do mecanismo de bloqueamento padro. Caso contrrio, o arquivo de banco de dados ir crescer sem limites. O problema que o mecanismo de travamento utiliza um padro uncommitted UPDATE transao, que mantm o log de transaes de encolhimento (faz com que o arquivo de banco de dados para crescer). Em vez de usar uma UPDATE declarao, o TransactDatabaseLocker usa SELECT ... FOR UPDATE o que no problemtica. Para us-lo, mudar o elemento de configurao ApacheMQ <jdbcPersistenceAdapter> elemento, a propriedade databaseLocker="org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker" . No entanto, usando o modo de MVCC novamente conduzido o mesmo problema. Portanto, por favor no use o modo MVCC neste caso. Outra soluo (mais perigoso) definir useDatabaseLock para false.

Usando H2 dentro do NetBeans


www.h2database.com/html/tutorial.html#fulltext 6/18

25/10/13

Tutorial

O projeto H2 Suporte de Banco de Dados para o NetBeans permite iniciar e parar o servidor de H2 a partir do IDE. H um problema conhecido pelo uso da janela de execuo do Netbeans SQL: antes de executar uma consulta, outra consulta na forma SELECT COUNT(*) FROM <query> executado. Isto um problema para consultas que modificam o estado, como o SELECT SEQ.NEXTVAL . Neste caso, dois valores de sequncia so atribudos, em vez de apenas um.

Usando H2 com jOOQ


jOOQ adiciona uma camada fina em cima de JDBC, permitindo a construo de SQL de tipo seguro, incluindo avanado SQL, procedimentos armazenados e tipos de dados avanados. jOOQ leva o seu esquema de banco de dados como base para a gerao de cdigo. Se este o seu exemplo de esquema: CREATE TABLE USER (ID INT, NAME VARCHAR(50)); em seguida, executar o gerador de cdigo jOOQ na linha de comando usando o seguinte comando: java -cp jooq.jar;jooq-meta.jar;jooq-codegen.jar;h2-1.3.158.jar;. org.jooq.util.GenerationTool /codegen.xml Onde ... codegen.xml est no classpath e contm informaes <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-2.3.0.xsd"> <jdbc> <driver>org.h2.Driver</driver> <url>jdbc:h2:~/test</url> <user>sa</user> <password></password> </jdbc> <generator> <name>org.jooq.util.DefaultGenerator</name> <database> <name>org.jooq.util.h2.H2Database</name> <includes>.*</includes> <excludes></excludes> <inputSchema>PUBLIC</inputSchema> </database> <generate></generate> <target> <packageName>org.jooq.h2.generated</packageName> <directory>./src</directory> </target> </generator> </configuration> Usando o cdigo-fonte gerado, voc pode consultar o banco de dados da seguinte forma: Factory create = new H2Factory(connection); Result<UserRecord> result = create.selectFrom(USER) .where(NAME.like("Johnny%")) .orderBy(ID) .fetch(); Veja mais detalhes sobre jOOQ Homepage e no Tutorial jOOQ

Usando bancos de dados em aplicaes Web


Existem vrias maneiras de acessar um banco de dados a partir de aplicativos web. Aqui esto alguns exemplos, se voc usar Tomcat ou JBoss.

Modo embutido
www.h2database.com/html/tutorial.html#fulltext 7/18

25/10/13

Modo embutido

Tutorial

O (atualmente) soluo mais simples usar o banco de dados no modo integrado, o que significa abrir uma conexo em seu aplicativo quando ele comea (uma boa soluo usar um Listener Servlet, veja abaixo), ou quando a sesso iniciada. Um banco de dados pode ser acessado a partir de vrias sesses e aplicativos ao mesmo tempo, contanto que eles correm no mesmo processo. Containers mais Servlet (por exemplo Tomcat) esto apenas usando um processo, de modo que este no um problema (a menos que voc executar Tomcat no modo cluster). Tomcat usa vrios segmentos e vrios carregadores de classe. Se vrios aplicativos acessem o mesmo banco de dados, ao mesmo tempo, voc precisa colocar o jar do banco de dados no shared/lib ou server/lib diretrio. uma boa idia para abrir o banco de dados quando a aplicao web comea, e fech-la quando a aplicao web pra. Se usar vrias aplicaes, apenas uma (qualquer) deles precisa fazer isso. No aplicativo, uma idia usar uma conexo por sesso, ou at mesmo uma conexo por pedido (ao). Essas conexes devem ser fechadas aps o uso, se possvel (mas no to ruim se eles no ficam fechadas).

Modo de servidor
O modo de servidor semelhante, mas permite que voc execute o servidor em outro processo.

Usando um Servlet Listener para iniciar e parar um banco de dados


Adicione o arquivo. Jar h2 * a sua aplicao web, e adicionar o seguinte trecho de seu arquivo web.xml (entre a context-param e a filter seo): <listener> <listener-class>org.h2.server.web.DbStarter</listener-class> </listener> Para mais informaes sobre como acessar o banco de dados, consulte o arquivo DbStarter.java . Por padro, essa ferramenta abre uma conexo incorporada usando o URL do banco de dados jdbc:h2:~/test , Nome de usurio sa E senha sa . Se voc quiser usar essa conexo dentro do seu servlet, voc pode acessar o seguinte:

Connection conn = getServletContext().getAttribute("connection"); DbStarter Tambm possvel iniciar o servidor TCP, no entanto, este desativado por padro. Para ativ-lo, use o parmetro db.tcpServer no arquivo web.xml . Aqui est a lista completa de opes. Estas opes devem ser colocados entre o description tag eo listener / filter tags: <context-param> <param-name>db.url</param-name> <param-value>jdbc:h2:~/test</param-value> </context-param> <context-param> <param-name>db.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.tcpServer</param-name> <param-value>-tcpAllowOthers</param-value> </context-param> Quando o aplicativo web interrompido, a conexo do banco de dados ser fechada automaticamente. Se o servidor TCP iniciado dentro do DbStarter , Que tambm ir ser interrompido automaticamente.

Usando o H2 Console Servlet


O H2 Console um aplicativo independente e inclui seu prprio servidor web, mas pode ser usado como um servlet bem. Para fazer isso, inclua o do h2*.jar Arquivo em seu aplicativo e adicione a seguinte configurao para o seu web.xml : <servlet>

www.h2database.com/html/tutorial.html#fulltext

8/18

25/10/13

Tutorial

<servlet> <servlet-name>H2Console</servlet-name> <servlet-class>org.h2.server.web.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 mais detalhes, veja tambm src/tools/WEB-INF/web.xml . Para criar um aplicativo web com apenas o Console H2, execute o seguinte comando: build warConsole

Andride
Voc pode usar esse banco de dados em um dispositivo Android (usando o Dalvik VM) em vez de ou alm do SQLite. At agora, apenas poucos testes e benchmarks foram executados, mas parece que o desempenho semelhante ao SQLite, exceto para abertura e fechamento de um banco de dados, que ainda no otimizada de H2 (H2 leva cerca de 0,2 segundo, e SQLite cerca de 0,02 segundos) . As operaes de leitura parece ser um pouco mais rpido do que SQLite, e as operaes de gravao parece ser mais lento. At agora, apenas poucos testes foram executados, e tudo parece funcionar como esperado. Pesquisa de texto completo ainda no foi testado, no entanto, a pesquisa de texto completo nativa deve funcionar. Razes para usar H2 em vez de SQLite so: Unicode suporte completo, incluindo UPPER () e menor (). Transmisso API para BLOB e CLOB dados. Pesquisa de texto completo. Mltiplas conexes. Funes e gatilhos definidos pelo usurio. Criptografia de arquivos de banco de dados. Leitura e escrita de arquivos CSV (este recurso pode ser usado fora do banco de dados tambm). A integridade referencial e restries de verificao. Melhor tipo de dados e suporte SQL. Bases de dados em memria, de dados somente leitura, tabelas vinculadas. Melhor compatibilidade com outros bancos de dados que simplifica portar aplicativos. Possivelmente o melhor desempenho (at agora para operaes de leitura). Modo Server (acessando um banco de dados em uma mquina diferente sobre TCP / IP). Atualmente, apenas a API JDBC suportado ( planejado para suportar a API de banco de dados Android em verses futuras). Tanto o arquivo jar H2 regular eo menor h2small-*.jar podem ser usados. Para criar o arquivo jar menor, execute o comando ./build.sh jarSmall (Linux / Mac OS) ou build.bat jarSmall (Windows). Os arquivos de banco de dados precisam ser armazenados em um local que acessvel para a aplicao. Exemplo: String url = "jdbc:h2:/data/data/" + "com.example.hello" + "/data/hello" + ";FILE_LOCK=FS" + ";PAGE_SIZE=1024" +

www.h2database.com/html/tutorial.html#fulltext

9/18

25/10/13

Tutorial

";PAGE_SIZE=1024" + ";CACHE_SIZE=8192"; Class.forName("org.h2.Driver"); conn = DriverManager.getConnection(url); ... Limitaes: Usando um pool de conexo no suportada atualmente, porque o requerido javax.sql. classes no esto disponveis no Android.

CSV (Comma Separated Values) Suporte


O suporte a arquivos CSV pode ser usado dentro do banco de dados utilizando as funes CSVREAD e CSVWRITE , Ou pode ser usado fora da base de dados como uma ferramenta independente.

Leitura de um arquivo CSV de dentro de um banco de dados


Um arquivo CSV pode ser lido utilizando a funo CSVREAD . Exemplo: SELECT * FROM CSVREAD('test.csv'); Por favor, note por motivo de desempenho, CSVREAD no deve ser utilizado dentro de uma juno. Em vez disso, importar os dados em primeiro lugar (possivelmente em uma tabela temporria), criar os ndices necessrios se necessrio, e, em seguida, consultar esta tabela.

Importando dados de um arquivo CSV


A maneira mais rpida para carregar ou importar dados (algumas vezes chamado de "carga a granel) a partir de um arquivo CSV combinar a criao da tabela com importao. Opcionalmente, os nomes das colunas e tipos de dados pode ser definido ao criar a tabela. Outra opo usar INSERT INTO ... SELECT . CREATE TABLE TEST AS SELECT * FROM CSVREAD('test.csv'); CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255)) AS SELECT * FROM CSVREAD('test.csv');

Escrevendo um arquivo CSV de dentro de um banco de dados


A funo built-in CSVWRITE pode ser usado para criar um arquivo CSV a partir de uma consulta. Exemplo: CREATE TABLE TEST(ID INT, NAME VARCHAR); INSERT INTO TEST VALUES(1, 'Hello'), (2, 'World'); CALL CSVWRITE('test.csv', 'SELECT * FROM TEST');

Escrevendo um arquivo CSV a partir de um aplicativo Java


O Csv ferramenta pode ser usada em uma aplicao Java, mesmo quando no se usa uma base de dados de todo. Exemplo: import java.sql.*; import org.h2.tools.Csv; import org.h2.tools.SimpleResultSet; public class TestCsv { public static void main(String[] args) throws Exception { SimpleResultSet rs = new SimpleResultSet(); rs.addColumn("NAME", Types.VARCHAR, 255, 0); rs.addColumn("EMAIL", Types.VARCHAR, 255, 0); rs.addRow("Bob Meier", "bob.meier@abcde.abc"); rs.addRow("John Jones", "john.jones@abcde.abc"); new Csv().write("data/test.csv", rs, null); } }

Leitura de um arquivo CSV a partir de um aplicativo Java


www.h2database.com/html/tutorial.html#fulltext 10/18

25/10/13

Tutorial

possvel ler um arquivo CSV sem abrir um banco de dados. Exemplo: import java.sql.*; import org.h2.tools.Csv; public class TestCsv { public static void main(String[] args) throws Exception { ResultSet rs = new Csv().read("data/test.csv", null, null); ResultSetMetaData meta = rs.getMetaData(); while (rs.next()) { for (int i = 0; i < meta.getColumnCount(); i++) { System.out.println( meta.getColumnLabel(i + 1) + ": " + rs.getString(i + 1)); } System.out.println(); } rs.close(); } }

Atualizao, backup e restaurao


Atualizao de banco de dados
A forma recomendada para atualizar a partir de uma verso do motor de banco de dados para a prxima verso a de criar um backup de banco de dados (na forma de um script SQL) usando o motor antigo, e, em seguida, executar o script SQL usando o novo motor.

Backup utilizando a ferramenta Script


A maneira recomendada de fazer backup de um banco de dados criar um arquivo de script SQL comprimido. Isso resultar em uma leitura, e banco de dados verso de backup independente pequeno, humano. Criando o script tambm ir verificar as somas de verificao do arquivo de banco de dados. O Script ferramenta executado da seguinte forma: java org.h2.tools.Script -url jdbc:h2:~/test -user sa -script test.zip -options compression zip Tambm possvel usar o comando SQL SCRIPT para criar o backup do banco de dados. Para mais informaes sobre as opes, consulte o comando SQL SCRIPT . O backup pode ser feito remotamente, no entanto, o arquivo ser criado no lado do servidor. O construdo em servidor de FTP pode ser usado para recuperar o arquivo do servidor.

Restaurar a partir de um script


Para restaurar um banco de dados a partir de um arquivo de script SQL, voc pode usar o RunScript ferramenta: java org.h2.tools.RunScript -url jdbc:h2:~/test -user sa -script test.zip -options compression zip Para mais informaes sobre as opes, consulte o comando SQL RUNSCRIPT . A restaurao pode ser feito remotamente, no entanto, o arquivo precisa estar no lado do servidor. O construdo em servidor de FTP pode ser usado para copiar o arquivo para o servidor. Tambm possvel usar o comando SQL RUNSCRIPT para executar um script SQL. Arquivos de script SQL pode conter referncias a outros arquivos de script, na forma de RUNSCRIPT comandos. No entanto, quando se utiliza o modo de servidor, os arquivos de script referncias precisam estar disponveis no lado do servidor.

Online Backup
O BACKUP Instruo SQL eo Backup ferramenta tanto para criar um arquivo zip com o arquivo de banco de dados. No entanto, o contedo deste arquivo no legvel. O backup resultante transacional consistente, ou seja, a consistncia e atomicidade regras se aplicam. BACKUP TO 'backup.zip'
www.h2database.com/html/tutorial.html#fulltext 11/18

25/10/13

BACKUP TO 'backup.zip'

Tutorial

O Backup ferramenta ( org.h2.tools.Backup ) No pode ser usado para criar uma cpia de segurana em linha, a base de dados no deve estar em uso durante a execuo deste programa. Criando um backup, copiando os arquivos de banco de dados enquanto o banco de dados est sendo executado no suportado, salvo se os sistemas de arquivos suportam a criao de snapshots. Com outros sistemas de arquivos, no possvel garantir que os dados so copiados na ordem certa.

Ferramentas de Linha de Comando


Esta base de dados vem com uma srie de ferramentas de linha de comando. Para obter mais informaes sobre a ferramenta, inicie-o com o parmetro '-', por exemplo: java -cp h2*.jar org.h2.tools.Backup -? As ferramentas de linha de comando so: Backup cria um backup de um banco de dados. ChangeFileEncryption permite alterar a senha de criptografia de arquivos ou algoritmo de um banco de dados. Console inicia o navegador baseado H2 Console. ConvertTraceFile converte um arquivo trace.db. uma aplicao Java e script SQL. CreateCluster cria um cluster de um banco de dados independente. DeleteDbFiles exclui todos os arquivos pertencentes a um banco de dados. Recover ajuda a recuperar um banco de dados corrompido. Restore restaura um backup de um banco de dados. RunScript executa um script SQL contra um banco de dados. Script permite a converso de um banco de dados para um script SQL para backup ou migrao. Server utilizado no modo de servidor para iniciar um servidor de H2. Shell uma ferramenta de banco de dados de linha de comando. As ferramentas tambm pode ser chamado de um aplicativo chamando o principal ou outro mtodo pblico. Para mais detalhes, consulte a documentao do Javadoc.

A ferramenta de Shell
A ferramenta Shell uma ferramenta de linha de comando interativo simples. Para inici-lo, digite: java -cp h2*.jar org.h2.tools.Shell Voc ser solicitado para uma URL do banco de dados, driver JDBC, nome de usurio e senha. A configurao de conexo tambm pode ser definido como parmetros de linha de comando. Depois de conectar, voc ter a lista de opes. Os comandos built-in no precisa terminar com um ponto e vrgula, mas instrues SQL so executados somente se a linha termina com um ponto e vrgula ; . Isto permite inserir instrues multi-linha: sql> select * from test ...> where id = 0; Por padro, os resultados so impressos como uma tabela. Para obter resultados com muitos coluna, considere usar o modo de lista: sql> list Result list mode is now on sql> select * from test; ID : 1 NAME: Hello ID : 2 NAME: World (2 rows, 0 ms)

Utilizando Base de OpenOffice


www.h2database.com/html/tutorial.html#fulltext

OpenOffice.org Base de dados de suporte ao acesso de banco de dados sobre a API JDBC. Para se

12/18

25/10/13

Tutorial

OpenOffice.org Base de dados de suporte ao acesso de banco de dados sobre a API JDBC. Para se conectar a um banco de dados H2 usando Base de OpenOffice, primeiro voc precisa adicionar o driver JDBC para o OpenOffice. Os passos para se conectar a um banco de dados H2 so: Comece OpenOffice Writer, v para [Ferramentas], [Opes] Certifique-se de ter selecionado um ambiente de execuo Java no OpenOffice.org / Java Clique [Caminho Classe ...], [Adicionar Arquivo ...] Selecione o arquivo jar h2 (localizao com voc, pode ser onde quer que voc escolher) Clique em [OK] (tanto quanto necessrio), parar OpenOffice (incluindo a inicializao rpida) Comece Base de OpenOffice Conectar a um banco de dados existente, selecione [JDBC], [Next] Exemplo de fonte de dados URL: jdbc:h2:~/test Classe do driver JDBC: org.h2.Driver Agora voc pode acessar o banco de dados armazenados no diretrio home do usurio atual. Para usar o H2 em NeoOffice (OpenOffice sem X11): Em NeoOffice, v para [NeoOffice], [Preferncias] Procure a pgina em [NeoOffice], [Java] Clique [Caminho Classe], [Adicionar Arquivo ...] Selecione o arquivo jar h2 (localizao com voc, pode ser onde quer que voc escolher) Clique em [OK] (tanto quanto necessrio), reinicie o NeoOffice. Agora, quando a criao de um novo banco de dados usando o "Assistente de Banco de Dados": Clique em [File], [New], [banco de dados]. Selecione [Conectar ao banco de dados existente] e selecione [JDBC]. Clique ao lado. Exemplo de fonte de dados URL: jdbc:h2:~/test Classe do driver JDBC: org.h2.Driver Outra soluo para usar em H2 NeoOffice : Empacotar o frasco h2 dentro de um pacote de extenso Instale-o como uma extenso de Java no NeoOffice Isso pode ser feito por cri-lo usando o plugin do OpenOffice NetBeans. Veja tambm Desenvolvimento Extensions .

Java Web Start / JNLP


Ao usar o Java Web Start / JNLP (Java Network Protocol lanamento), as tags de permisses devem ser definidas no arquivo jnlp., Eo arquivo do aplicativo. Jar deve ser assinado. Caso contrrio, ao tentar escrever para o sistema de arquivos, a seguinte exceo ocorrer: java.security.AccessControlException : Acesso negado ( java.io.FilePermission ... read ). Exemplos de marcas de permisso: <security> <all-permissions/> </security>

Usando um pool de conexo


Para H2, abrindo uma conexo rpida, se o banco de dados j est aberta. Ainda assim, usando um pool de conexo melhora o desempenho se voc abrir e fechar conexes muito. Um pool de conexo simples includo no H2. Ele baseado no Mini Pool Manager Conexo de Christian d'Heureuse. H outros, mais complexos, abertos pools de conexo de base disponveis, por exemplo, o Apache Commons DBCP . Para H2, cerca de duas vezes mais rpido para obter uma conexo do pool de conexo built-in do que para obter um usando DriverManager.getConnection() . O build-in pool de conexo usado como segue: import java.sql.*; import org.h2.jdbcx.JdbcConnectionPool; public class Test { public static void main(String[] args) throws Exception { JdbcConnectionPool cp = JdbcConnectionPool.create(
www.h2database.com/html/tutorial.html#fulltext 13/18

25/10/13

JdbcConnectionPool cp = JdbcConnectionPool.create( "jdbc:h2:~/test", "sa", "sa"); for (int i = 0; i < args.length; i++) { Connection conn = cp.getConnection(); conn.createStatement().execute(args[i]); conn.close(); } cp.dispose(); } }

Tutorial

Pesquisa de texto completo


H2 inclui duas implementaes de busca de texto completo. Uma delas usando Apache Lucene, eo outro (a implementao nativa) armazena os dados do ndice em tabelas especiais no banco de dados.

Usando o Native texto completo Pesquisa


Para iniciar, ligue para: CREATE ALIAS IF NOT EXISTS FT_INIT FOR "org.h2.fulltext.FullText.init"; CALL FT_INIT(); Voc precisa inicializar em cada banco de dados em que voc deseja us-lo. Depois, voc pode criar um ndice de texto completo de uma tabela usando: CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR); INSERT INTO TEST VALUES(1, 'Hello World'); CALL FT_CREATE_INDEX('PUBLIC', 'TEST', NULL); PBLICO o nome do esquema, teste o nome da tabela. A lista de nomes de colunas (separados por vrgula) opcional, neste caso, todas as colunas so indexadas. O ndice atualizado em tempo real. Para procurar o ndice, use a seguinte consulta: SELECT * FROM FT_SEARCH('Hello', 0, 0); Isto ir produzir um conjunto de resultados de consulta que contm o necessrio para recuperar os dados: QUERY: "PUBLIC"."TEST" WHERE "ID"=1 Para excluir um ndice em uma tabela: CALL FT_DROP_INDEX('PUBLIC', 'TEST'); Para obter os dados brutos, use FT_SEARCH_DATA('Hello', 0, 0); . O resultado contm as colunas SCHEMA (O nome do esquema) TABLE (O nome da tabela), COLUMNS (Uma matriz de nomes de colunas) e KEYS (Uma matriz de objetos). Para participar de uma tabela, use uma juno como em: SELECT T.* FROM FT_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0]; Voc tambm pode ligar para o ndice de dentro de uma aplicao Java: org.h2.fulltext.FullText.search(conn, text, limit, offset); org.h2.fulltext.FullText.searchData(conn, text, limit, offset);

Usando o Lucene pesquisa de texto completo


Para usar a pesquisa de texto completo Lucene, voc precisa da biblioteca Lucene no classpath. Atualmente Apache Lucene verso 2.x utilizado por padro para H2 verso 1.2.x, e Lucene verso 3.x usado por padro para H2 verso 1.3.x. Como fazer isso depende da aplicao, se voc usar o Console de H2, voc pode adicionar o arquivo jar Lucene para as variveis de ambiente H2DRIVERS ou CLASSPATH . Para iniciar a pesquisa de texto completo Lucene em um banco de dados, ligue para:
www.h2database.com/html/tutorial.html#fulltext 14/18

25/10/13

Tutorial

CREATE ALIAS IF NOT EXISTS FTL_INIT FOR "org.h2.fulltext.FullTextLucene.init"; CALL FTL_INIT(); Voc precisa inicializar em cada banco de dados em que voc deseja us-lo. Depois, voc pode criar um ndice de texto completo de uma tabela usando: CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR); INSERT INTO TEST VALUES(1, 'Hello World'); CALL FTL_CREATE_INDEX('PUBLIC', 'TEST', NULL); PBLICO o nome do esquema, teste o nome da tabela. A lista de nomes de colunas (separados por vrgula) opcional, neste caso, todas as colunas so indexadas. O ndice atualizado em tempo real. Para procurar o ndice, use a seguinte consulta: SELECT * FROM FTL_SEARCH('Hello', 0, 0); Isto ir produzir um conjunto de resultados de consulta que contm o necessrio para recuperar os dados: QUERY: "PUBLIC"."TEST" WHERE "ID"=1 Para excluir um ndice em uma tabela (ser avisado de que isso ir reindexar todos os ndices de texto completo para todo o banco de dados): CALL FTL_DROP_INDEX('PUBLIC', 'TEST'); Para obter os dados brutos, use FTL_SEARCH_DATA('Hello', 0, 0); . O resultado contm as colunas SCHEMA (O nome do esquema) TABLE (O nome da tabela), COLUMNS (Uma matriz de nomes de colunas) e KEYS (Uma matriz de objetos). Para participar de uma tabela, use uma juno como em: SELECT T.* FROM FTL_SEARCH_DATA('Hello', 0, 0) FT, TEST T WHERE FT.TABLE='TEST' AND T.ID=FT.KEYS[0]; Voc tambm pode ligar para o ndice de dentro de uma aplicao Java: org.h2.fulltext.FullTextLucene.search(conn, text, limit, offset); org.h2.fulltext.FullTextLucene.searchData(conn, text, limit, offset); A busca Lucene suporta a pesquisa de texto completo em apenas coluna especfica. Os nomes das colunas deve ser maiscula (exceto se as colunas originais so o dobro citado). Para os nomes das colunas que comeam com um sublinhado (_), outro sublinhado precisa ser adicionado. Exemplo: CREATE ALIAS IF NOT EXISTS FTL_INIT FOR "org.h2.fulltext.FullTextLucene.init"; CALL FTL_INIT(); DROP TABLE IF EXISTS TEST; CREATE TABLE TEST(ID INT PRIMARY KEY, FIRST_NAME VARCHAR, LAST_NAME VARCHAR); CALL FTL_CREATE_INDEX('PUBLIC', 'TEST', NULL); INSERT INTO TEST VALUES(1, 'John', 'Wayne'); INSERT INTO TEST VALUES(2, 'Elton', 'John'); SELECT * FROM FTL_SEARCH_DATA('John', 0, 0); SELECT * FROM FTL_SEARCH_DATA('LAST_NAME:John', 0, 0); CALL FTL_DROP_ALL(); A implementao de busca Lucene texto completo no est sincronizada internamente. Se voc atualizar o banco de dados e consultar a pesquisa de texto completo ao mesmo tempo (diretamente usando a API Java de H2 ou a prpria Lucene), voc precisa garantir que as operaes so devidamente sincronizados. Se este no o caso, voc pode ter excees, como org.apache.lucene.store.AlreadyClosedException: this IndexReader is closed .

Variveis definidas pelo usurio


Este banco de dados suporta variveis definidas pelo usurio. Variveis c omeam com @ e pode ser utilizado sempre que as expresses ou parmetros so permitidos. Variveis no so persistentes e escopo de sesso, o que significa apenas visvel a partir da sesso em que eles so definidos. O valor geralmente atribudo utilizando o comando SET:
www.h2database.com/html/tutorial.html#fulltext 15/18

25/10/13

Tutorial

SET @USER = 'Joe'; O valor tambm pode ser alterado usando o mtodo set (). Isso til em consultas: SET @TOTAL = NULL; SELECT X, SET(@TOTAL, IFNULL(@TOTAL, 1.) * X) F FROM SYSTEM_RANGE(1, 50); Variveis que no so definidas para avaliar NULL . O tipo de uma varivel definida pelo usurio de dados o tipo do valor que lhe atribudo de dados, o que significa que no necessrio (ou possvel) para declarar nomes de variveis antes de us-los. No h restries sobre os valores atribudos; objetos grandes (LOB) so suportados tambm. Revertendo uma transao no afeta o valor de uma varivel definida pelo usurio.

Data e Hora
Valores de data, hora e timestamp apoiar a formatao ISO 8601, incluindo o fuso horrio: CALL TIMESTAMP '2008-01-01 12:00:00+01:00'; Se o fuso horrio no est definido, o valor analisado usando a configurao de fuso horrio atual do sistema. Data e hora a informao armazenada em arquivos de banco de dados H2, sem informaes de fuso horrio. Se o banco de dados aberto usando um outro fuso horrio do sistema, a data eo horrio ser o mesmo. Isso significa que se voc armazenar o valor '2000-01-01 00:00:00 'em um fuso horrio, em seguida, feche o banco de dados e abrir o banco de dados novamente em um fuso horrio diferente, voc tambm ir receber '2000-01-01 dezembro : 00:00 '. Por favor, note que a mudana do fuso horrio aps o motorista H2 carregado no suportado.

Usando Spring
Usando o servidor TCP
Use a seguinte configurao para iniciar e parar o servidor TCP H2 usando o Spring Framework: <bean id = "org.h2.tools.Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop"> <constructor-arg value="-tcp,-tcpAllowOthers,-tcpPort,8043" /> </bean> O destroy-method ir ajudar a evitar excees em hot-reafectao ou quando reiniciar o servidor.

Incompatibilidade Cdigo de erro


Existe uma incompatibilidade com a mola JdbcTemplate e H2 verso 1.3.154 e mais recente, devido a uma alterao no cdigo de erro. Isso far com que o JdbcTemplate para no detectar uma condio de chave duplicada, e assim a DataIntegrityViolationException lanada em vez de DuplicateKeyException . Veja tambm a questo SPR-8235 . A soluo adicionar o seguinte arquivo XML para a raiz do classpath: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" > <import resource="classpath:org/springframework/jdbc/support/sql-error-codes.xml"/> <bean id = "H2" class="org.springframework.jdbc.support.SQLErrorCodes"> <property name="badSqlGrammarCodes"> <value> 42000,42001,42101,42102,42111,42112,42121,42122,42132 </value> </property>
www.h2database.com/html/tutorial.html#fulltext 16/18

25/10/13

</property> <property name="duplicateKeyCodes"> <value>23001,23505</value> </property> <property name="dataIntegrityViolationCodes"> <value>22003,22012,22025,23000</value> </property> <property name="dataAccessResourceFailureCodes"> <value>90046,90100,90117,90121,90126</value> </property> <property name="cannotAcquireLockCodes"> <value>50200</value> </property> </bean> </beans>

Tutorial

OSGi
O frasco H2 padro pode ser descartado como um pacote em um continer OSGi. H2 implementa o Servio JDBC definido no OSGi Servio Platform Release 4 Verso 4.2 Especificao da empresa. O H2 servio Fbrica de fonte de dados registrado com as seguintes propriedades: OSGI_JDBC_DRIVER_CLASS=org.h2.Driver e OSGI_JDBC_DRIVER_NAME=H2 . O OSGI_JDBC_DRIVER_VERSION propriedade reflete a verso do motorista como . As seguintes propriedades de configurao padro so suportados: JDBC_USER, JDBC_PASSWORD, JDBC_DESCRIPTION, JDBC_DATASOURCE_NAME, JDBC_NETWORK_PROTOCOL, JDBC_URL, JDBC_SERVER_NAME, JDBC_PORT_NUMBER . Qualquer outra propriedade padro sero rejeitados. Propriedades no-padro sero repassados para H2 na URL de conexo.

Java Gesto Extension (JMX)


Gesto sobre JMX suportado, mas no habilitado por padro. Para habilitar JMX, acrescente ;JMX=TRUE para o URL do banco quando se abre a base de dados. Vrias ferramentas de apoio JMX, uma dessas ferramentas o jconsole . Ao abrir o jconsole , Conectar-se ao processo em que o banco de dados estiver aberto (quando se utiliza o modo de servidor, necessrio conectar-se ao processo de servidor). Ento v para o MBeans seco. Em org.h2 voc vai encontrar uma entrada por banco de dados. O nome do objeto de entrada o nome abreviado de banco de dados, mais o caminho (cada clon substitudo por um caractere sublinhado). Os seguintes atributos e operaes so suportados: CacheSize : O tamanho do cache em uso atualmente em KB. CacheSizeMax (Leitura / escrita): o tamanho mximo do cache em KB. Exclusive : Se este banco de dados aberto no modo exclusivo ou no. FileReadCount : O nmero de operaes de leitura de arquivos desde o banco de dados foi aberto. FileSize : O tamanho do arquivo em KB. FileWriteCount : O nmero de operaes de gravao de ficheiro uma vez que a base de dados foi aberto. FileWriteCountTotal : O nmero de operaes de gravao de ficheiro uma vez que a base de dados foi criada. LogMode (Leitura / escrita): o modo de log de transaes correntes. Ver SET LOG para mais detalhes. Mode : O modo de compatibilidade ( REGULAR se nenhum modo de compatibilidade usado). MultiThreaded : True se multi-threaded est habilitado. Mvcc : True se MVCC ativado. ReadOnly : True se o banco de dados somente leitura. TraceLevel (Leitura / escrita): o nvel de rastreamento de arquivos. Version : A verso de base de dados em uso. listSettings : Listar as configuraes de banco de dados. listSessions : Listar as sesses abertas, incluindo a instruo atualmente em execuo (se houver) e tabelas bloqueadas (se houver). Para habilitar JMX, pode ser necessrio para definir as propriedades do sistema com.sun.management.jmxremote e com.sun.management.jmxremote.port conforme exigido pela JVM.
www.h2database.com/html/tutorial.html#fulltext 17/18

25/10/13

JVM.

Tutorial

www.h2database.com/html/tutorial.html#fulltext

18/18