我遇到以下问题:我无法使用以下代码登录: 我没有收到任何语法错误,但我无法让 ' loginSuccess boolean 值变为真。代码和表格图片如下:
我什至尝试过等效的 VB.NET 查询类型,但没有成功:
Dim SqlQuery As String = "SELECT COUNT(*) From users1 WHERE username = @Username AND password = MD5(@Password); "
与
resultSet = statement.executeQuery("SELECT * FROM cards.username WHERE username = '" + username + "' AND password = ('MD5(" + password + ")'");
或
resultSet = statement.executeQuery("SELECT * FROM cards.username WHERE username = '" + username + "' AND password = MD5("' + password + ")'");
String sqlQuery = "select count(*) > 0 as match_found FROM username WHERE username = ? and password = MD5(?)";
// String sqlQuery = "select count(*) > 0 as cnt FROM username WHERE username = ? and password = MD5(?)";
PreparedStatement pst = connect.prepareStatement( sqlQuery );
pst.setString( 1, username );
pst.setString( 2, password );
ResultSet rs = pst.executeQuery();
boolean loginSuccess = false;
if( rs.next() ) {
loginSuccess = rs.getBoolean( "match_found" );
int cnt = rs.getInt(1);
System.out.println(cnt);
}
if(loginSuccess)
System.out.println("yess");
else
System.out.println("noo");
最佳答案
问题出在我的密码 varchar 上,它是 10 并且加密没有足够的空间。将其提高到 50/100,现在我可以登录了。 谢谢
关于使用 MD5 密码问题的 Java mySQL 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23278575/