Вы находитесь на странице: 1из 13

- Incio e como usar o Console H2 A aplicao 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 aplicao cliente / servidor, portanto, um servidor e um cliente (um browse r) so necessrios para execut-lo. - Dependendo da sua plataforma e ambiente, existem vrias 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 ttulo deve aparecer . Ao usar o Sun JDK 1.6, um cone ser adicionado bandeja do sistema: Se voc no obter a janela e o cone da bandeja do sistema, ento talvez o Java no esteja instalado corretamente (neste caso, tente outra maneira de iniciar a a plicao). A janela do navegador deve abrir e "apontar" para a pgina 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 pgina de login (URL: htt p://localhost:8082). Qualquer: Clique duas vezes no arquivo h2*.jar. Isso s funciona se a extenso .jar estiver associado com o 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 vo c tiver instalado um). Se voc no quer que outros computadores na rede tenham acesso ao aplicativo em sua mquina, voc pode deixar o firewall bloquear essas ligaes. A conexo da mquina local ainda funcionar. Se voc deseja que outros computadores tenh am acesso ao 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 mui to lento quando conectado via o endereo IP. A soluo conectar usando 'localhost'. Um firewall pequeno j est embutido no servidor: outros computadores podem no se conectar ao servidor por padro. Para mudar isso, v a "Preferncias" e selecione "Permitir conexes de outros computad ores. - Testes de Java Para saber 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 J ava para a varivel de ambiente do caminho. - Mensagem de erro 'Port may be in use " Voc pode iniciar apenas uma instncia do Console H2, caso contrrio, voc ter a seguinte mensagem de erro: "O servidor Web no pde ser iniciado, possvel causa: um outro servidor j est e m execuo ...". possvel iniciar vrios aplicativos de console no mesmo computador (usando portas di ferentes), mas isso, geralmente, no necessrio por que o console suporta mltiplas co nexes simultneas. - Usando outro 'Port' Se a porta padro do console H2 j est em uso por outro aplicativo, em seguida, uma p orta diferente precisa ser configurada. As configuraes so armazenadas em um arquivo de propriedades. Para mais detalhes, co nsulte Configuraes do Console de H2. A entrada WebPort. Se nenhuma porta for especificado para o TCP e servidores PG, cada servio vai ten tar escutar em sua porta padro. Se a porta padro j est em uso, uma porta aleatria usada. - Conectando ao Servidor utilizando um Browser Se o servidor foi iniciado com xito, voc pode se conectar a ele usando um navegado r web. O Javascript precisa estar habilitado. Se voc iniciou o servidor no mesmo computa dor que o navegador, abra a URL http://localhost:8082. Se voc deseja se conectar a aplicao de outro computador, voc precisa fornecer o endereo IP do servidor, por ex emplo: http://192.168.0.2:8082. Se voc ativou a SSL no lado do servidor, a URL deve comear com https://. - Vrias sesses simultneas Mltiplas sesses simultneas pelo browser so suportados. Como os objetos do banco de dados residem no servidor, a quantidade de trabalho simultneas limitado pela memria disponvel para o aplicativo do servidor. - Login Na pgina de login, voc precisa fornecer informaes de conexo para se conectar a um ban co de dados. Defina a classe do driver JDBC de seu banco de dados, a URL JDBC, nome de usurio e senha. Se voc estiver pronto, clique em [Connect]. Voc pode salvar e reutilizar as configuraes salvas anteriormente. As definies so armazenadas em um arquivo de propriedades (consulte Configuraes do Con sole H2). - Mensagens de erro Mensagens de erro no so mostradas em vermelho. Voc pode mostrar / esconder o rastr eamento da pilha de exceo, clicando sobre a mensagem. - Adicionando drivers do banco de dados Para registrar drivers JDBC adicionais (MySQL, PostgreSQL, HSQLDB ,...), adicion

e os nomes de arquivos jar para as variveis ??do ambiente H2DRIVERS ou CLASSPATH. Exemplo (Windows): para adicionar o driver JDBC HSQLDB; C: \ Programas \ hsqldb \ lib \ hsqldb.jar, defina o H2DRIVERS varivel de ambiente para C: \ Programas \ hsqldb \ lib \ hsqldb.jar. Vrios drivers podem ser definidos; as entradas devem ser separadas por: (Windows) ou (outros sistemas operacionais). Espaos nos nomes de caminho so suportados. As configuraes no devem ser citadas. - Usando o Console de H2 A aplicao Console H2 tem trs painis principais: a barra de ferramentas no topo, a "rvore" esquerda, e o painel de consulta / resultado direita. Os objetos de banco de dados (por exemplo, tabelas) so listados esquerda. Digite um comando SQL no painel de consulta e clique em [Executar]. O resultado aparece logo abaixo do comando. - Inserindo nomes de tabela ou coluna Para inserir os nomes das tabelas e colunas para o script, clique no item na "rvo re". Se voc clicar em uma tabela enquanto a consulta est vazia, ento SELECT * FROM ... a dicionado. Ao digitar uma consulta, a tabela que foi usada expandida na rvore. Por exemplo se voc digitar SELECT * FROM TEST T WHERE T, ento a tabela TEST expand ida. - Desligar e interromper o aplicativo Para sair do banco de dados, clique em [Desligar] no painel de barra de ferramen tas. No entanto, o servidor ainda est funcionando e pronto para aceitar novas sesses. Para parar o servidor, clique direito no cone da bandeja do sistema e selecione [ Exit]. Se voc no tem o cone na bandeja do sistema, navegue at [Preferncias] e clique em [Shu tdown], pressione [Ctrl] + [C] no console, onde o servidor foi iniciado (Windows ), ou feche a janela do console. - Sintaxe Console especial H2 O H2 Console suporta alguns comandos internos. Esses so interpretados dentro do C onsole H2, ento eles trabalham com qualquer banco de dados. Esses comandos precisam estar no incio de uma declarao (antes de qualquer interveno), caso contrrio, eles no so analisados ??corretamente. Em caso de dvida, acrescentar antes do comando. - Configuraes do Console H2 As configuraes do console de H2 so armazenados em um arquivo de configurao chamado .h 2.server.properties no diretrio do seu usurio. Para instalaes do Windows, o diretrio do usurio geralmente C: \ Documents and Settin gs \ [usurio]. O arquivo de configurao contm as configuraes do aplicativo e criado automaticamente uando o console de H2 iniciado. As configuraes suportadas so: webAllowOthers: permite que outros computadores se conectem. WebPort: a porta do Console H2.

webSSL: usa conexes criptografadas (HTTPS). Alm dessas definies, as propriedades da ltima conexo utilizada so listados na forma < umber> = <name> <driver> <url> <user> usando o caractere de escape \. Exemplo: 1 = Generic H2 (Embedded) org.h2.Driver jdbc \: h2 \: ~ / teste A S - Conectar a um banco de dados usando JDBC Para se conectar a um banco de dados, um aplicativo Java primeiro precisa carreg ar o driver de banco de dados, e ento 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", "AS", ""); // add application code here conn.close(); } } Esse cdigo primeiro carrega o driver (Class.forName (...)) e ento abre uma conexo ( usando DriverManager.getConnection ()). O nome do driver "org.h2.Driver". A URL do banco de dados sempre precisa comear c om jdbc: h2: para ser reconhecido por este banco de dados. O segundo parmetro na getConnection() o nome de usurio (AS de Administrador do Sis tema, neste exemplo). O terceiro parmetro a senha. Neste banco de dados, nomes de usurio no so case sensitive, mas as senhas so. - Criao de 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 b anco de dados. "Auto-criar" o novo banco de dados pode ser desativado, consulte Opening a Datab ase Only if it Already Exists (Abrindo um Banco de Dados somente se este existe) . - Usando o Servidor H2 atualmente suporta trs servidores: um servidor web (para o Console de H2), um servidor TCP (para conexes cliente / servidor) e um servidor de PG (para clientes PostgreSQL). Por favor note que apenas o servidor web browser suporta conexes. Os servidores p odem ser iniciados de diferentes maneiras, uma usando a ferramenta Server. - Iniciando a Ferramenta Server na linha de comando Para iniciar a ferramenta Server da linha de comando com as configuraes padro, exec ute: java-cp h2 *. jar org.h2.tools.Server Isto ir iniciar a ferramenta com as opes padro. Para obter a lista de opes e valores adro, execute: java-cp h2 *. jar org.h2.tools.Server -?

Existem opes disponveis para utilizar outras portas, e iniciar ou no iniciar partes. - Conectando ao Servidor TCP Para se conectar remotamente a um banco de dados usando o servidor TCP, use o se guinte driver e URL do banco de dados: JDBC driver class: org.h2.Driver Database URL: jdbc:h2:tcp://localhost/~/test Para mais detalhes sobre a URL do banco de dados, ver tambm em "Recursos". Por favor, note que voc no pode conectar com um navegador da web para este URL. Vo c s pode se conectar usando um cliente H2. - Iniciando o Servidor TCP dentro de um aplicativo Servidores tambm pode ser iniciado e interrompido a partir de uma aplicao. Cdigo de exemplo: 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 TCP pode ser interrompido a partir de outro processo. Para parar o se rvidor a partir da linha de comando, execute: java org.h2.tools.Server-tcpShutdown tcp: / / localhost: 9092 Para parar o servidor de uma aplicao do usurio, use o seguinte cdigo: org.h2.tools.Server.shutdownTcpServer ("tcp: / / localhost: 9094"); Esta funo s ir parar o servidor TCP. Se outros servidores foram iniciados no mesmo p rocesso, eles vo continuar a executar. Para evitar a recuperao, quando as bases de dados forem abertos na prxima vez, toda s as ligaes s bases de dados devem ser fechados antes de chamar esse mtodo. Para parar um servidor remoto, conexes remotas devem estar habilitadas no servido r. Desligar um servidor TCP pode ser protegida usando a opo -tcpPassword (a mesma senha deve ser usado para iniciar e parar o servidor TCP). - Utilizando Hibernate Este banco de dados suporta Hibernate verso 3.1 e mais recentes. Voc pode usar o H SQLDBDialect, ou o H2Dialect. Infelizmente, o H2Dialect includo em algumas verses antigas do Hibernate foi bugad o. Um patch para o Hibernate foi enviada e agora aplicado. Voc pode renome-lo para H2 Dialect.java e incluir esta como um patch em seu aplicativo, ou atualizar para u ma verso do Hibernate, onde este fixo. Ao usar Hibernate, tentar usar o H2Dialect se possvel. Ao usar o H2Dialect, modos de compatibilidade, como MODE = MySQL no so suportados. Ao usar esse modo de compatibilidade, use o HibernateDialect para o banco de dad os correspondente em vez do H2Dialect. - Usando TopLink e Glassfish Para usar o H2 com Glassfish (ou Sun AS), defina o Classname Datasource para org .h2.jdbcx.JdbcDataSource. Voc pode definir isso no GUI em Application Server - Recursos - JDBC - Connection Pools, ou editando o arquivo sun-resources.xml: no elemento de conexo jdbc-pool,

defina o atributo datasource-classname para org.h2.jdbcx.JdbcDataSource. O banco de dados H2 compatvel com HSQLDB e PostgreSQL. Para tirar proveito dos re cursos H2 especfico, utilize o H2Platform. O cdigo fonte desta plataforma est includo no H2 em src/tools/oracle/toplink/essent ials/platform/database/DatabasePlatform.java.txt. Voc ter que copiar este arquivo para sua aplicao, e renome-lo para .java. Para habili t-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 dentro Glassfish, copie o h2 *. jar para o diretrio glassfish / gl assfish / lib. - Usando EclipseLink Para usar o H2 em EclipseLink, use a classe da plataforma org.eclipse.persistenc e.platform.database.H2Platform. Se esta plataforma no est disponvel na sua verso do EclipseLink, voc pode usar o Orac lePlatform vez em muitos casos. Veja tambm H2Platform. - Usando Apache ActiveMQ Quando utilizar H2 como banco de dados para o Apache ActiveMQ, por favor use o T ransactDatabaseLocker em vez de o mecanismo de bloqueio padro. Caso contrrio o arquivo de banco de dados ir crescer sem limites. O problema que o mecanismo de bloqueio padro usa uma transao UPDATE no confirmada, o que mantm o regi sto de transaes de encolhimento (faz com que o arquivo de banco de dados pare de c rescer). Em vez de usar uma instruo UPDATE, o TransactDatabaseLocker utiliza SELECT ... FOR UPDATE que no problemtico. Para us-lo, mude a configurao do elemento ApacheMQ <jdbcPersistenceAdapter> databas eLocker = "org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker". No entanto, usando o modo de MVCC voltar a resultar no mesmo problema. Portanto, por favor no use o modo MVCC neste caso. Outra soluo (mais perigosa) definir useDat abaseLock para false. - 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. H um problema conhecido quando se utiliza o Netbeans SQL Execution Window: antes de executar uma consulta, outra consulta na forma SELECT COUNT (*) FROM <query> executado. Este um problema para consultas que modificam o estado, como SEQ.NEXTVAL SELECT. Neste caso, dois valores da sequncia so atribudos ao invs de apenas um. - Usando bancos de dados em aplicativos da Web Existem vrias maneiras de acessar um banco de dados de dentro de aplicaes web. Aqui esto alguns exemplos, se voc usar o Tomcat ou JBoss. - Modo embutido A soluo mais simples (atualmente) usar o banco de dados no modo incorporado, o que significa abrir uma conexo em seu aplicativo quando ele comea (uma boa soluo utiliz ar um Servlet Listener, veja abaixo), ou quando uma sesso iniciada.

Um banco de dados pode ser acessado de vrias sesses e aplicativos ao mesmo tempo, contanto que eles corram no mesmo processo. A maioria dos servidores (Tomcat, por exemplo) apenas usam um processo, de modo que este no um problema (a menos que voc execute no modo Tomcat em cluster). Tomcat usa vrios segmentos e classloaders mltiplas. Se vrios aplicativos acessarem o mesmo banco de dados ao mesmo tempo, voc precisa colocar o jar do banco de dado s no shared/lib ou server/lib. uma boa idia para abrir o banco de dados quando a aplicao web comea, e fech-lo quand a aplicao web para. Se usar vrias aplicaes, apenas um (qualquer) deles tem de fazer isso. Na aplicao, uma idia usar uma conexo por sesso, ou mesmo uma conexo por pedido (a as conexes devem ser fechadas aps o uso, se possvel (mas no assim to mau se no for hado). - Modo de servidor O modo de servidor semelhante, mas permite que voc execute o servidor em outro pr ocesso. Usando um Servlet Listener para iniciar e parar um banco de dados. Adicione o arquivo h2*. jar para a sua aplicao web, e adicionar o seguinte trecho ao seu arquivo web.xml: <listener> <listener-class>org.h2.server.web.DbStarter</listener-class> </listener> Para obter detalhes sobre como acessar o banco de dados, consulte o arquivo DbSt arter.java. Por padro, essa ferramenta abre uma conexo incorporada usando o banco de dados da URL jdbc: h2: ~ / teste, nome de usurio AS, e a senha AS. Se voc quiser usar essa conexo dentro do seu servlet, voc pode acessar da seguinte forma: Connection conn = getServletContext().getAttribute("connection"); DbStarter tambm pode iniciar o servidor TCP, porm este desativado por padro. Para h abilit-lo, use o parmetro db.tcpServer no arquivo web.xml. Aqui est a lista complet a de opes. Estas opes devem ser colocadas entre a tag de descrio e as tags listener / filter: <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 autom aticamente. Se o servidor TCP iniciado dentro do DbStarter, ele tambm ser interrom pido automaticamente. - Usando o H2 Console Servlet O H2 Console um aplicativo independente e inclui seu prprio servidor web, mas pod e ser usado como um servlet tambm. Para fazer isso, inclua o arquivo do h2 *. jar na sua aplicao, e adicione a seguin te configurao ao seu web.xml:

<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 detalhes, ver tambm src / tools / WEB-INF / web.xml. Para criar um aplicativo web com apenas o Console H2, execute o seguinte comando : build warConsole - Android Voc pode usar esta base de dados em um dispositivo Android (usando o VM Dalvik) e m vez de, ou alm do SQLite. At agora, apenas poucos testes e benchmarks foram executados, mas parece que o de sempenho semelhante ao SQLite, exceto para abrir e fechar um banco de dados, que ainda no est otimizado em H2 (H2 leva cerca de 0,2 segundos, e SQLite cerca de 0, 02 segundos). Operaes de leitura parecem ser um pouco mais rpidas que SQLite, e operaes de gravao ecem ser mais lentas. At agora, apenas poucos testes foram executados, e tudo par ece funcionar como esperado. Fulltext pesquisa ainda no foi testado, no entanto, a pesquisa de texto nativo deve funcionar. Os arquivos de banco de dados precisam ser armazenado em um lugar que seja acessv el para a aplicao. Exemplo: String url = "jdbc:h2:/data/data/" + "com.example.hello" + "/data/hello" + ";FILE_LOCK=FS" + ";PAGE_SIZE=1024" + ";CACHE_SIZE=8192"; Class.forName("org.h2.Driver"); conn = DriverManager.getConnection(url); ... Limitaes: Usando uma connection pool no suportada atualmente, porque as classes jav ax.sql necessrias, no esto disponveis no Android. - Suporte CSV (Comma Separated Values) O suporte a arquivos CSV podem ser usados ??dentro do banco de dados usando as f unes CSVREAD e CSVWRITE, ou ele pode ser usado fora do banco de dados como uma fer ramenta autnoma. - Lendo um arquivo CSV de dentro de um banco de dados Um arquivo CSV pode ser lido usando o CSVREAD funo. exemplo:

SELECT * FROM CSVREAD ('test.csv'); Por favor, note por motivos de desempenho, CSVREAD no deve ser usado dentro de um JOIN. Em vez disso, importe os primeiros dados (possivelmente em uma tabela tem porria), crie os ndices necessrios, se necessrio, e, em seguida, consulta esta tabel a. - Importando dados de um arquivo CSV Uma maneira rpida para carregar ou importar dados (algumas vezes chamado de "carg a a granel") de um arquivo CSV combinar com a criao da tabela de importao. Opcionalm ente, 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 CSVWRITE pode ser usada 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 de um aplicativo Java A ferramenta CSV pode ser usado em um aplicativo Java, mesmo quando no estiver us ando um banco de dados. 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"); Csv.getInstance().write("data/test.csv", rs, null); } } - Lendo um arquivo CSV de um aplicativo Java 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 = Csv.getInstance(). 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(); } } - Upgrade, Backup e restaurao Upgrade do banco de dados A forma recomendada para atualizar de uma verso do banco de dados para a prxima ve rso a de criar um backup do banco de dados (na forma de um script SQL) usando o a ntigo, e depois executar o script SQL usando o novo. - Backup usando a ferramenta Script Existem maneiras diferentes de fazer backup de um banco de dados. Por exemplo, p ossvel copiar os arquivos de banco de dados. No entanto, isso no recomendado, enqu anto o banco de dados est em uso. Alm disso, os arquivos de banco de dados no so legveis e so bem grande. A maneira rec omendada de backup um banco de dados criar um arquivo compactado script SQL. Ist o pode ser feito usando a ferramenta Script: java org.h2.tools.Script -url jdbc:h2:~/test -user sa -script test.zip -options compression zip Tambm possvel usar o script de comando SQL para criar o backup do banco de dados. Para mais informaes sobre as opes, consulte o script do comando SQL. O backup pode s er feito remotamente, no entanto, o arquivo ser criado no lado do servidor. Construdo no servidor FTP pode ser usado para recuperar o arquivo do servidor. - Restaurar a partir de um script

Para restaurar um banco de dados de um arquivo de script SQL, voc pode usar a fer ramenta RunScript: java org.h2.tools.RunScript -url jdbc:h2:~/test -user sa -script test.z ip -options compression zip Para mais informaes sobre as opes, consulte o RunScript comando SQL. A restaurao pode ser feita remotamente, no entanto, o arquivo precisa ser no lado do servidor. Co nstrudo no servidor FTP pode ser usado para copiar o arquivo para o servidor. Tambm possvel usar o comando SQL RunScript para executar um script SQL. Arquivos d e script SQL pode conter referncias a outros arquivos de script, na forma de coma ndos RunScript. No entanto, ao usar o modo de servidor, os arquivos de script refernciais precisa m estar disponveis no lado do servidor. - Backup on-line A instruo SQL ea ferramenta de Backup tanto criar um arquivo zip com todos os arqu ivos de banco de dados. No entanto, o contedo deste arquivo no legvel. A cpia de segurana resultante transacional consistente, o que significa a consistnc ia e atomicidade regras se aplicam. BACKUP TO 'backup.zip' A ferramenta Backup (org.h2.tools.Backup) no pode ser usado para criar um backup online, o banco de dados no deve estar em uso durante a execuo deste programa. Criando um backup para copiar os arquivos de banco de dados enquanto o banco de dados est sendo executado no suportado, salvo se os sistemas de arquivos suporta a criao de snapshots. O problema que no se pode 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 obte r mais informaes sobre uma ferramenta, inici-lo com o parmetro'-?', por exemplo: java -cp h2*.jar org.h2.tools.Backup -?

- Usando o OpenOffice Base OpenOffice.org Base suporta o acesso de banco de dados sobre a API JDBC. Para se conectar a um banco de dados H2 usando o OpenOffice Base, primeiro voc precisa a dicionar o driver JDBC para o OpenOffice. Os passos para se conectar a um banco de dados H2 so: Iniciar o OpenOffice Writer, v para [ferramentas], [Opes] Certifique-se de ter selecionado um ambiente de execuo Java em OpenOffice.org / Ja va Clique em [Path Classe ...], [Adicionar Arquivo ...] Selecione o arquivo h2.jar (localizao com voc, poderia ser qualquer lugar que voc es colher) Clique em [OK] (tanto quanto necessrio), pare o OpenOffice (incluindo o Quickstar ter) Inicie Base OpenOffice Conecte a um banco de dados existente; selecione [JDBC], [Next] Exemplo datasource URL: jdbc: h2: ~ / teste JDBC driver class: org.h2.Driver Agora voc pode acessar o banco de dados armazenado no diretrio atual usurios domstic os. Para usar o H2 em NeoOffice (OpenOffice sem X11): No NeoOffice, v para [NeoOffice], [Preferncias] Olhe para a pgina em [NeoOffice], [Java] Clique em [Path Class], [Adicionar Arquivo ...] Selecione o arquivo h2.jar (localizao com voc, poderia ser qualquer lugar que voc es colher) Clique em [OK] (tanto quanto necessrio), reinicie o NeoOffice. Agora, ao criar um novo banco de dados usando o "Database Wizard": Clique em [File], [Novo], [banco de dados]. Selecione [Ligar para banco de dados existente] e selecione [JDBC]. Clique em Av anar. Exemplo datasource URL: jdbc: h2: ~ / teste JDBC driver class: org.h2.Driver Outra soluo para uso em H2 NeoOffice : O pacote jar h2 dentro de um pacote de extenso Instal-lo como uma extenso de Java no NeoOffice Isto pode ser feito por cri-lo usando o plugin NetBeans OpenOffice. Ver tambm Exte nsions Development. - Usando uma Connection Pool Para H2, abrir uma conexo rpido se o banco de dados j est aberto. Ainda assim, usand o uma Connection Pool melhora o desempenho se voc abrir e fechar conexes. Uma Conn ection pool simples includo no H2. Ele baseado no Mini Connection Manager Pool de Christian d'Heureuse. H outros, ma is complexos, cdigos abertos de connection pool disponveis, por exemplo, o Apache Commons DBCP. Para H2, cerca de duas vezes mais rpido para obter uma conexo do con nection pool do que para obter um usando DriverManager.getConnection() O connect ion pool 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( "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(); } } - Pesquisa de texto completo H2 inclui duas implementaes de pesquisa de texto. Uma est usando Apache Lucene, e o utro (a implementao nativa) armazena os dados do ndice em tabelas especiais no banc o de dados. Para inicializar, chame: CREATE ALIAS IF NOT EXISTS FT_INIT FOR "org.h2.fulltext.FullText.init"; CALL FT_INIT(); Voc precisa inicializ-lo em cada banco de dados onde voc quer us-lo. Depois, voc pode criar um ndice de texto completo para 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); PUBLIC o nome do esquema, TEST o nome da tabela. A lista de nomes de colunas (co luna separada) opcional, neste caso, todas as colunas so indexadas. O ndice atuali zado em tempo real. Para pesquisar o ndice, use a seguinte consulta: SELECT * FROM FT_SEARCH('Hello', 0, 0); Isso ir produzir um conjunto de resultados que contm a consulta necessrios para rec uperar os dados: QUERY: "PUBLIC"."TEST" WHERE "ID"=1 Voc tambm pode chamar o ndice de dentro de um aplicativo Java: org.h2.fulltext.FullText.search(conn, text, limit, offset); org.h2.fulltext.FullText.searchData(conn, text, limit, offset); - utilizando Spring Usando o Servidor TCP Use a seguinte configurao para iniciar e parar o H2 servidor TCP usando o Spring F ramework: <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,true,-tcpPort,8043" /> </bean> O mtodo de destroy-method ajuda a evitar excees em quando reiniciar o servidor. H uma incompatibilidade com o JdbcTemplate Spring e verso H2 1.3.154 e mais recent e, por causa de uma mudana no cdigo de erro. Isso far com que o JdbcTemplate no dete cte uma condio de chave duplicada, e assim uma DataIntegrityViolationException jog ado em vez de DuplicateKeyException. Ver tambm a issue SPR-8235. A soluo adicionar o seguinte arquivo XML na raiz do cla sspath: <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> <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>

Вам также может понравиться