當[這可能是看到我的相關,但獨特的,從早期的今天Hibernate Schema Export in Eclipse問題是有用的。]奇怪NumberFormatException的Hibernate中使用的SessionFactory
我有以下的Java類
package com.examscam.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
@Entity
public class User {
private Long id;
private String password;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public String getPassword() {
return password;
}
public void setId(Long id) {
this.id = id;
}
public void setPassword(String password) {
this.password = password;
}
public static void main(String[] args) {
AnnotationConfiguration config = new AnnotationConfiguration();
config.addAnnotatedClass(User.class);
config.configure();
// new SchemaExport(config).create(true, true);
SessionFactory factory = config.buildSessionFactory();
Session session = factory.getCurrentSession();
session.beginTransaction();
User u = new User();
u.setPassword("abc123");
session.saveOrUpdate(u);
session.getTransaction().commit();
System.out.println("Done.");
}
}
我有一(MySQL的)數據庫,並創建了用戶表的代碼
create table User (id integer not null auto_increment, password varchar(255), primary key (id))
然而,當我嘗試運行此代碼,我給下面的堆棧TRAC User類電子
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.valueOf(Integer.java:554)
at org.hibernate.util.PropertiesHelper.getInteger(PropertiesHelper.java:37)
at org.hibernate.connection.DriverManagerConnectionProvider.configure(DriverManagerConnectionProvider.java:47)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:414)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at com.examscam.model.User.main(User.java:40)
線40
SessionFactory factory = config.buildSessionFactory();
任何人都不會有爲什麼發生這種情況的任何想法?我沒有在該行的任何地方輸入一個空字符串,並且已經從該書中完全複製了代碼。我毫不懷疑這本書是正確的;我的問題更多的是'任何人都可以想到任何原因(xml文件中的錯誤,classpath排序問題,文件不在正確的目錄中等等)爲什麼會發生這種行爲?'。
此問題的答案也可能有助於解決導出架構時本頁頂部鏈接中的問題。
謝謝Conor。
我在頁面上提供了hibernate.cfg.xml的完整條目,我在帖子的頂部鏈接了它,但它只包含hibernate.connection.url,hibernate.connection.username,hibernate.connection.password,hibernate。 connection.driver_class,hibernate.dialect,hibernate.transaction.factory_class,hibernate.current_session_context_class和hibernate.show_sql。再次,我已經完全按照書中的內容複製了該代碼。話雖如此,它已經略顯過時。你能想到我需要的任何東西嗎?我今天早上下載了所有的hibernate jar,所以它應該是最新的版本。 – ConorW 2013-05-09 17:53:29
休眠的確切版本在這裏很重要,因爲它告訴我要查看哪些源代碼。你能給我確切的版本嗎? – cmbaxter 2013-05-09 17:58:10
我使用的hibernate核心是hibernate-core-4.2.0.Final.jar。那是你需要的嗎?[我是一個新手]? – ConorW 2013-05-09 18:00:10