Hi everyone,
I am having problems to create a table from java. To be more specific, I am able to create te table, but if I want to edit any information I am shown an error message:
https://s11.postimg.org/j2xw35acj/Captura_de_pantalla_2017_02_28_a_las_22_38_00.png
I am also having with the column “Juego_asociado”, it’s a column that its empty because I want to full it manually, but when I want to introduce information I am given the following error:
https://s30.postimg.org/p73zybwc1/Captura_de_pantalla_2017_02_28_a_las_22_37_40.png
The code I am using in java to create the table and full it with the data:
public class Conectate {
private String driver ="com.mysql.jdbc.Driver";
private String cadenaConexion ="jdbc:mysql://localhost/XboxOne";
private String pass = "";
private String usuario = "root";
public Connection con;
//public Conectate(Map<String, Map<String, Item>> gamesByCountry, Map<String, String> codesByTitle,Map<String, String> countries) {
public Conectate(ArrayList<Item> games) {
try {
Class.forName(driver);
con = DriverManager.getConnection(cadenaConexion, usuario, pass);
System.out.println("¡Conectado!");
//CREAMOS LA TABLA
Statement st = con.createStatement();
st.executeUpdate("CREATE TABLE IF NOT EXISTS info_XboxOne (id INT AUTO_INCREMENT, PRIMARY KEY(id), "
+ "Juego_vinculado VARCHAR(500), Juego VARCHAR(500), Tipologia VARCHAR (500), Pertenece VARCHAR (500), "
+ "Nota VARCHAR (10), Descripcion_Ingles TEXT(4000), Descripcion_Castellano TEXT(4000), Pegi VARCHAR(10), Descripcion_Pegi VARCHAR(200),"
+ "Lanzamiento VARCHAR (50))");
System.out.println( "Tabla creada!");
for (Item game : games) {
String titulo = game.getName();
boolean isInsert;
try (PreparedStatement ps = con.prepareStatement("SELECT * FROM info_XboxOne WHERE juego = ?")) {
ps.setString(1, titulo);
try (ResultSet rs = ps.executeQuery()) {
isInsert = !rs.next();
}
}
if (isInsert) { //si se cumple esta condicción significa que el juego no está incluido, con lo que lo metemos
try(PreparedStatement ps = con.prepareStatement("INSERT INTO info_XboxOne (Juego, Tipologia, Pertenece, "
+ "Nota, Descripcion_Ingles, Descripcion_Castellano, Pegi, Descripcion_Pegi"
+ ") VALUES (?,?,?,?,?,?,?,?)")) {
ps.setString(1,titulo);
ps.setString(2,game.getValues().get(Constants.TIPOLOGIA));
ps.setString(3,game.getValues().get(Constants.PERTENECE));
ps.setString(4,game.getValues().get(Constants.NOTA));
ps.setString(5,game.getValues().get(Constants.DESCRIPCION_INGLES));
ps.setString(6,game.getValues().get(Constants.DESCRIPCION_CASTELLANO));
ps.setString(7,game.getValues().get(Constants.PEGI));
ps.setString(8,game.getValues().get(Constants.DESCRIPCION_PEGI));
ps.executeUpdate();
}
} else {
String query = "UPDATE info_XboxOne SET Tipologia = ?, Pertenece = ?, "
+ "Nota = ?, Descripcion_Ingles = ?, Descripcion_Castellano = ?, "
+ "Pegi = ?, Descripcion_Pegi = ? WHERE juego = ?";
try (PreparedStatement ps = con.prepareStatement(query)) {
ps.setString(1,game.getValues().get(Constants.TIPOLOGIA));
ps.setString(2,game.getValues().get(Constants.PERTENECE));
ps.setString(3,game.getValues().get(Constants.NOTA));
ps.setString(4,game.getValues().get(Constants.DESCRIPCION_INGLES));
ps.setString(5,game.getValues().get(Constants.DESCRIPCION_CASTELLANO));
ps.setString(6,game.getValues().get(Constants.PEGI));
ps.setString(7,game.getValues().get(Constants.DESCRIPCION_PEGI));
ps.setString(8,titulo);
ps.executeUpdate();
}
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "No se ha podido establecer la conexión con la DB" + e);
e.printStackTrace();
}
}
public String ConvertirObjectToString(Object Obj) {
String Str="";
if(Obj!=null){
Str = Obj.toString();
}
return Str;
}
}
Hope somebody could help me.