Pregunta ¿Dónde se almacenan los datos en las bases de datos integradas de H2?


Recientemente comencé a aprender cómo funcionan las bases de datos, cómo usar SQL ect. y decidí comenzar a implementar una base de datos incrustada en mi aplicación Java (específicamente la base de datos H2) y parecía funcionar bastante bien en la computadora que estaba codificando.

Cuando me mudé a una computadora diferente para continuar con la codificación, noté que incluso si transfería el archivo de base de datos incrustado (h2 - *. Jar), ​​todas las tablas preparadas que creé en la primera computadora no existen en la segunda. De alguna manera tuve la idea de que los datos reales generados a través del motor de la base de datos también se almacenan en el archivo de base de datos incrustado.

Entonces mi pregunta es, ¿dónde se almacenan realmente los datos de la base de datos? ¿Es posible preparar una base de datos que ya contenga miles de registros y distribuirla con la aplicación real?

También debo mencionar que la forma en que me conecté a la base de datos en la primera computadora fue a través de una conexión JDBC, es decir, la URL: JDBC: h2: ~ / test y cuando traté de conectarme a esa base de datos en la segunda computadora no existía.

¡Gracias!


36
2018-02-27 08:08


origen


Respuestas:


Leer el Preguntas más frecuentes:

¿Dónde están almacenados los archivos de la base de datos?

Al usar URL de base de datos como jdbc:h2:~/test, la base de datos se almacena en el directorio de usuario. Para Windows, esto es usualmente C:\Documents and Settings\<userName> o C:\Users\<userName>. Si el directorio base no está configurado (como en jdbc:h2:./test), los archivos de la base de datos se almacenan en el directorio donde se inicia la aplicación (el directorio de trabajo actual). Cuando se utiliza la aplicación H2 Console desde el menú de inicio, esto es <Installation Directory>/bin. El directorio base se puede establecer en la URL de la base de datos. Se puede usar una ruta fija o relativa. Cuando usas la URL jdbc:h2:file:./data/sample, la base de datos se almacena en los datos del directorio (relativos al directorio de trabajo actual). El directorio se crea automáticamente si aún no existe. También es posible usar el nombre completo del directorio (y para Windows, nombre de la unidad). Ejemplo: jdbc:h2:file:C:/data/test


65
2018-02-27 08:12



los h2-*.jar es solo un motor (el código) de la base de datos. Es de solo lectura y no almacena ninguna información. Los datos en H2 se pueden almacenar en la memoria o en el disco en un archivo especificado. En realidad estás especificando uno:

JDBC:h2:~/test/

Encontrará su base de datos en su directorio de inicio en test subdirectorio. Simplemente copie estos archivos en un directorio de inicio en otra computadora y H2 los encontrará siempre que use la misma URL.


11
2018-02-27 08:12