Avatar billede snowflake7 Nybegynder
25. maj 2002 - 17:07 Der er 9 kommentarer og
1 løsning

Class.forName?

hvad er det der er galt her?




<html>
                              <head>
                                  <title>test at paradox</title>
                              </head>
                              <%@ page language="java"
                                        import="java.sql.* , java.io.*,java.util.*"  %>
                              <body>
                              <h1> TEST info fra Paradox-database</h1>
                              <table border="1" width="400">
                              <tr>
                              <td><b> Varenr</b></td><td><b>Beskrivelse</b></td>
                              <td><b> Pris</b></td>
                              </tr>
                              <% //step1
                              Class.forName("sun.jdbc.odbc.JdbcDriver");
                              //step2
                              Connection myConn =
                              DriverManager.getConnection("jdbc:odbc:indkoebdb");
                             
                              //step3
                              Statement stmt = myConn.createStatement();
                              //step4
                              ResultSet myResultSet = stmt.executeQuery("select * from indkoebstab");
                              //step6
                              if(myResultSet != null)
                              {
                              //step7
                              while(myResultSet.next())
                              {
                              String Varenr = myResultSet.getString("Varenr");
                              String Beskrivelse = myResultSet.getString("Beskrivelse");
                              %>
                              <tr>
                              <td><%= Varenr %></td>
                              <td><%= Beskrivelse %></td>
                              </tr>
                             
                              <%
                              //step8
                              }
                              }
                             
                              //step 9 og 10
                             
                              stmt.close();
                              //step11
                              myConn.close();
                              %>
                             
                             
                              </table>
                             
                             
                              </body>
                              </html>

usingjsp/Internetbutik/_0002fusingjsp_0002fInternetbutik_0002fSoegEfterVarerJSP_0002ejspSoegEfterVarerJSP_jsp_0.java [80:1] cannot resolve symbol
symbol  : method forName  (java.lang.String)
location: class usingjsp.Internetbutik.Class
                                              Class.forName("sun.jdbc.odbc.JdbcDriver");
    ^
1 error
Errors compiling SoegEfterVarerJSP.
Avatar billede disky Nybegynder
25. maj 2002 - 17:13 #1
Jeg bruger:

Class.forName("sun.jdbc.odbc.JdbcDriver").newInstance();

og det virker.
Avatar billede snowflake7 Nybegynder
25. maj 2002 - 20:39 #2
det virkede ikke den siger stadig samme fejl.
usingjsp/Internetbutik/_0002fusingjsp_0002fInternetbutik_0002fSoegEfterVarerJSP_0002ejspSoegEfterVarerJSP_jsp_0.java [80:1] cannot resolve symbol
symbol  : method forName  (java.lang.String)
location: class usingjsp.Internetbutik.Class
                                              Class.forName("sun.jdbc.odbc.JdbcDriver").newInstance();
    ^
1 error
Errors compiling SoegEfterVarerJSP.
Avatar billede disky Nybegynder
25. maj 2002 - 21:25 #3
hvilken version af java bruger du ?
Avatar billede soelvpil Nybegynder
25. maj 2002 - 22:37 #4
Prøv med

java.lang.Class.forName("sun.jdbc.odbc.JdbcDriver");
Avatar billede snowflake7 Nybegynder
26. maj 2002 - 21:05 #5
det virkede soelvpil tak for det
også tak til disky selvom det ikke virkede
Avatar billede disky Nybegynder
26. maj 2002 - 21:17 #6
meget underligt da java.lang.* altid er impoteret per default.

bruger du en IKKE sun JDK `?
Avatar billede soelvpil Nybegynder
27. maj 2002 - 08:18 #7
Grunden til at jeg foreslog det, var at fejlmeddelelsen tydede på,
at den brugte en klasse ved navn Class i pakken usingjsp.Internetbutik.

Så måske er der lidt rod i nogle af stierne, der forvirrer serveren lidt. Eller har du en jsp-fil, der hedder noget med Class.
Avatar billede snowflake7 Nybegynder
28. maj 2002 - 12:40 #8
må en jsp-fil da ikke hedde noget med Class
Avatar billede snowflake7 Nybegynder
28. maj 2002 - 13:07 #9
ups!! det var min fejl det jeg vil have denne jsp-side til at gøre er at hente
nogle varer fra en paradox-database, vise dem i browseren sådan så kunden kan søge
på varerne og bagefter skal jeg så have lavet det sådan at kunden kan udvælge
hvilke varer han/Hun vil have hvorefter personen så via et link til en servlet i en table
kan tilføje varer til indkøbskurven.
Avatar billede snowflake7 Nybegynder
28. maj 2002 - 19:03 #10
package usingjsp.Butik;
import usingjsp.Butik.*;
import java.sql.*;

/** A data object representing a bruger in the problem reporting
*  system.
*/
public class bruger extends DBHandler
    implements java.io.Serializable
{
    public String varenr;
    public double pris;
    public String beskrivelse;
    public int maengde;
    public String bruger;
    public String Brugernavn;
    public String password;

    public bruger()
    {
    }

    public bruger(ResultSet results)
        throws SQLException
    {
        Brugernavn = results.getString("Brugernavn");
        Bruger = results.getString("Bruger");
        Password = results.getString("Password");
        Varenr = results.getString("Varenr");
        Pris = results.getDouble("Pris");
        Beskrivelse = results.getString("Beskrivelse");
        Maengde = results.getInt("Maengde");
       
       
    }

   

    public String getBrugernavn() { return Brugernavn; }
    public void setBrugernavn(String aBrugernavn)
        { Brugernavn= aBrugernavn; }
       
    public String getbruger() { return bruger; }
    public void setbruger(String abruger)
        { bruger = abruger; }   

    public String getPassword() { return password; }
    public void setPassword(String aPassword)
        { password = aPassword; }
       
    public String getVarenr(){return varenr;}

public void setVarenr(String aVarenr){ varenr = aVarenr;}
   
public double getpris(){return pris;}

public void setpris(double aPris){ pris  = aPris ;}


public String getbeskrivelse(){return beskrivelse;}

public void setbeskrivelse( String aBeskrivelse){ beskrivelse = aBeskrivelse;}

public int getMaengde(){return maengde;}

public void setMaengde(int aMaengde){ maengde = aMaengde;}   
   
       
    public String getTableName() { return "bruger"; }

    public DBHandler createInstance(ResultSet results)
        throws SQLException
    {
        return new bruger(results);
    }

    public String getFieldList() { return "Brugernavn,Bruger,Password,Varenr,Pris,Beskrivelse,Maengde"; }

    public String getInsertStatement()
    {
        return "insert into bruger (Brugernavn,Bruger,Password,Varenr,Pris,Beskrivelse,Maengde) "+
            " values (?,?,?,?,?,?,?)";
    }

    public void prepareInsertStatement(PreparedStatement s)
        throws SQLException
    {
        s.setString(1, Brugernavn);
        s.setString(2, Bruger);
        s.setString(3, Password);
        s.setString(4, Varenr);
        s.setString(5, Pris);
        s.setString(6, Beskrivelse);
        s.setString(7,Maengde );
    }

    public String getUpdateStatement()
    {
        return "update bruger set Brugernavn=?, Bruger=?,Varenr=?,Pris=?,Beskrivelse=?,Maengde=? "+
            " where Password=?";
    }

    public void prepareUpdateStatement(PreparedStatement s)
        throws SQLException
    {
      s.setString(1, Brugernavn);
        s.setString(2, Bruger);
        s.setString(3, Password);
        s.setString(4, Varenr);
        s.setString(5, Pris);
        s.setString(6, Beskrivelse);
        s.setString(7,Maengde );
    }

    public String getDeleteStatement()
    {
        return "delete from bruger where Brugernavn=?";
    }

    public void prepareDeleteStatement(PreparedStatement s)
        throws SQLException
    {
        s.setString(1, Brugernavn);
    }
   
   
   
}
package usingjsp.Butik;


import java.sql.*;
import java.util.*;

/** A base class for objects that map to database tables */

public abstract class DBHandler
{

    public Vector getAll(Connection conn)
        throws SQLException
    {
        return getAll(conn, null, null);
    }

/*henter alle objekter der macher en bestemt Where**/
    public Vector getAll(Connection conn, String whereClause)
        throws SQLException
    {
        return getAll(conn, whereClause, null);
    }

/** Henter alle objekterne i en tabel,som matcher en specifik where
    og gør det muligt for kunden at specificere yderligere tabeler, der bliver bliver brugt i
    where'en  */
    public Vector getAll(Connection conn, String whereClause,
        String additionalTables)
        throws SQLException
    {
        Statement s = null;

        try
        {
            s = conn.createStatement();

            Vector v = new Vector();

// byg  query'en.Den basale query bliver "select <fields> from table"
            String query = "select "+getFieldList()+" from "+getTableName();

// Tilføj yderligere tabeller, hvis der er brug for det
            if (additionalTables != null)
            {
                query = query + "," + additionalTables;
            }

// Tilføj where hvis der er brug for det
            if (whereClause != null)
            {
                query = query + " where "+whereClause;
            }

// udfør query
            ResultSet results = s.executeQuery(query);

// lav en vector af resultaterne
            while (results.next())
            {
                v.addElement(createInstance(results));
            }

            return v;
        }
        finally
        {
            if (s != null)
            {
                try { s.close(); } catch (Exception ignore) {}
            }
        }
    }

/** Udfører en vilkårlig query string som skulle returnerer alle
*  felterne i tabellen ligesom de andre querier. */
    public Vector executeQuery(Connection conn, String query)
        throws SQLException
    {
        Statement s = null;

        try
        {
            s = conn.createStatement();

            Vector v = new Vector();

// udfør query
            ResultSet results = s.executeQuery(query);

// lav en vector af resultaterne
            while (results.next())
            {
                v.addElement(createInstance(results));
            }

            return v;
        }
        finally
        {
            if (s != null)
            {
                try { s.close(); } catch (Exception ignore) {}
            }
        }
    }

/** Indsæt et objekt i databasen */
    public int insert(Connection conn)
        throws SQLException
    {
        PreparedStatement s = null;

        try
        {
// Få dette objekt til at udføre dets eget insert funktion
            s = conn.prepareStatement(getInsertStatement());

// Sæt dataværdier ind i insert funktionen
            prepareInsertStatement(s);

// Udfør insert'en
            return s.executeUpdate();
        }
        finally
        {
            if (s != null)
            {
                try { s.close(); } catch (Exception ignore) {}
            }
        }
    }

// Returnerer en liste af felter i tabellen (bruges til select)
    public abstract String getFieldList();

/** Returnerer en liste af felter i tabellen og i mens specificeres en
*  tabel til feltnavnene,tabellen får et alias.feltnavne tilbage til det
*  originale navn. For eksempel, kunden vil måske gerne spørge fra tabel A og
*  tabel B, hver indeholde et felt F. hvis kunden skriver "select F from A,B ..." får
*  kunden måske en fejl fordi F er flertydig. Kunden bliver nødt til at skrive
*  "select A.F as F from A,B ...". Denne  rutine tager den originale felt-
*  liste og laver en liste af sådanne aliaser.
*/
    public String getFieldList(String tableName)
    {
// Lav en tokenizer til at analysere i gennem den originale liste
        StringTokenizer fieldList = new StringTokenizer(
            getFieldList(), ",");

// lav string bufferen til at holde resulterende liste
        StringBuffer newList = new StringBuffer();
        boolean first = true;

        while (fieldList.hasMoreTokens())
        {
            String field = fieldList.nextToken();

            if (!first) newList.append(',');
            first = false;
            newList.append(tableName);
            newList.append('.');
            newList.append(field);
            newList.append(" as ");
            newList.append(field);
        }

        return newList.toString();
    }

/** Laver en insert funktion der bliver brugt i en PreparedStatement */
    public abstract String getInsertStatement();

/** Gemmer dette objekt's data i  PreparedStatement'en returneret af
*  prepareInsertStatement. */
    public abstract void prepareInsertStatement(PreparedStatement s)
        throws SQLException;

/** opdaterer database rækken,som indeholder dette objekt */
    public int update(Connection conn)
        throws SQLException
    {
        PreparedStatement s = null;

        try
        {
            s = conn.prepareStatement(getUpdateStatement());

            prepareUpdateStatement(s);

            return s.executeUpdate();
        }
        finally
        {
            if (s != null)
            {
                try { s.close(); } catch (Exception ignore) {}
            }
        }
    }

    public abstract String getUpdateStatement();
    public abstract void prepareUpdateStatement(PreparedStatement s)
        throws SQLException;

/** Fjerner dette objekt fra  databasen */
    public int delete(Connection conn)
        throws SQLException
    {
        PreparedStatement s = null;

        try
        {
            s = conn.prepareStatement(getDeleteStatement());

            prepareDeleteStatement(s);

            return s.executeUpdate();
        }
        finally
        {
            if (s != null)
            {
                try { s.close(); } catch (Exception ignore) {}
            }
        }
    }

/** Returnerer sekvensnummeret, som bliver brugt til at indsætte dette objekt. Denne metode
*  er meget database-afhægig. denne version er gearet hen imod
*  mySQL databasen.
*/
    public int getSequenceNumber(Connection conn)
        throws SQLException
    {
        Statement s = null;

        try
        {
            s = conn.createStatement();

            ResultSet results = s.executeQuery(
                "select last_insert_id()");

            if (results.next())
            {
                return results.getInt(1);
            }
            else
            {
                throw new SQLException(
                    "Unable to generate sequence number");
            }

        }
        finally
        {
            if (s != null)
            {
                try { s.close(); } catch (Exception ignore) {}
            }
        }
    }

    public abstract String getDeleteStatement();
    public abstract void prepareDeleteStatement(PreparedStatement s)
        throws SQLException;

    public abstract String getTableName();
    public abstract DBHandler createInstance(ResultSet results)
        throws SQLException;

    public String getSequenceGenerator() { return null; }
}

Nu prøver jeg så at få det her til at virke med en paradox database og jeg vil gerne have noget hjælp
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester