Daten in Tabelle einfügen

yuro

Erfahrenes Mitglied
Hallo Leute,

und zwar hab ich ein Problem. Ich möchte gerne einen neuen Datensatz in meine DB Tabelle einfügen. Und zwar soll eine Eingabe über die Konsole möglich sein. Ich weiss jetzt nur nicht wie ich die 6 Eingaben in einen String bzw. Array packe? Kann mir da jemand helfen? Den Code habe ich mal unten aufgelistet:

Code:
public static void main(String[] args) {
		
		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/azamon", "root", "");		
			pstmt = (PreparedStatement) con.prepareStatement("INSERT INTO books"
					+ "(isbn, title, fname, author, price, year_published) "
					+ "VALUES(?, ?, ?, ?, ?, ?)");
			
			...
			rs = pstmt.executeQuery();
			
			while(rs.next()) {
				System.out.println("...");
			}
		} catch(Exception e) {
			System.out.println(e.getMessage());
		} finally {
			try {
				if(rs != null) rs.close();
				if(pstmt != null) pstmt.close();
				if(con != null) con.close();
			} catch(Exception e) {
				System.out.println(e.getMessage());
			}
		}
}

Ich bedanke mich für jeden Tipp :)
 
Hi,

ich gehe davon aus, dass die Parameter über die Kommandozeile eingegeben werden?
Also java mein.klasse "param1" "param2" "param3" "param4" "param5" "param6" .
Wenn dem so ist, findest du die Eingaben im Ubergabe parameter der main-Methode. Also im Parameter args.
dieser ist bereits ein String-Array und enthält die Eingabeparameter genau in der Reihenfolge, wie sie in der Kommandozeile übergeben wurden.
 
Genau über die Kommandozeile soll man Einträge in die 6 Spalten einfügen können.

d.h. ich gebe nacheinander alle 6 spalten mit String isbn usw. ein? und der trägt das dann alles in die spalten ein?

Kannste mir ein Codebeispiel geben?
 
Du greifst einfach auf die einzelnen elemente des Parameters "args".
z.B:
Code:
 String paramValue1 = args[0];

Den Wert setzt Du dann an Deinem PreparedStatement.
Code:
  pstmt.setString(1, paramValue1 );

Hier habe ich einen Auszug aus Deinem Code erweitert:
Code:
            :
            pstmt = (PreparedStatement) con.prepareStatement("INSERT INTO books"
                    + "(isbn, title, fname, author, price, year_published) "
                    + "VALUES(?, ?, ?, ?, ?, ?)");
            
            String paramValue1 = args[0];
            pstmt.setString(1, paramValue1 );

            String paramValue2 = args[1];
            pstmt.setString(2, paramValue2 );

            ...
            rs = pstmt.executeQuery();
            :

PreparedStatement kennt verschiedene Methoden zum Setzen von unterschiedlichen Datentypen (setString(), setInt(), ...).
D.h. Du mußt gegebenenfalls Deine Eingabeparameter noch umwandeln.
 

Neue Beiträge

Zurück