2016-11-09 7 views
0

Ich versuche, Werte für 6 Variablen von einem Benutzer zu übernehmen und diese Eingaben dann in einer Datenbank zu speichern. Wie kann ich es codieren, um die Benutzereingabe als Variable festzulegen?Wie kann ich die Benutzereingabe als Variable zuweisen und diese Variable in meiner Datenbank speichern?

Also ich möchte die Variablen num1, etc als Benutzereingaben setzen.

Mein Code ist =>

public class 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

Sie können System.in verwenden, um Konsoleneingabe zu lesen. – talex

+0

Was ist die Syntax dazu? –

+0

Sie können es leicht googeln. – talex

Antwort

0

Der einfachste Weg ist es, die Klasse Scanner zu verwenden, wie there angegeben, und wahrscheinlich Tonnen andere Plätze.

Sobald das Programm die "reader.nextInt();" Zeile, stoppt Ihr Programm und fordert den Benutzer zu einem Eintrag in der Konsole auf. Davon abgesehen sollten Sie die vom Benutzer eingegebenen Daten überprüfen, da jemand ungültige Einträge wie Buchstaben eingeben möchte, um zu sehen, was passiert (und in diesem Fall wird eine Ausnahme ausgelöst).

0

Nicht der ideale Weg, aber würde Ihnen definitiv eine Idee für Ihr Problem in Bezug auf die Eingabe von Benutzer geben.

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(); 
      } 
     } 
    } 
Verwandte Themen