Java - Mysql
Hej Sweclockers!
Jag håller på att programmera lite i Java men sitter fast. Ska göra en applet som arbetar mot en mysql server. Servern fungerar bra och har det add-on det behöver likså JDK:n
Men, min kod:
import java.applet.Applet;
import java.awt.Graphics;
import java.util.Vector;
import java.sql.*;
public class databas extends Applet implements Runnable {
public Thread worker;
public Vector queryResults;
public 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:mysql://localhost:3306/cdcol";
String query = "select * from cds";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch(Exception ex) {
setError("Can't find Database driver class: " + ex);
return;
}
try {
Vector results= new Vector();
Connection con = DriverManager.getConnection(url,
"hej", "hej");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString("titel");
float f = rs.getFloat("jahr");
String text = s + " " + f;
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 enuma = queryResults.elements();
while (enuma.hasMoreElements()) {
String text = (String)enuma.nextElement();
g.drawString(text, 5, y);
y = y + 15;
}
}
/**
* This public method is used to record an error message for
* later display.
*/
public synchronized void setError(String mess) {
queryResults = null;
message = mess;
worker = null;
// And ask AWT to repaint this applet.
repaint();
}
/**
* This public method is used to record the results of a query, for
* later display.
*/
public synchronized void setResults(Vector results) {
queryResults = results;
worker = null;
// And ask AWT to repaint this applet.
repaint();
}
}
Den resulterar bara i:
Note: C:\.....\JCreator Pro\MyProjects\databas\src\databas.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Process completed.
Kör jag med -Xlint:unchecked får jag:
C:\.....\JCreator Pro\MyProjects\databas\src\databas.java:48: warning: [unchecked] unchecked call to addElement(E) as a member of the raw type java.util.Vector
results.addElement(text);
^
1 warning
Process completed.
Program mot Mysql är första ggn för mig så det är utanför min kunskapsnivå, därför är den mesta av koden från internet redan. Jag har hittat några exempel men aldrig någon med en paint funktion innan vilket är viktigt för mig då jag tänkte använda den till att rita ut lite och som en applet:)
Hoppas någon kan hjälpa, någon som kanske redan kan hur man gör Java mot Mysql
"En vis man sa en gång"