Ein toString()
auf einem Byte-Array gibt nicht den Inhalt des Byte-Arrays zurück, sondern [[email protected]
gefolgt vom Identitäts-Hashcode des Byte-Arrays. In Ihrer Beilage haben Sie den Inhalt von key
nicht verwendet als Schlüssel, aber der toString
-Wert. Sie müssen ein PreparedStatement
verwenden B. mit einer parametrisierten Abfrage, und setzen Sie die Werte mit setBytes
:
psmt = con.prepareStatement("insert into mm values (?, AES_ENCRYPT(?, ?), AES_ENCRYPT(?, ?))");
psmt.setInt(1, id);
psmt.setString(2, name);
psmt.setBytes(3, key);
psmt.setstring(4, sal);
psmt.setBytes(5, key);
Machen Sie dasselbe für Ihre ausgewählte Abfrage.
Sie sollten niemals Werte in Ihrer Abfrage verketten. Es macht Sie anfällig für SQL-Injection.