没有错误,但数据没有插入数据库

问题描述 投票:0回答:1

我有一个sql数据库,我想向其中插入数据。下面是我的代码。执行java程序后,数据没有插入数据库,也没有出现错误。

Connection conn=null;
    Statement stmt=null;
    Scanner sc=new Scanner (System.in);
    System.out.println("Enter Username");
    String username=sc.next();
    System.out.println("Enter Email");
    String email=sc.next();
    System.out.println("Enter Phone Number");
    int phno=sc.nextInt();
    System.out.println("Create a Password");
    String password=sc.next();
    
    
    try {
        conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sample","root","abc");
        stmt=conn.createStatement();
        String query1="select * from login_details";
        String query2="insert into login_details(user_name,user_email,user_phone,user_password)values('"+username+"','"+email+"','"+phno+"','"+password+"')";
        ResultSet rs=stmt.executeQuery(query1);
        boolean status=false;
        
        while(rs.next()) {
            if(status=false) {
                stmt.executeUpdate(query2);
                System.out.println("Details Entered Successfully");
            }
        }
        
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
java jdbc
1个回答
0
投票

代码存在逻辑和安全问题。

您为条件中的变量赋予值,而不是检查它。你应该使用:

if (!status){...}

另一件事是,如果数据来自用户,您应该使用PreparedStatement 而不是Statement。抵御sql注入攻击。

© www.soinside.com 2019 - 2024. All rights reserved.