2016-09-28 14 views
4

結果値がjavaになるようにするにはIBM Data Studioのようにintですが、私の場合はjavaが値をdoubleで生成しています?、それを解決するために手伝ってください!MySQLのRow_Number()MySql結果値の値Double、IBM Data Studio結果のInt

この私のJavaコードは

code vector

private void polDatToTab(ResultSet rs, JTable table) throws SQLException{ 
     String[] colHead = new String[] {"No","NIK","Nama"}; 
     DefaultTableModel tm = new DefaultTableModel(); 
     ResultSetMetaData rsd = rs.getMetaData(); 

     Vector<String> nameCol = new Vector<String>(); 
     int kolCount = rsd.getColumnCount(); 
     for(int i=0;i<colHead.length;i++){ 
      nameCol.add(colHead[i]); 
     } 

     Vector<Vector<Object>> data = new Vector<Vector<Object>>(); 
     while(rs.next()){ 
     Vector<Object> vec = new Vector<Object>(); 
     for(int j=1;j<=kolCount;j++){ 
      vec.add(rs.getObject(j)); 
     } 
      data.add(vec); 
     } 
     tm.setDataVector(data, nameCol); 
     table.setModel(tm); 
    } 

この私のJavaコードは、GUI

enter image description here

private void srcEmp(){ 
     String srcE = "SELECT (@ROW_NUMBER:[email protected]_NUMBER + 1) AS No_Urut,NIK,NAMA FROM PAYROLL.KARYAWAN," 
       + "(SELECT @ROW_NUMBER:=0) AS T WHERE NAMA LIKE '%"+srcRes+"%'"; 
     DbConnect co = new DbConnect(); 
     co.connectDB(); 

     try { 
      st = co.connection.createStatement(); 
      ResultSet ul = st.executeQuery(srcE); 
      polDatToTab(ul, tabResSrc); 
     } catch (SQLException ex) { 
      Logger.getLogger(ResSrc.class.getName()).log(Level.SEVERE, null, ex); 
     } 


    } 

この私のSQLコードの表を表示するには、テーブル内の番号を生成しますIBM Data Studioで真の価値を生み出すint型

SELECT (@ROW_NUMBER:[email protected]_NUMBER + 1) AS No_Urut,NIK,NAMA 
FROM PAYROLL.KARYAWAN,(SELECT @ROW_NUMBER:=0) AS T 
WHERE NAMA LIKE '%"+srcRes+"%' 

Java GUIでこの私の結果:

enter image description here

とIBM Data Studioの

enter image description here

答えて

1

でこの私の結果あなたのpolDatToTab方法はジェネリックではない、それはこの特定の結果セットでのみ動作するように設計されているようです。私はあなたが最初の列をint型であることが予想されていることを認識している、このようにあるため、この行の

String[] colHead = new String[] {"No","NIK","Nama"}; 

その結論にジャンプしています。したがって、

vec.add(rs.getInt(1)); 
    for(int j=2; j<=kolCount; j++){ 
     vec.add(rs.getObject(j));    
    } 

はトリック

+0

はあなたの高速応答のために、ありがとうん – javFor

+0

ソリューションの作品を、ありがとうございました。あなたは私のライブを保存します – javFor

+0

@riskiNovaここではgetColumnClassを検索します。デフォルトでは、データベースの戻り値の型からのメタデータ。 – mKorbel