एक toString()
बाइट-सरणी पर बाइट सरणी की सामग्री वापस नहीं आती है, लेकिन [[email protected]
बाइट सरणी के पहचान हैशकोड के बाद। अपनी प्रविष्टि में आपने key
. की सामग्री का उपयोग नहीं किया कुंजी के रूप में, लेकिन toString
-मूल्य। आपको एक PreparedStatement
का उपयोग करने की आवश्यकता है एक पैरामीट्रिज्ड क्वेरी के साथ, और 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);
और अपनी चुनिंदा क्वेरी के लिए भी ऐसा ही करें।
आपको अपनी क्वेरी में मूल्यों को कभी भी संयोजित नहीं करना चाहिए। यह आपको SQL इंजेक्शन के प्रति संवेदनशील बना देगा।