2016-11-09 3 views
0

Я пытаюсь принять значения для переменной 6 от пользователя, а затем сохранить эти входы в базе данных. Как мне его закодировать, чтобы ввести пользовательский ввод в качестве переменной?Как назначить вход пользователя как переменную и сохранить эту переменную в моей базе данных?

Так что я хочу установить переменные num1 и т. Д. В качестве входных данных пользователей.

Мой код =>

общественного класса LottoJDBC {

private Connection connection; 

public LottoJDBC() throws Exception 

//CONNECT TO DATABASE 

{ 
    Class.forName("com.mysql.lottoPro.Driver").newInstance(); 
    connection = DriverManager.getConnection("lottoPro:mysql://localhost:3306/lottProDB"+"user=root&password=root"); 

    //SELECT DATA FROM DATABASE 
    Statement select = connection.createStatement(); 
    ResultSet rs = select.executeQuery("SELECT * FROM userChoice"); 
    while (rs.next()) { 
    System.out.println("These numbers are already taken by the previous user: "+rs.getNString(1) + " " +rs.getNString(2) + " " +rs.getNString(3) + " " +rs.getNString(4) + " " +rs.getNString(5) + " " +rs.getNString(6) + "."); 

    } 


    //INSERTTING DATA 
    try (PreparedStatement createUser = connection.prepareStatement("INSERT into userChoice (num1, num2, num3, num4, num5, num6)" + " VALUES (?, ?, ?, ?, ?, ?)")) { 
     int num1, num2, num3, num4, num5, num6; 
     createUser.setInt(1, num1); 
     createUser.setInt(2, num2); 
     createUser.setInt(3, num3); 
     createUser.setInt(4, num4); 
     createUser.setInt(5, num5); 
     createUser.setInt(6, num6); 
     int rowsUpdated = createUser.executeUpdate(); 
     createUser.close(); 
    } 

    connection.close(); 
} 

    public static void main(String[] args){ 
     try { 
      new LottoJDBC(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

}

+0

Вы можете использовать System.in для чтения ввода в консоль. – talex

+0

Какой синтаксис для этого? –

+0

Вы можете легко google это. – talex

ответ

0

Самый простой способ заключается в использовании класса Scanner, как указано there, и, вероятно, в т другие места.

Как только программа запускает «reader.nextInt();» line, ваша программа остановится и предложит пользователю ввести запись в консоли. При этом вам нужно будет проверить данные, введенные пользователем, так как кто-то может захотеть ввести недопустимые записи, такие как буквы, чтобы узнать, что происходит (и в этом случае оно выдает исключение).

0

Не самый идеальный способ, но определенно даст вам представление о вашей проблеме в отношении ввода данных от пользователя.

public class LottoJDBC { 
     private static int num1; 
     private static int num2; 
     private static int num3; 
     private static int num4; 
     private static int num5; 
     private static int num6; 

     public LottoJDBC() throws Exception 

     { 
      System.out.println(num1); 
      System.out.println(num2); 
      System.out.println(num3); 
      System.out.println(num4); 
      System.out.println(num5); 
      System.out.println(num6); 
     } 

     public static void main(String[] args){ 
      try { 
       Scanner scanner = new Scanner(System.in); 

       num1 = scanner.nextInt(); 
       num2 = scanner.nextInt(); 
       num3 = scanner.nextInt(); 
       num4 = scanner.nextInt(); 
       num5 = scanner.nextInt(); 
       num6 = scanner.nextInt(); 

       new LottoJDBC(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
Смежные вопросы