En toString()
på et byte-array returnerer ikke indholdet af byte-arrayet, men [[email protected]
efterfulgt af identitets-hashkoden for byte-arrayet. I dit indlæg brugte du ikke indholdet af key
som nøglen, men toString
-værdi. Du skal bruge en PreparedStatement
med en parametriseret forespørgsel, og indstil værdierne ved hjælp af 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);
Og gør det samme for din udvalgte forespørgsel.
Du bør aldrig sammenkæde værdier i din forespørgsel. Det vil gøre dig sårbar over for SQL-injektion.