从数据库从取出密码和前台输入的密码用equals作比较总是返回FALSE

问题:如标题所述

前言:反复用equals比较了好几次,明明输出内容是相同的,就是总返回FALSE,特

地翻了翻以前的笔记。


答案的flag=0,明明内容是对的。


解决过程:

(1)看看数据库设置的数据类型是否是定长,就像nchar等等,有的话改成                 varchar。


(2)试了一下tirm()方法,对了。。。。


flag=1

原来,取出数据时,默认回车时是带有空格的,需要把空格删去。


可能这两种方法然并卵,后面有其他方法继续补充。。。。


转载于:https://www.cnblogs.com/fsn-nervergiveup/p/9748019.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个大致的Java代码实现: ```java import java.sql.*; public class Login { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/USER"; // 数据库的用户名与密码 static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // 注册 JDBC 驱动器 Class.forName("com.mysql.jdbc.Driver"); // 打开一个连接 System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // 执行查询 System.out.println("Creating statement..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, username, password FROM user_table"; ResultSet rs = stmt.executeQuery(sql); // 处理结果集 while(rs.next()){ // 获取数据 int id = rs.getInt("id"); String username = rs.getString("username"); String password = rs.getString("password"); // 验证用户名和密码是否正确 if (username.equals(inputUsername) && password.equals(inputPassword)) { System.out.println("Login success!"); break; } } // 完成后关闭 rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ // 处理 JDBC 错误 se.printStackTrace(); }catch(Exception e){ // 处理 Class.forName 错误 e.printStackTrace(); }finally{ // 关闭资源 try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ }try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } } ``` 以上代码中,我们使用了JDBC连接MySQL数据库,并从数据库中查询出用户名和密码数据,然后与输入的用户名和密码进行比对,验证登录是否成功。您可以根据自己的需要进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值