gpt4 book ai didi

java - 如何使用准备好的语句插入 MD5 ("value"+ CURRENT_TIMESTAMP)?

转载 作者:行者123 更新时间:2023-11-30 01:13:59 25 4
gpt4 key购买 nike

我正在这样做:

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 进行哈希处理。

更新:作为健全性检查,我只是尝试将一个字符串放入 UserHash 列中,因为它是 VARCHAR(45) 类型,但这也不起作用。与 MD5 问题无关,显然存在一些问题。

最佳答案

您可以使用MySQL内置的MD5函数,并且仅传递userId作为参数

    String sql = "INSERT INTO Users ("+ columns+") VALUES (MD5(CONCAT(?,CURRENT_TIMESTAMP), ?, ?, ?, ?, ?, ?, ?, ?, ?);";

stmt = con.prepareStatement(sql);
stmt.setInt(1,user.getId());
...

关于java - 如何使用准备好的语句插入 MD5 ("value"+ CURRENT_TIMESTAMP)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19235663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com