• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

JDBC Source Code Error

 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I downloaded a JDBC program from java.sun to try to learn some Java, and JDBC. I tried to create my own applet to do a JDBC connection, but failed miserably. I then decied to modify the example I downloaded and try to run that. I did just that, and it compiles, but when I try to run it, it gives the error:
exception in thread "main" java.lang.NoClassDefFoundError: OutputAppletTEST (wrong name: OutputAppletTEST)
and then a list of 12 "at.........."
Here is the code I am trying to run. Can someone tell me why this is doing this to me. I just want to get a good hold on Java. I have done good so far, and I thought I was getting the hang of it, until I started messing with JDBC :-(
................................................................
/**
* This is a demonstration JDBC applet.
* It displays some simple standard output from the Coffee database.
*/
import java.applet.Applet;
import java.awt.Graphics;
import java.util.Vector;
import java.sql.*;
public class OutputAppletTEST extends Applet implements Runnable {
private Thread worker;
private Vector queryResults;
private String message = "Initializing";
public synchronized void start() {
// Every time "start" is called we create a worker thread to
// re-evaluate the database query.
if (worker == null) {
message = "Connecting to database";
worker = new Thread(this);
worker.start();
}
}
/**
* The "run" method is called from the worker thread. Notice that
* because this method is doing potentially slow databases accesses
* we avoid making it a synchronized method.
*/
public void run() {
String url = "jdbc dbc kms feed";
String query = "select o3stor, o3dcr from o3ohst00";
try {
Class.forName("myDriver.ClassName");
} catch(Exception ex) {
setError("Can't find Database driver class: " + ex);
return;
}
try {
Vector results = new Vector();
Connection con = DriverManager.getConnection(url,
"u085097", "erin1030");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString("o3stor");
String s1 = rs.getString("o3dcr");
String text = s + " " + s1;
results.addElement(text);
}

stmt.close();
con.close();
setResults(results);
} catch(SQLException ex) {
setError("SQLException: " + ex);
}
}
/**
* The "paint" method is called by AWT when it wants us to
* display our current state on the screen.
*/
public synchronized void paint(Graphics g) {
// If there are no results available, display the current message.
if (queryResults == null) {
g.drawString(message, 5, 50);
return;
}
// Display the results.
g.drawString("Prices of coffee per pound: ", 5, 10);
int y = 30;
java.util.Enumeration enum = queryResults.elements();
while (enum.hasMoreElements()) {
String text = (String)enum.nextElement();
g.drawString(text, 5, y);
y = y + 15;
}
}
/**
* This private method is used to record an error message for
* later display.
*/
private synchronized void setError(String mess) {
queryResults = null;
message = mess;
worker = null;
// And ask AWT to repaint this applet.
repaint();
}
/**
* This private method is used to record the results of a query, for
* later display.
*/
private synchronized void setResults(Vector results) {
queryResults = results;
worker = null;
// And ask AWT to repaint this applet.
repaint();
}
}
Thank you for your time
berg
 
mister krabs
Posts: 13974
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Because it's an applet and you are trying to run it as an application?
 
Phil Berggren
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I do not understand. The only thing I changed was the connection string, URL, and query. I did not modify anythign else. The way I was running it was "java OutputAppletTEST" after I compiled it (without ""'s of course). Is ther another way I should be running it? I have mainly only used swing, not applets. Please help a newbie understand.
Thanks
berg
 
Thomas Paul
mister krabs
Posts: 13974
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Only java applications can be run using java.exe. All java applications have a main method which this example doesn't. I would suggest going to the sun site and reading the tutorial on applets before trying to conquer something as big as this.
 
Ranch Hand
Posts: 110
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If u r trying to run it as an applet use appletViewer <filename>
One more point to check is if the applet can connect to Database.
Mahesh Mamani
 
reply
    Bookmark Topic Watch Topic
  • New Topic