habe folgendes problem:
habe eine gui, und möchte über einen button eine sql abfrage machen. es kommt aber immer folgende nullpointer exception in dieser zeile:
allerdings hab ich ja vorher wie in meinem tut beschrieben:
gemacht, was fehlt hier noch?
= new Statement() ist ja nicht möglich.
vorher hatte ich eine nullpointer exception an dieser stellen:
hab dann einfach:
davor gemacht, dann kam der fehler nicht mehr.
ich nehme aber an, das ist schon nicht ok, oder? aber wie löse ich das sonst?
ich habe die datenbank connection in einer anderen klassen als das statement, ich nehme an es liegt irgendwie da dran, finde aber keine lösung (die datenbankverbindung klappt übrigens einwandfrei).
evtl geht dass mit der getConn() methode nicht, aber wenn das der grund ist, warum geht es so nicht, und wie muss ich es machen? ich möchte auf jeden fall die connection und die selects in unterschiedliche klassen machen, das geht ja sicher, oder?
hier die nötigen klassen:
habe eine gui, und möchte über einen button eine sql abfrage machen. es kommt aber immer folgende nullpointer exception in dieser zeile:
Code:
stmt = conn.createStatement();
allerdings hab ich ja vorher wie in meinem tut beschrieben:
Code:
Statement stmt = null
= new Statement() ist ja nicht möglich.
vorher hatte ich eine nullpointer exception an dieser stellen:
Code:
conn = dataBaseConnection.getConn();
hab dann einfach:
Code:
dataBaseConnection = new DataBaseConnection();
ich nehme aber an, das ist schon nicht ok, oder? aber wie löse ich das sonst?
ich habe die datenbank connection in einer anderen klassen als das statement, ich nehme an es liegt irgendwie da dran, finde aber keine lösung (die datenbankverbindung klappt übrigens einwandfrei).
evtl geht dass mit der getConn() methode nicht, aber wenn das der grund ist, warum geht es so nicht, und wie muss ich es machen? ich möchte auf jeden fall die connection und die selects in unterschiedliche klassen machen, das geht ja sicher, oder?
hier die nötigen klassen:
Code:
package version1_1;
/**
* DataBaseConnection connects to the MYSQL Database and opens a SQL Window if the
* connection was done successfully.
*
* @author CHUCKY
* @version 1.1 Build 02.01.2005
*
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DataBaseConnection
{
private Connection conn = null;
private SQLWindow sqlWindow;
public DataBaseConnection()
{
}
/**
* Connects to the MYSQL DataBase and opens a SQLWindow
* if the connection was done successfully.
*
*/
public void connectToDataBase()
{
String driver = "com.mysql.jdbc.Driver";
try
{
Class.forName(driver).newInstance();
System.out.println("Class Loaded.");
}
catch (Exception e)
{
System.out.println("Class not found.");
e.printStackTrace();
}
String password = "dummies";
String url = "jdbc:mysql://localhost:3306/";
String dataBase = "coffeebreak";
String user = "root";
try
{
conn = DriverManager.getConnection(url+dataBase, user, password);
System.out.println("Connection done.");
sqlWindow = new SQLWindow("SQL Window");
}
catch (SQLException sqle)
{
System.err.println("Connection failed with: " + url + dataBase + " "
+ user + " " + password);
System.err.println("Error message: " + sqle.getMessage());
}
}
/**
* @return Returns the conn.
*/
public Connection getConn() {
return conn;
}
}
Code:
package version1_1;
/**
* DataBaseOperationsImpl implements the functions from the DataBaseOperations
* Interface.
*
* @author CHUCKY
* @version 1.1 Build 03.01.2005
*/
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DataBaseOperationsImpl implements DataBaseOperations
{
private Connection conn;
private DataBaseConnection dataBaseConnection;
public DataBaseOperationsImpl()
{
}
/**
* Does the first query in this application. (only for test purposes)
*/
public void doQuery()
{
dataBaseConnection = new DataBaseConnection();
conn = dataBaseConnection.getConn();
Statement stmt = null;
ResultSet rset = null;
String doQuery = "SELECT COF_NAME FROM COFFEES";
String cof_name = "";
try
{
stmt = conn.createStatement();
rset = stmt.executeQuery(doQuery);
while (rset.next())
{
rset.getString("COF_NAME");
System.out.println(cof_name + " ");
}
}
catch (SQLException sqle)
{
System.err.println("SQL Exception: ");
System.err.println(sqle.getMessage());
}
}
}
Code:
package version1_1;
/**
* Creates a new Window where you can make queries and manipulations to the
* connected database.
*
* @author CHUCKY
* @version 1.1 Build 02.01.2005
*/
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class SQLWindow extends JFrame implements ActionListener
{
private JButton doQueryButton;
private DataBaseOperationsImpl dataBaseOperationsImpl;
private String doQuery = "doQuery";
public SQLWindow(String title)
{
super(title);
JFrame.setDefaultLookAndFeelDecorated(true);
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
addButtons();
contentPane.add(doQueryButton);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
pack();
setSize(1000, 600);
setResizable(false);
setVisible(true);
}
public void addButtons()
{
doQueryButton = new JButton("Do a Query");
doQueryButton.setActionCommand(doQuery);
doQueryButton.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals(doQuery))
{
dataBaseOperationsImpl = new DataBaseOperationsImpl();
dataBaseOperationsImpl.doQuery();
}
}
}