En toString()
på en byte-array returnerar inte innehållet i byte-arrayen, utan [[email protected]
följt av identitetshashkoden för byte-arrayen. I din bilaga använde du inte innehållet i key
som nyckel, men toString
-värde. Du måste använda en PreparedStatement
med en parametriserad fråga och ställ in värdena med 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);
Och gör samma sak för din valda fråga.
Du bör aldrig sammanfoga värden i din fråga. Det kommer att göra dig sårbar för SQL-injektion.