2016-11-24 193 views
0

我需要用java訪問SQLite數據庫。我得到這個錯誤:用java訪問SQLite數據庫

Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.SQLiteDialect] as strategy [org.hibernate.dialect.Dialect]

每當我想創建我的sessionFactory bean。

數據庫屬性:

db.driver.class=org.sqlite.JDBC 
db.server.url=jdbc:sqlite:"G:\\Ausbildung\\username\\Database\\informations.db" 
db.username= 
db.password= 

db.hibernate.dialect=org.hibernate.dialect.SQLiteDialect 
db.hibernate.schema=DATA 
db.hibernate.hbm2ddl.auto=update 

bean聲明在XML文件:

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" 
     lazy-init="true"> 
     <property name="driverClassName"> 
      <value>${db.driver.class}</value> 
     </property> 
     <property name="url"> 
      <value>${db.server.url}</value> 
     </property> 
     <property name="username"> 
      <value>${db.username}</value> 
     </property> 
     <property name="password"> 
      <value>${db.password}</value> 
     </property> 
    </bean> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate5.LocalSessionFactoryBean" 
     lazy-init="true"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="packagesToScan"> 
      <list> 
       <value>com.mainfirst.bloomberg.invoice.report.model</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${db.hibernate.dialect}</prop> 
       <prop key="hibernate.format_sql">true</prop> 
       <prop key="hibernate.default_schema">${db.hibernate.schema}</prop> 
       <prop key="hibernate.hbm2ddl.auto">${db.hibernate.hbm2ddl.auto}</prop> 
       <prop key="hibernate.connection.CharSet">utf8</prop> 
       <prop key="hibernate.connection.characterEncoding">utf8</prop> 
       <prop key="hibernate.connection.useUnicode">true</prop> 
      </props> 
     </property> 
    </bean> 

我無法找到我所犯的錯誤。這個構造與Apache Derby一起工作。我只改變了hibernate.dialect和driver.class以及server.url。

如果我刪除「」在db.server.url我得到的錯誤

Caused by: java.lang.AbstractMethodError: org.sqlite.Conn.isValid(I)Z

在此先感謝

+0

通過採用更新版本的jdbc驅動程序修復了java.lang.AbstractMethodError。現在只有方言錯誤存在 – XtremeBaumer

回答

1

與服用此SQLite的方言休眠解決了這一問題:

<groupId>com.enigmabridge</groupId> 
<artifactId>hibernate4-sqlite-dialect </artifactId> 
<version>0.1.0</version>