这是hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">jdbc:hsqldb:file:test_db_file</property>
<property name="hsqldb.write_delay">false</property>
<property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.connection.username">combine1</property>
<property name="hibernate.connection.password"></property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
<!--
few resources
-->
</session-factory>
</hibernate-configuration>
当我将 hsqldb 更改为 mysql db 时,它工作正常。但是当我这样离开时,我将 hsqldb:file 连接为 NetBeans 中的数据库,公共模式中没有任何内容,我想在运行程序后找到创建的表。
在运行时,类是持久化的,我可以从会话等中加载它们,但是程序结束后,什么都没有。除了在 test_db_file.script 中是用于创建所需模式的查询,但不是我保存到数据库中的行。
正如我所写,这是我的简单主要内容,当我使用一些 mysql 数据库时,它可以工作:
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import resources.HibernateUtil;
import website.Website;
public class MrhAdministration {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
WebsiteCreator.create(session);
Criteria criterial = session.createCriteria(Website.class);
for (Website w : (List<Website>) criterial.list()) {
System.out.println("Sites: " + w.getSiteName() + " " + w.getSiteUrl());
}
session.getTransaction().commit();
}
}
感谢您的回答!