Невозможно соединить H2 DB с Hibernate - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь создать небольшую базу данных H2 в памяти при использовании спящего режима. Но таблица не отображается в интерфейсе H2. Я не уверен, нужно ли мне что-либо еще включать в конфигурацию.

Вот код: Ниже добавлены зависимости для hibernate и h2 DB.

pom.xml

<dependency>  
    <groupId>org.hibernate</groupId>  
    <artifactId>hibernate-core</artifactId>  
    <version>5.3.1.Final</version>  
</dependency> 

<dependency>  
    <groupId>com.h2database</groupId>  
    <artifactId>h2</artifactId>  
    <scope>runtime</scope>
    <version>1.4.200</version> 

</dependency>  

Это XML-файл конфигурации, содержащий все подробности базы данных H2.

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE hibernate-configuration PUBLIC  
        "-//Hibernate/Hibernate Configuration DTD 5.3//EN"  
        "http://www.hibernate.org/dtd/hibernate-configuration-5.3.dtd">  

<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">org.h2.Driver</property>
        <property name="connection.url">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</property>
        <property name="dialect">org.hibernate.dialect.H2Dialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">create</property>
        <mapping class="HiberDemo.Employee"/>
    </session-factory>
</hibernate-configuration>

Это создает таблицу вместе с другими столбцами.

Employee.java

package HiberDemo;

import javax.persistence.Entity;  
import javax.persistence.Id;  
import javax.persistence.Table;  

@Entity  
@Table(name= "emp500")   
public class Employee {    

@Id   
private int id;    
private String firstName,lastName;    

public int getId() {    
    return id;    
}    
public void setId(int id) {    
    this.id = id;    
}    
public String getFirstName() {    
    return firstName;    
}    
public void setFirstName(String firstName) {    
    this.firstName = firstName;    
}    
public String getLastName() {    
    return lastName;    
}    
public void setLastName(String lastName) {    
    this.lastName = lastName;    
}    
}

Для сохранения некоторых данных в таблице.

StoreData.java

package HiberDemo;

import java.sql.DriverManager;
import java.sql.SQLException;

import org.hibernate.Session;    
import org.hibernate.SessionFactory;    
import org.hibernate.Transaction;  
import org.hibernate.boot.Metadata;  
import org.hibernate.boot.MetadataSources;  
import org.hibernate.boot.registry.StandardServiceRegistry;  
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import com.sun.corba.se.pept.transport.Connection;  


public class StoreData {    
public static void main(String[] args) throws SQLException {    


    StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();  
    Metadata meta = new MetadataSources(ssr).getMetadataBuilder().build();  

SessionFactory factory = meta.getSessionFactoryBuilder().build();  
Session session = factory.openSession();  
Transaction t = session.beginTransaction();   



    Employee e1=new Employee();    
    e1.setId(101);    
    e1.setFirstName("abc");    
    e1.setLastName("xyz");    

    session.save(e1);  
    t.commit();  
    System.out.println("successfully saved");    
    factory.close();  
    session.close();   
   // conn.close();

}    
} 

Это интерфейс H2 DB, в котором созданная мной таблица не отображается.

H2 DB UI

1 Ответ

0 голосов
/ 28 октября 2019

Это логин по умолчанию для базы данных H2. Убедитесь, что ваши данные соответствуют

enter image description here

Измените testdb для проверки на скриншоте выше

...