java.lang.NumberFormatException:用于输入字符串:“男性”
我一直在尝试使用Hibernate在JavaSwing应用程序中运行一个保存过程。但我每次都会遇到以下异常java.lang.NumberFormatException:用于输入字符串:“男性”,java,swing,hibernate,Java,Swing,Hibernate,我一直在尝试使用Hibernate在JavaSwing应用程序中运行一个保存过程。但我每次都会遇到以下异常 java.lang.NumberFormatException: For input string: "Male" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.l
java.lang.NumberFormatException: For input string: "Male"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at frames.user_info_1.saveUserDetails(user_info_1.java:258)
at frames.user_info_1.jButton1ActionPerformed(user_info_1.java:191)
at frames.user_info_1.access$100(user_info_1.java:17)
at frames.user_info_1$2.actionPerformed(user_info_1.java:147)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
这是我用于用户注册的代码
public void saveUserDetails() {
try {
Transaction t = sess.beginTransaction();
String fn = firstname.getText();
String ln = lastname.getText();
String nicno = nic.getText();
String contact = contactno.getText();
String gen = (String) jComboBox1.getSelectedItem();
int gen1 = Integer.parseInt(gen);
String un = username.getText();
String pw = new String(password.getPassword());
User u = new User();
u.setFirstname(fn);
u.setLastname(ln);
u.setNic(nicno);
u.setPhone(contact);
Gender g = (Gender) sess.load(Gender.class, gen1);
u.setGender(g);
Login login = new Login();
login.setUser(u);
login.setUsername(un);
login.setPassword(pw);
String utype = "User";
int utype1 = Integer.parseInt(utype);
UserType utp = (UserType) sess.load(UserType.class, utype1);
u.setUserType(utp);
sess.save(u);
sess.save(login);
t.commit();
System.out.println("User Successfully Saved!");
} catch (NumberFormatException e) {
System.out.println("Number Format Exception");
e.printStackTrace();
}
jComboBox1用于选择用户的性别,并使用条件搜索加载性别表中的值
我想问题在于jComboBox。如果您能在这里帮忙,我将不胜感激。提前感谢。您正在尝试将字符串值Male解析为整数。它肯定不是一个有效的数字,因此是NumberFormatException 可以在load方法中直接使用字符串
Gender g = (Gender) sess.load(Gender.class, gen); // Use gen instead of gen1
即使这样也不能解决您的问题,除非gen是主键,即您的性别类的标识符。您需要将idprimary键作为第二个参数提供给。您正在尝试将字符串值Male解析为整数。它肯定不是一个有效的数字,因此是NumberFormatException 可以在load方法中直接使用字符串
Gender g = (Gender) sess.load(Gender.class, gen); // Use gen instead of gen1
即使这样也不能解决您的问题,除非gen是主键,即您的性别类的标识符。您需要将idprimary键作为第二个参数提供给。您应该检查用户输入的值,假设该值为男性,即用户输入,代码应如下所示。用户在jcombobox中给出的答案是jcom
if(jcom.equals("Male"))
gen=1;
else
gen=0;
您应该检查用户输入的值,假设它是男性,即用户输入,代码应该如下所示。用户在jcombobox中给出的答案是jcom
if(jcom.equals("Male"))
gen=1;
else
gen=0;
如果您的问题是使用Hibernate持久化枚举,您可以使用@Enumerated注释在pojo中使用枚举对象,但将其作为序号持久化如果您的问题是使用Hibernate持久化枚举,您可以使用@Enumerated注释在pojo中使用枚举对象,但将其作为序号进行持久化添加@EnumeratedEnumeType.STRING对我很有效。谢谢添加@EnumeratedEnumType.STRING对我很有效。谢谢