0

JTableデータを更新して表示することなく更新したいのAES_ENCRYPTですが、このメソッドを呼び出そうとするたびにデータが暗号化されるため、データはまだ暗号化されています。この問題を解決するにはどうすればよいですか?

private void Update_Table(){



     try{
         String sql  = "SELECT ID, AES_DECRYPT(FirstName,  'uk112') "
           + "AS FirstName, AES_DECRYPT( MiddleName,  'uk112') "
           + "AS MiddleName, AES_DECRYPT(LastName,  'uk112') "
           + "AS LastName, DOB, AES_DECRYPT(Gander,  'uk112')"
           + "AS Gander, AES_DECRYPT(Address,  'uk112')"
           + "AS Address, AES_DECRYPT(City,  'uk112' ) "
           + "AS City, AES_DECRYPT(PostCode,  'uk112')"
           + "AS PostCode FROM Customer";
   pst = conn.prepareStatement(sql);
   rs =pst.executeQuery(sql);
   CTable.setModel(DbUtils.resultSetToTableModel(rs));
   pst.close();
   rs.close();
  }
  catch(Exception e){
 JOptionPane.showMessageDialog(null, e);
  }   
  }

更新するために Update_Table メソッドを呼び出そうとするたびに、JTableこれが起こります

ここに画像の説明を入力

4

1 に答える 1

1

おそらくまだ暗号化されていません。これは、デフォルトの rendererの期待される出力です。ここに示すように、結果は配列toString()で呼び出すことによって生成されます。カスタム rendererでは、適切なコンストラクターを使用して配列を に変換できbyteますが、データベースで使用されるのと同じエンコーディングを指定する必要があります。String

于 2013-04-24T20:05:47.107 に答える