2017-11-13 8 views
-2

これはコードです:クラスのオブジェクト[クラスjava.lang.String]、[クラスjava.lang.Integerの]に変換することができませんでした

package apppackage; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
import javax.swing.JOptionPane; 
import javax.swing.table.DefaultTableModel; 

/** 
* 
* @author katul 
*/ 
public class viewGUI extends javax.swing.JFrame { 

/** 
* Creates new form viewGUI 
*/ 
public viewGUI() { 
    initComponents(); 
    combobox(); 
    combobox1(); 
} 

/** 
* This method is called from within the constructor to initialize the form. 
* WARNING: Do NOT modify this code. The content of this method is always 
* regenerated by the Form Editor. 
*/ 
@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code">       
private void initComponents() { 

    entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("atul?zeroDateTimeBehavior=convertToNullPU").createEntityManager(); 
    membersQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT m FROM Members m"); 
    membersList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : membersQuery.getResultList(); 
    cb3 = new javax.swing.JButton(); 
    cb1 = new javax.swing.JComboBox<>(); 
    cb2 = new javax.swing.JComboBox<>(); 
    jButton4 = new javax.swing.JButton(); 
    jScrollPane2 = new javax.swing.JScrollPane(); 
    t1 = new javax.swing.JTable(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 
    setTitle("View Members"); 
    getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 

    cb3.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N 
    cb3.setText("View"); 
    cb3.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      cb3ActionPerformed(evt); 
     } 
    }); 
    getContentPane().add(cb3, new org.netbeans.lib.awtextra.AbsoluteConstraints(510, 30, -1, -1)); 

    cb1.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N 
    cb1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Select Package-name" })); 
    cb1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      cb1ActionPerformed(evt); 
     } 
    }); 
    getContentPane().add(cb1, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 30, -1, -1)); 

    cb2.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N 
    cb2.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Select Session-id" })); 
    cb2.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      cb2ActionPerformed(evt); 
     } 
    }); 
    getContentPane().add(cb2, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 30, -1, -1)); 

    jButton4.setFont(new java.awt.Font("Tahoma", 3, 12)); // NOI18N 
    jButton4.setText("Back"); 
    jButton4.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton4ActionPerformed(evt); 
     } 
    }); 
    getContentPane().add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 30, -1, -1)); 

    t1.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] { 

     }, 
     new String [] { 
      "member-id", "email", "fname", "lname", "phone", "session-id", "package name" 
     } 
    ) { 
     Class[] types = new Class [] { 
      java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class, java.lang.String.class 
     }; 

     public Class getColumnClass(int columnIndex) { 
      return types [columnIndex]; 
     } 
    }); 
    jScrollPane2.setViewportView(t1); 

    getContentPane().add(jScrollPane2, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 80, 660, 340)); 

    setSize(new java.awt.Dimension(803, 530)); 
    setLocationRelativeTo(null); 
}// </editor-fold>       

private void cb3ActionPerformed(java.awt.event.ActionEvent evt) {          
    DefaultTableModel t=(DefaultTableModel) t1.getModel(); 
    t.setRowCount(0); 
    try{ 
     Class.forName("java.sql.DriverManager"); 
     Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/atul","root","root"); 
     Statement st=(Statement) con.createStatement(); 
     String query="select * from members;"; 
     ResultSet rs=st.executeQuery(query); 
     while(rs.next()){ 
      String id=rs.getString("member_id"); 
      String em=rs.getString("email"); 
      String fn=rs.getString("fname"); 
      String ln=rs.getString("lname"); 
      String ph=rs.getString("phone"); 
      String ses=rs.getString("session_id"); 
      String pac=rs.getString("pack_name"); 
      Object row[]={id,em,fn,ln,ph,ses,pac}; 
      t.addRow(row); 
     } 
    } 
    catch(Exception e){ 
     JOptionPane.showMessageDialog(this, e.getMessage()); 
    } 
}         

private void cb1ActionPerformed(java.awt.event.ActionEvent evt) {          
    DefaultTableModel t=(DefaultTableModel) t1.getModel(); 
    t.setRowCount(0); 
    Object s=(String) cb1.getSelectedItem(); 
    try{ 
     Class.forName("java.sql.DriverManager"); 
     Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/atul","root","root"); 
     Statement st=(Statement) con.createStatement(); 
     String query="select * from members where pack_name='"+s+"';"; 
     ResultSet rs=st.executeQuery(query); 
     while(rs.next()){ 
      String id=rs.getString("member_id"); 
      String em=rs.getString("email"); 
      String fn=rs.getString("fname"); 
      String ln=rs.getString("lname"); 
      String ph=rs.getString("phone"); 
      String ses=rs.getString("session_id"); 
      String pac=rs.getString("pack_name"); 
      Object row[]={id,em,fn,ln,ph,ses,pac}; 
      t.addRow(row); 
     } 
    } 
    catch(Exception e){ 
     JOptionPane.showMessageDialog(this, e.getMessage()); 
    } 

}         

private void cb2ActionPerformed(java.awt.event.ActionEvent evt) {          
    DefaultTableModel t=(DefaultTableModel) t1.getModel(); 
    t.setRowCount(0); 
    Object s=cb2.getSelectedItem(); 
    try{ 
     Class.forName("java.sql.DriverManager"); 
     Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/atul","root","root"); 
     Statement st=(Statement) con.createStatement(); 
     String query="select * from members where session_id='"+s+"';"; 
     ResultSet rs=st.executeQuery(query); 
     while(rs.next()){ 
      String id=rs.getString("member_id"); 
      String em=rs.getString("email"); 
      String fn=rs.getString("fname"); 
      String ln=rs.getString("lname"); 
      String ph=rs.getString("phone"); 
      String ses=rs.getString("session_id"); 
      String pac=rs.getString("pack_name"); 
      Object row[]={id,em,fn,ln,ph,ses,pac}; 
      t.addRow(row); 
     } 
    } 
    catch(Exception e){ 
     JOptionPane.showMessageDialog(this, e.getMessage()); 
    } 
}         

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {           
    FirstGUI F= new FirstGUI(); 
    this.dispose(); 
    F.setVisible(true); 
}           
private void combobox() { 
    try { 
     Class.forName("java.sql.DriverManager"); 
     Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/atul","root","root"); 
     Statement st=(Statement) con.createStatement(); 
     String query="select * from packages;"; 
     ResultSet rs=st.executeQuery(query); 
     while(rs.next()){ 
      String name=rs.getString("pname"); 
      cb1.addItem(name); 
     } 
    } 
    catch(Exception e) { 
     JOptionPane.showMessageDialog(this, e.getMessage()); 
    } 
} 
private void combobox1() { 
    try { 
     Class.forName("java.sql.DriverManager"); 
     Connection con=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/atul","root","root"); 
     Statement st=(Statement) con.createStatement(); 
     String query="select * from batch;"; 
     ResultSet rs=st.executeQuery(query); 
     while(rs.next()){ 
      String name=rs.getString("session_id"); 
      cb2.addItem(name); 
     } 
    } 
    catch(Exception e) { 
     JOptionPane.showMessageDialog(this, e.getMessage()); 
    } 
} 
/** 
* @param args the command line arguments 
*/ 
public static void main(String args[]) { 
    /* Set the Nimbus look and feel */ 
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
    * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
    */ 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Windows".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(viewGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(viewGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(viewGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(viewGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    //</editor-fold> 

    /* Create and display the form */ 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new viewGUI().setVisible(true); 
     } 
    }); 
} 

// Variables declaration - do not modify      
private javax.swing.JComboBox<String> cb1; 
private javax.swing.JComboBox<String> cb2; 
private javax.swing.JButton cb3; 
private javax.persistence.EntityManager entityManager; 
private javax.swing.JButton jButton4; 
private javax.swing.JScrollPane jScrollPane2; 
private java.util.List<apppackage.Members> membersList; 
private javax.persistence.Query membersQuery; 
private javax.swing.JTable t1; 
// End of variables declaration     

このJFrameの私がすべて表示し作成しています私のメンバーテーブルの値。最初のメンバテーブルの列member-idは整数型のデータ型であり、完全に動作していましたが、データ型varcharに変更して1つの文字列 'm11'を挿入すると、java.objeect errorが返されます。そして、もし私がその文字列の値を削除すると、それは完全にうまく動作します。誰がエラーが何であるか教えていただけますか? これはエラーです:

Exception Description: The object [m11], of class [class java.lang.String], 
could not be converted to [class java.lang.Integer]. 
Internal Exception: java.lang.NumberFormatException: For input string: "m11" 
Exception in thread "AWT-EventQueue-0" 
javax.persistence.PersistenceException: Exception [EclipseLink-3001] 
(Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): 
org.eclipse.persistence.exceptions.ConversionException 
Exception Description: The object [m11], of class [class java.lang.String], 
could not be converted to [class java.lang.Integer]. 
Internal Exception: java.lang.NumberFormatException: For input string: "m11" 
at 


org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:480) 
at apppackage.viewGUI.initComponents(viewGUI.java:41) 
at apppackage.viewGUI.<init>(viewGUI.java:25) 
at apppackage.viewGUI$6.run(viewGUI.java:261) 
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)....... 
+1

'm11'は数字ではありません – notyou

+0

Integerクラスのapiを確認してください。有効な整数値であれば、変換する必要があることがわかります – Stultuske

+4

[mcve] ") - 投稿したコードの90%はあなたの質問とは関係ありません。 – assylias

答えて

0

org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:480) at apppackage.viewGUI.initComponents(viewGUI.java:41)

エラーは私はあなたのデータベースからデータを読み取り、あなたのTableModel

Class[] types = new Class [] 
{ 
    java.lang.String.class, java.lang.String.class, java.lang.String.class, 
    java.lang.String.class, java.lang.Integer.class, java.lang.String.class, 
    java.lang.String.class 
}  

ノートを作成している推測getResultList(...)メソッドでありますカスタムTableModelコードから、5番目の列に整数データが​​含まれているとします。

しかし、あなたのエラーメッセージが書かれています:

The object [m11], of class [class java.lang.String], could not be converted to [class java.lang.Integer].

だからこれは、データベース内のデータがStringあるので、あなたはその列ではなく、IngeterためStringを返すようにgetColumnClass(..)方法を変更する必要があると言われます。

関連する問題