Wang_mouren 2022-10-08 21:33 采纳率: 33.3%
浏览 31
已结题

idea java代码想通过JDBCUtils实现一个连接数据库模拟登陆的功能

问题遇到的现象和发生背景

idea java代码想通过JDBCUtils实现一个连接数据库模拟登陆的功能 结果输入正确的username和password也返回账号或密码错误

用代码块功能插入代码,请勿粘贴截图
package cn.itcast.jdbc;

import cn.itcast.domain.User;
import cn.itcast.utils.JDBCUtils;
import cn.itcast.utils.JDBCUtils_repeat;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class jdbcDemo08_login {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名:");
        String username = sc.next();
        System.out.println("请输入密码:");
        String password = sc.next();

        boolean flag = new jdbcDemo08_login().login(username, password);
        if (flag == true ){
            System.out.println("登陆成功!");
        }else {
            System.out.println("用户名或密码错误!");
        }
    }

    public boolean login(String username,String password){

        if (username == null || password ==null){
            return false;
        }

        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        //连接数据库
        try {
            conn = JDBCUtils_repeat.getConnection();
            /*String sql = "select * from user where username = ' "+username+"' and password = '"+password+"'";*/
            String sql = "select * from user where username = ? and password = ? ";
            ps = conn.prepareStatement(sql);
            ps.setString(1,"username");
            ps.setString(2,"password");
            rs = ps.executeQuery();
            return rs.next();  //如果有下一行,返回true
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JDBCUtils_repeat.close(rs,ps,conn);
        }
        return false;
    }
}
运行结果及报错内容

img


img

  • 写回答

1条回答 默认 最新

  • 心寒丶 全栈领域优质创作者 2022-10-08 21:49
    关注

    双引号都去掉,你传的是 username,password变量,而不是两个这个字符串啊

     ps.setString(1,username);
     ps.setString(2,password);
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月8日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料