Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Unable to get rows from MYSQL database

807606May 19 2007 — edited Jun 3 2007
Hi all. I'm a student at a college here in norway. This past year we have been learning databases and java programming. So now for the summer I'm just having some fun with it, trying to make a movie database of all my movies. In stead of using the INSERT INTO all the time, I thought I should make a program, much easier you know.

But I get a problem at the very first, I can't seem to get rows out of the database. I have allready made a command line based program, but now I'm trying to make an applet one. So there is some difference in the coding, I know.


This is the code:

import javax.swing.*; //JOptionPane
import javax.swing.table.*; //DefaultTableModel
import java.awt.*; //Layout
import java.awt.event.*; //Action Listener
import java.sql.*; //SQL content

public class movieDB extends JApplet implements KeyListener, ActionListener{

//---------------------------HERE YOU CAN USE YOUR OWN CONFIGURATION---------------------------//

String tabelMovie = "movie";
String tabelActor = "actor";
String tabelCasting = "casting";
String database = "movie";
String password = "pass";
String user = "root";
String adresse = "jdbc:mysql://localhost:3306/";

//----------------------------------------DO NOT CHANGE UNDER HERE----------------------------------------//

JTable tMovie;
JMenuBar menu;
JMenuItem List;
JMenuItem New;
JMenuItem Change;
JMenuItem Delete;
JMenuItem Om;
DefaultTableModel tableMovie;
Connection connection = null;
public void init(){
this.setLayout(new BorderLayout());
//Menu
menu = new JMenuBar();
JMenu menu1 = new JMenu("File");
JMenu menu2 = new JMenu("Help");
List = new JMenuItem("List movies");
New = new JMenuItem("New movie");
Change = new JMenuItem("Change movie");
Delete = new JMenuItem("Delete movie");
Om = new JMenuItem("About");
//Add to actionListener
List.addActionListener(this);
New.addActionListener(this);
Change.addActionListener(this);
Delete.addActionListener(this);
Om.addActionListener(this);
//Creates a table and set columns
tableMovie = new DefaultTableModel();
tableMovie.addColumn("ID");
tableMovie.addColumn("Title");
tableMovie.addColumn("Genre");
tableMovie.addColumn("Genre");
tableMovie.addColumn("Length");
tableMovie.addColumn("Year");
tableMovie.addColumn("Owner");
tableMovie.addColumn("Type");
tableMovie.addColumn("Director");
tMovie = new JTable(tableMovie);
tableMovie.addRow(rowOverskrift("ID","Title","Genre","Genre","Length","Year","Owner","Type","Director"));
//Oppretter en Scroll p� table'en
JScrollPane scp = JTable.createScrollPaneForTable(tMovie);
//Add subbuttons to main menu
menu1.add(List);
menu1.add(New);
menu1.add(Change);
menu1.add(Delete);
menu2.add(Om);
menu.add(menu1);
menu.add(menu2);
//Create a Panel and set layout
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
//Legger til Scroll p� panel nr 1
panel.add(scp,BorderLayout.CENTER);
//Adds panels and set layout
panel.add(tMovie, BorderLayout.CENTER);
this.add(menu,BorderLayout.NORTH);
this.add(panel, BorderLayout.CENTER);
connect();
}

public void listUt(){
try
{
connect();
//Nullstiller listen slik at vi kan bruke listUt etter hver opperasjon
while(tableMovie.getRowCount()>1)
{
tableMovie.removeRow(tableMovie.getRowCount() - 1 );
}
Statement stmnt = connection.createStatement();
JOptionPane.showMessageDialog(null, "Test5"); - The program doesn't reach this test here. Made a test4 above the Statement stmnt, but after that, blank.... It doesn't add anything to the table.
ResultSet res = stmnt.executeQuery("SELECT * FROM "+tabelMovie+";");
JOptionPane.showMessageDialog(null, "Test6");
while (res.next())
{
tableMovie.addRow(personToRow(res.getString(1),res.getString(2),res.getString(3),res.getString(4),res.getString(5),res.getString(6),res.getString(7),res.getString(8),res.getString(9)));
}
}
catch(SQLException sqle)
{
System.err.println("Feil: "+sqle);
}
}

public void connect(){
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e)
{
System.err.println("Could not find Driver\n");
}
try
{
connection = DriverManager.getConnection(adresse + database, user, password);
}
catch(Exception e)
{
System.err.println(e+" Connection to, talking to or disconnecting from db failed\n");
}
}

private Object[] personToRow(String id, String title, String genre, String genre2, String length, String year, String owner, String type, String director){
return new Object[] {id,title,genre,genre2,length,year,owner,type,director};
}

private Object[] rowOverskrift(String id, String title, String genre, String genre2, String length, String year, String owner, String type, String director){
return new Object[] {id,title,genre,genre2,length,year,owner,type,director};
}

public void keyTyped(KeyEvent e) {

}

public void keyPressed(KeyEvent e) {
//Tom fordi jeg bruker bare keyTyped slik at programmet ikke lister ut lista 3 ganger ved hver tastetrykk(bruker mye ressurser)
}

public void keyReleased(KeyEvent e) {
//Tom fordi jeg bruker bare keyTyped slik at programmet ikke lister ut lista 3 ganger ved hver tastetrykk(bruker mye ressurser)
}

public void actionPerformed(ActionEvent e){
if(e.getSource()==Om) //Gives you an About text
{
JOptionPane.showMessageDialog(null, "This is a program to access and add movies to the movie database.\nWritten by\nTorbj�rn Svae aka. LordSvae.\n\nQuestions be reffered to:\ntorbjoernsvae [at] hotmail [dot] com,\ntorbjorn.a.svae [at] hiof [dot] no");
}
else if(e.getSource()==List)
{
connect();
listUt();
}
}

}

Here's the database:
Database: movie
Tables: movie, actor, casting
CREATE TABLE movie(id MEDIUMINT NOT NULL AUTO_INCREMENT, title text, genre text, genre2 text, length integer, yr integer, owner text, type text, director integer, PRIMARY KEY (id));
CREATE TABLE actor(id MEDIUMINT NOT NULL AUTO_INCREMENT, name text, PRIMARY KEY (id));
CREATE TABLE casting(movieid integer, actorid integer, ord integer, PRIMARY KEY (movieid, actorid, ord));

NOTICE:
I'm a beginner, so see past my bad programming and my programming isn't that objektive yet... It might be hard to follow for you.

I'm using MYSQ v5 and JDK 6

Message was edited by:
LordSvae

Message was edited by:
LordSvae
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 1 2007
Added on May 19 2007
24 comments
337 views