"De forma predeterminada, cuando una aplicación llama DriverManager.getConnection(url, ...)
y la base de datos especificada en la URL aún no existe, se crea una nueva base de datos (vacía)". - Base de datos H2 .
Anexo: @Thomas Mueller muestra cómo ejecutar SQL en la conexión , pero a veces solo creo y completo el código, como se sugiere a continuación.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/** @see http://stackoverflow.com/questions/5225700 */
public class H2MemTest {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection("jdbc:h2:mem:", "sa", "");
Statement st = conn.createStatement();
st.execute("create table customer(id integer, name varchar(10))");
st.execute("insert into customer values (1, 'Thomas')");
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("select name from customer");
while (rset.next()) {
String name = rset.getString(1);
System.out.println(name);
}
}
}
<property name="hibernate.connection.url">jdbc:h2:mem:test;INIT=RUNSCRIPT FROM 'script1.sql'\\\;RUNSCRIPT FROM script2.sql'</property>
en su configuración de hibernación.;
no es necesario escapar (hay un sin escapar;
antes deINIT
). ¿Podría intentarlo si usar solo una barra invertida funciona?'script1.sql'\;RUNSCRIPT...