Hallo zusammen,
vor kurzem habe ich mich einem kleinem Game-Developement Projekt angeschloßen und habe angefangen ein wenig mit Datenbanken zu spielen. Leider stecke ich erst mal an einer Stelle und komme nicht wirklich weiter, vielleicht könnt ihr mir mit einem Rat helfen.
Und zwar, ich versuche mit JDBC ein Table in MySQL zu erzeugen. Habe einiges im Internet rechechiert
Meine Quellen:
https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html
www.tutorialspoint.com/jdbc/jdbc-sample-code.htm
Rheinwerk Computing :: Java ist auch eine Insel – 24.7 Elemente einer Datenbank hinzufügen und aktualisieren
Jedoch in der Zeile 41 bricht das Programm zusammen und kommt folgende Fehlermeldung:
Ich habe die Vermutung, dass es ein Syntaxfehler in der CREATE TABLE Anweisung ist, aber vielleicht habe ich etwas übersehen.
Hier füge ich mein gesamtes Quellcode.
[SIZE=+1]
Vielen Dank für eure Hilfe im Voraus!
Grüße
ZxSpectrum
[/SIZE]
vor kurzem habe ich mich einem kleinem Game-Developement Projekt angeschloßen und habe angefangen ein wenig mit Datenbanken zu spielen. Leider stecke ich erst mal an einer Stelle und komme nicht wirklich weiter, vielleicht könnt ihr mir mit einem Rat helfen.
Und zwar, ich versuche mit JDBC ein Table in MySQL zu erzeugen. Habe einiges im Internet rechechiert
Meine Quellen:
https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html
www.tutorialspoint.com/jdbc/jdbc-sample-code.htm
Rheinwerk Computing :: Java ist auch eine Insel – 24.7 Elemente einer Datenbank hinzufügen und aktualisieren
Jedoch in der Zeile 41 bricht das Programm zusammen und kommt folgende Fehlermeldung:
Java:
java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872)
at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:472)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1401)
at conn.ConnectClass.main(ConnectClass.java:41)
Ich habe die Vermutung, dass es ein Syntaxfehler in der CREATE TABLE Anweisung ist, aber vielleicht habe ich etwas übersehen.
Hier füge ich mein gesamtes Quellcode.
[SIZE=+1]
Java:
package conn;
package conn;
import java.sql.*;
import java.util.*;
public class ConnectClass
{
//JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/test";
//Database credentials
static final String USER = "root";
static final String PASS = "secret";
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Insert your character name: ");
String tableName = sc.nextLine();
String autoincrement = "AUTO_INCREMENT";
Connection conn = null;
Statement stmt = null;
try {
//register JDBC driver
Class.forName(JDBC_DRIVER);
//open a connection
System.out.println("connects...");
conn=DriverManager.getConnection(DB_URL,USER,PASS);
System.out.println("Succeeded");
//Execute a query
System.out.println("Creating Statement");
stmt = conn.createStatement();
String sql;
sql = "CREATE TABLE "+ tableName + " (ID INTEGER PRIMARY KEY " + autoincrement + ", Str INT(30), " + ", Ag INT(30), " + "End INT(30));";
ResultSet rs = stmt.executeQuery(sql);
//fill table
System.out.println("Str: ");
int str = sc.nextInt();
System.out.println("Agil: ");
int ag = sc.nextInt();
System.out.println("Endurance: ");
int end = sc.nextInt();
PreparedStatement stmt2 = conn.prepareStatement( "INSERT INTO " + tableName + " (Str, Ag, End) " + " VALUES ( ?, ?, ? );" );
stmt2.setInt( 1, str );
stmt2.setInt( 2, ag );
stmt2.setInt( 2, end );
stmt2.execute();
//extract data from result set
while(rs.next()){
int id = rs.getInt("id");
str = rs.getInt("Str");
ag = rs.getInt("Ag");
end = rs.getInt("End");
//display values
System.out.println("ID: " + id);
System.out.println("Sila: " + str);
System.out.println("Zrecznosc: " + ag);
System.out.println("Wytrzymalosc: " + end);
}//while(rs.next())
//clean environments
rs.close();
stmt.close();
stmt2.close();
conn.close();
System.out.println("Connection closed");
} catch (SQLException sqle) {
//Handle errors for JDBC
sqle.printStackTrace();
} catch (Exception e){
//Handle errors for Class.forName
e.printStackTrace();
} finally {
//finally block used to close resources
try {
if (stmt != null){
stmt.close();
}//if
} catch (SQLException sqle2) {
}//catch
try {
if (conn != null){
conn.close();
}//if
} catch (SQLException sqle) {
sqle.printStackTrace();
}//catch
}//finally
}//main
}//public class ConnectClass
Vielen Dank für eure Hilfe im Voraus!
Grüße
ZxSpectrum
[/SIZE]