我想插入模擬數據在H2分貝使用Hibernate,但我現在面臨以下錯誤如何解決「導致:java.lang.IllegalStateException:文件被鎖定:nio:/Development/hiber/data/contactmgr.mv.db [1.4.192/7]」
產生的原因:java.lang.IllegalStateException:該文件被鎖定: NIO:/Development/hiber/data/contactmgr.mv.db [1.4。 192/7]
,早些時候我以爲是因爲用戶名和密碼屬性,但即使從hibernate.cfg.xml中刪除它,我偶然發現了這個錯誤。
在線程異常 「主要」 java.lang.ExceptionInInitializerError 造成的:org.hibernate.exception.JDBCConnectionException:錯誤調用驅動程序#在org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator $ 1連接 $ 1.convert(BasicConnectionCreator.java:122) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator。 makeConnection(DriverConnectionCreator.java:58) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75) 在org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106) 在org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) 的組織。 hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl。 buildJdbcConnectionAccess(JdbcServicesImpl.java:260) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureSe起動轉矩(StandardServiceRegistryImpl.java:111) 在org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) 在org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) 在org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:147) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:272) at org.hibernate.service.internal。 AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:231) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) at org.hibe (org.hibernate.metamodel.source.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:123) at org.hibernate.metamodel.MetadataSources.buildMetadata(MetadataImpl.java:120) (MetadataSources.java:151) at com.hibernate.demo.Application.buildSesssionFactory(Application.java:46) at com.hibernate.demo.Application。(Application.java:17) 由org.h2引起。 jdbc.JdbcSQLException:數據庫可能已被使用:null。可能的解決方案:關閉所有其他連接;使用 服務器模式[90020-192] at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) at org.h2.message.DbException.get(DbException.java:168) at org。 h2.mvstore.db.MVTableEngine $商店。在org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)處, at org.h2.engine.Database.getPageStore(Database.java:2463) at org.h2.engine.Database.open(Database.java:692) at org.h2.engine.Database.openDatabase(Database。 java:270) at org.h2.engine.Database。(Database.java:264) at org.h2.engine.Engine.openSession(Engine.java:64) at org.h2.engine.Engine.openSession (Engine.java:176) at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154) at org.h2.engine.Engine.createSession(Engine.java:137) a t org.h2.engine.Engine.createSession(Engine.java:27) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349) at org.h2.jdbc.JdbcConnection。(JdbcConnection.java: 118) at org.h2.jdbc.JdbcConnection。(JdbcConnection.java:102) at org.h2.Driver.connect(Driver.java:72) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator .makeConnection(DriverConnectionCreator.java:55) ... 19更多 引起:java.lang.IllegalStateException:文件被鎖定:nio:/Development/hiber/data/contactmgr.mv.db [1.4.192/7 ] at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773) at org.h2.mvstore.FileStore.open(FileStore.java:172) 在org.h2.mvstore.MVStore。(MVStore.java:344) at org.h2.mvstore.MVStore $ Builder.open(MVStore.java:2893) at org.h2.mvstore.db.MVTableEngine $ Store 。開(MVTableEngine.java:154) ...... 34多個
這是在利用我hibernate.cfg.xml文件:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2:./data/contactmgr</property>
<property name="hibernate.default_schema">PUBLIC</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.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>
<property name="show_sql">true</property>
<mapping class="com.hibernate.demo.model.Contact"/>
</session-factory>
</hibernate-configuration>
和下面是我的主類:
public class Application {
//Session factory
private static final SessionFactory sessionFactory = buildSesssionFactory();
public static void main(String[] args) {
Contact contact = new Contact.ContactBuilder("Bob", "marley").withEmail("[email protected]").withPhone(5859789791L).build();
//Open a Session
Session session = sessionFactory.openSession();
//Begin a Transaction
session.beginTransaction();
//Use the session to save the contact
session.save(contact);
//Commit the transaction
session.getTransaction().commit();
// Close the session
session.close();
}
private static SessionFactory buildSesssionFactory() {
// Create a StandardServiceRegistry
Configuration configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
final ServiceRegistry registry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
return new MetadataSources(registry).buildMetadata().buildSessionFactory();
它被解決了,它是第二個點t在你的解決方案導致它,H2實例在後臺運行,我的應用程序試圖在同一個端口上旋轉一個新的實例,投票。謝謝 – Shek