Zoals de titel het al zegt, probeer ik iets op te slaan in een database. Maar telkens als wij het proberen (wat in onze optiek goed is) geeft het de zin 'General Error' terug. Helaas omdat wij denken dat het goed is kunnen wij het probleem niet vinden. Hierbij dus de klasse en hopelijk zou iemand ons kunnen helpen! Het probleem zit dus bij de SAVE methode.
Het gaat dus om de SAVE methode.
Alvast Bedankt!
Met vriendelijke groet,
Bakelsevv
Code:
package puzzel.persistentie;
import java.util.logging.Level;
import java.util.logging.Logger;
import puzzel.domein.Puzzel;
import puzzel.domein.Woord;
import java.sql.*;
import java.util.*;
public class PuzzelDatabase {
private String url;
private String drivers;
private String username;
private String password;
private Connection con;
public PuzzelDatabase(String url, String drivers, String username,
String password)
{
System.setProperty("jdbc.drivers", "sun.jdbc.odbc.JdbcOdbcDriver");
this.url = "jdbc:odbc:dbsPuzzel";
try
{
con = DriverManager.getConnection(this.url, username, password);
System.out.println("Er is een connectie");
}
catch (Exception ex)
{
System.out.println("Er is iets fout gegaan bij de connectie");
System.out.println(ex.getMessage());
}
}
public boolean save(Puzzel p) {
try
{
System.out.println("1");
Statement stat = con.createStatement();
System.out.println("2");
String query2 = "INSERT into puzzel values("+p.getNr()+", "+p.getAantalRijen()+", "+p.getAantalKolommen()+");";
//String query2 = "INSERT INTO puzzel (nummer, rijen, kolommen) VALUES ("+p.getNr()+", "+p.getAantalRijen()+", "+p.getAantalKolommen()+");";
System.out.println("3");
//stat.execute(query);
System.out.println(query2);
// !! hier gaat het fout:
//stat.execute(query2);
stat.executeUpdate(query2);
System.out.println(query2);
Iterator<Woord> hw= p.getHorizontaleWoorden();
while (hw.hasNext())
{
Woord w= hw.next();
String querytwee = "INSERT into woorden values("+p.getNr()+", "+w.getTekst()+", "+w.getBeginrij()+", "+w.getBeginkolom()+", 'h');";
System.out.println(querytwee);
stat.execute(querytwee);
System.out.println(querytwee);
}
Iterator<Woord> vw= p.getVertikaleWoorden();
while (vw.hasNext())
{
Woord w= vw.next();
String querytwee = "INSERT INTO woorden values("+p.getNr()+", '"+w.getTekst()+"', "+w.getBeginrij()+", "+w.getBeginkolom()+", 'v');";
stat.execute(querytwee);
System.out.println(querytwee);
}
con.close();
}
catch (SQLException e)
{
System.out.println(e.getMessage());
return false;
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
return true;
}
public Puzzel load(int nr)
{
Puzzel p;
int aantalR=0, aantalK =0;
try
{
// puzzel maken
Statement stat = con.createStatement();
String query = "SELECT * FROM puzzel WHERE nummer = "+nr+";";
System.out.println(query);
ResultSet rs = stat.executeQuery(query);
while (rs.next())
{
aantalR = rs.getInt("rijen");
aantalK = rs.getInt("kolommen");
}
p = new Puzzel(nr, aantalR, aantalK);
//horizontale woorden toevoegen
query = "SELECT * FROM woorden WHERE nummer = "+nr+" AND type='h';";
System.out.println(query);
rs = stat.executeQuery(query);
while (rs.next())
{
String woord = rs.getString("woord");
String omschr = "panda";
int startkolom = rs.getInt("startkolom");
int startrij = rs.getInt("startrij");
Woord w = new Woord(woord, omschr, startkolom, startrij);
p.addHorizontaalWoord(w);
}
//verticale woorden toevoegen
query = "SELECT * FROM woorden WHERE nummer = "+nr+" AND type='v';";
System.out.println(query);
rs = stat.executeQuery(query);
while (rs.next())
{
Woord w = new Woord(rs.getString("woord"), "", rs.getInt("startkolom"), rs.getInt("startrij"));
p.addVertikaalWoord(w);
}
con.close();
return p;
}
catch (SQLException ex)
{
}
return new Puzzel(0, 0, 0);
}
public int getMaxPuzzelnr()
{
try
{
//todo
Statement stat = con.createStatement();
String query = "SELECT max(nummer) as nrm FROM puzzel";
System.out.println(query);
ResultSet rs = stat.executeQuery(query);
while (rs.next())
{
return rs.getInt("nrm");
}
}
catch (SQLException ex) {
}
return -1;
}
}
Het gaat dus om de SAVE methode.
Alvast Bedankt!
Met vriendelijke groet,
Bakelsevv