Я пытаюсь обновить данные в БД, но это не работает - PullRequest
0 голосов
/ 10 ноября 2019

я пытаюсь обновить данные в таблице доктора в БД, но это не работает ps.executeUpdate () == 1 возвращает false.

я пытался изменить запрос, но он не работал

это код Java

public boolean userDataChangeSave(String employee,String nic,String dob,String name,String address,String mobile,String email,String regNo) throws SQLException {

        Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/easymedi","root","password");
        String query="update "+employee+" set nic=?,dob=?,name=?,address=?,mobile=?,email=? where regNo=?";
        //String q2="update doctor set nic='blah',name='blahblah' where regNo='002'";
        PreparedStatement ps=conn.prepareStatement(query);

        ps.setString(1,nic);
        ps.setDate(2,Date.valueOf(dob));
        ps.setString(3,name);
        ps.setString(4,address);
        ps.setString(5,mobile);
        ps.setString(6,email);
        ps.setString(7,regNo);

        if(ps.executeUpdate()==1){
            return true;
        }
        else{
            return false;
        }
    }

Я пытаюсь обновить данные в таблице, но она не работает

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

Насколько позитивно вы работаете с доктором, у которого regNo = '002'? Вы выполнили оператор SELECT, чтобы убедиться, что '002' существует?

Если вы успешно выполнили свой код и он обновился до '001', это показывает, что ваш синтаксис точен.

IЯ также реорганизовал бы немного и жесткий код таблицы доктора:

public boolean userDataChangeSave(String nic,String dob,String name,String address,String mobile,String email,String regNo) throws SQLException {

        Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/easymedi","root","password");
        String query="update doctor set nic=?,dob=?,name=?,address=?,mobile=?,email=? where regNo=?";
        //String q2="update doctor set nic='blah',name='blahblah' where regNo='002'";
        PreparedStatement ps=conn.prepareStatement(query);

        ps.setString(1,nic);
        ps.setDate(2,Date.valueOf(dob));
        ps.setString(3,name);
        ps.setString(4,address);
        ps.setString(5,mobile);
        ps.setString(6,email);
        ps.setString(7,regNo);


        return ps.executeUpdate() == 1;
    }
0 голосов
/ 10 ноября 2019

Вы используете неверный синтаксис SQL. Правильный синтаксис -

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

То, что вы делаете, обновляет таблицу, имя которой равно значению переменной employee. Предположим, что вы передаете значение сотрудника как «Адам», тогда он попытается обновить таблицу Адама, которая не существует. Вместо этого используйте

String query="update doctor set nic=?,dob=?,name=?,address=?,mobile=?,email=? where regNo=?";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...