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日

悬赏问题

  • ¥20 关于#目标检测#的问题:(qq收集表到时间才能填写,填写的份数有上限)
  • ¥50 ZYNQ7020双核FLAHS烧写的问题
  • ¥20 ue 5 中想要实现第一人称人物左右行走摆动的效果,摄像头只向右摆动一次(关键词-结点)
  • ¥15 钢岔管添加弹性约束模拟围岩作用
  • ¥15 AD9164瞬时带宽1.8G,怎么计算出来?
  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题