我想更新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
这种情况发生时
答案 0 :(得分:1)
可能 仍然是加密的。这是default renderer的预期输出。如here所示,结果由toString()
使用byte
数组调用生成。在custom renderer中,您可以使用合适的构造函数将数组转换为String
,但您需要指定数据库使用的相同编码。