私はこれをやっています:
String columns = "UserHash,EMail,Name,Gender,BirthYear,Birthday,MaritalStatus,UserID,ReferralUser,Likes";
String sql = "INSERT INTO Users ("+ columns+") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);";
byte[] bytesOfUserHash = user.getId().getBytes("UTF-8");
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] userHash = md.digest(bytesOfUserHash);
stmt = con.prepareStatement(sql);
stmt.setBytes(1,userHash);
stmt.setString(2, user.getEmail());
stmt.setString(3, user.getName());
stmt.setInt(4, user.getGender().value());
stmt.setString(5, birthday.split("-")[0]);
stmt.setString(6, birthday);
stmt.setInt(7, user.getRelationshipStatus().value());
stmt.setString(8, user.getId());
stmt.setString(9, referraluser);
stmt.setString(10, likesjson);
stmt.executeUpdate();
を除くすべての値が挿入されているuserHash
ため、クエリは成功しています。何を確認すればよいですか?
また、今はユーザー ID をハッシュしているだけですが、ユーザー ID + をハッシュしたいことに注意してくださいCURRENT_TIMESTAMP
。
更新: 健全性チェックとして、VARCHAR(45) 型の文字列を UserHash 列に投げてみましたが、それも機能していません。MD5 の問題とは関係なく、何かが明らかにおかしくなっています。