21. november 2003 - 21:46Der er
17 kommentarer og 1 løsning
Database + java
Er igang med at afprøve et eks, bestående af 3 klasser:
Har tilføjet KUNDER.mdb til Data Sources (ODBC).
import java.util.*;
public class BenytDatabaseforbindelse { public static void main(String[] arg) { try { Databaseforbindelse dbf = new Databaseforbindelse(); dbf.opretTestdata(); // fjern hvis tabellen allerede findes Vector v = dbf.hentAlle(); System.out.println("Alle data: "+v); dbf.sletAlleData();
dbf.indsæt( new Kunde("Kurt",1000) );
System.out.println("Alle data nu: "+ dbf.hentAlle());
public Vector hentAlle() throws SQLException { Vector alle = new Vector(); ResultSet rs = stmt.executeQuery("select NAVN, KREDIT from KUNDER"); while (rs.next()) { // brug kolonneindeks i stedet for kolonnenavn Kunde k = new Kunde( rs.getString(1), rs.getDouble(2)); alle.addElement(k); } return alle; } }
public class Kunde { String navn; double kredit;
public Kunde(String n, double k) { navn = n; kredit = k; }
public String toString() { return navn+": "+kredit+" kr."; } }
Programmet melder denne fejl:
java.lang.NullPointerException
at Databaseforbindelse.opretTestdata(Databaseforbindelse.java:40)
at BenytDatabaseforbindelse.main(BenytDatabaseforbindelse.java:20)
Problem med database: java.lang.NullPointerException
Kunne ikke oprette tabel: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Table 'KUNDER' already exists.
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3065)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)Problem med database: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at Databaseforbindelse.hentAlle(Databaseforbindelse.java:55)
at BenytDatabaseforbindelse.main(BenytDatabaseforbindelse.java:21)
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3065)
Jacob: -1799.0 kr.
Brian: 0.0 kr.
Problem med database: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at Databaseforbindelse.sletAlleData(Databaseforbindelse.java:33)
at BenytDatabaseforbindelse.main(BenytDatabaseforbindelse.java:27)
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3065)
Problem med database: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at Databaseforbindelse.sletAlleData(Databaseforbindelse.java:33)
at BenytDatabaseforbindelse.main(BenytDatabaseforbindelse.java:27)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.