Записи не сохраняются в базе данных MySQL - PullRequest
0 голосов
/ 20 апреля 2019

Я работаю над настольным приложением для входа и входа, и у меня проблема с mySQL. Записи не сохраняются в моей таблице. Вот мой код:

Connection dbConnection;
public Connection getConnection() throws ClassNotFoundException, 
SQLException
{
    String connectionString = "jdbc:mysql://" + dbHost + ":"
            + dbPort + "/"
            + dbName;

    Class.forName("com.mysql.cj.jdbc.Driver");

    dbConnection = DriverManager.getConnection(connectionString +  "?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", dbUser, dbPass);


    return dbConnection;
}
public void signUpSave(User user)
{
    String insert = "INSERT INTO " + ConstData.LOGIN_TABLE + " (" + 
ConstData.USER_NAME + "," + ConstData.USER_SURNAME + ","
            +  ConstData.USER_LOGIN + "," + ConstData.USER_PASSWORD + ","
            + ConstData.USER_EMAIL + ") " + "VALUES(?,?,?,?,?)";
    try{
        PreparedStatement preparedStatement = 
getConnection().prepareStatement(insert);

        preparedStatement.setString(1,user.getUserName());
        preparedStatement.setString(2,user.getUserSurname());
        preparedStatement.setString(3,user.getUserLogin());
        preparedStatement.setString(4,user.getUserPassword());
        preparedStatement.setString(5,user.getUserEmail());



    } catch (SQLException e)
    {
        e.printStackTrace();
    } catch (ClassNotFoundException e)
    {
        e.printStackTrace();
    }

Это строки, которые я использую в коде выше

protected String dbHost = "localhost";
protected String dbPort = "3306";
protected String dbUser = "root";
protected String dbPass = "root";
protected String dbName = "login";

Существует метод, который получает все строки из textFields

private void createUser()
{
    DataBase dataBase = new DataBase();

    String name = nameField.getText();
    String lastName = surField.getText();
    String userLogin = logField.getText();
    String userPswd = pswField.getText();
    String userMail = mailField.getText();

    User user = new User(name, lastName, userLogin, userPswd, userMail);

    dataBase.signUpSave(user);
}

Пользовательский класс - это просто класс с 5 строками, конструктором, 5x получателем и установщиком.

1 Ответ

1 голос
/ 20 апреля 2019

Вам необходимо явно выполнить подготовленный оператор для базовой базы данных. Например:

  final int updatedRowCount = preparedStatement.executeUpdate(); // execute the update
  System.out.println("Updated rows: " + updatedRowCount);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...