Vereis estoy realizando una interfaz gráfica para grabar datos en una base de datos embedidad en una aplicación java, el problema es que estoy teniendo un problemas a la hora de realizar un insert en la tabla y me da que se me ha pasado algo pero no consigo encontrar el que :S
Creación de Base de Datos si no existe
Código:
public class DerbInterfaz {
public final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
public final String JDBC_URL = "jdbc:derby:zadb;create=true";
public final String SQL_STATEMENT = "select * from citas";
public Statement statement;
public void conexion() throws ClassNotFoundException, SQLException {
Class.forName(DRIVER);
Connection connection = DriverManager.getConnection(JDBC_URL);
Statement statement = connection.createStatement();
try{
ResultSet resultSet = statement.executeQuery(SQL_STATEMENT);
}catch(SQLException e){
connection.createStatement().execute("CREATE TABLE citas(nombre varchar(20),apellidos varchar(20), dia varchar(20), hora varchar(20), motivo varchar(255))");
ResultSet resultSet = statement.executeQuery(SQL_STATEMENT);
}
}
}
Insercción de Datos
Código:
public class saveData {
derbinterfaz.DerbInterfaz bd = new derbinterfaz.DerbInterfaz();
public void registrar_datos(){
try{
bd.conexion();
bd.statement.execute("INSERT INTO citas(nombre, apellidos, dia, hora, motivo)VALUES('ad','ad','ad','ad','ad')");
}catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null, "No se han podido guardar los datos","Error",JOptionPane.PLAIN_MESSAGE);
}
}
}
He añadido la acción de registrar_datos en un botón de la interfaz grafica. Pero cuando pulso el botón me salta el siguiente error.
Error
Código:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at derbinterfaz.saveData.registrar_datos(saveData.java:11)
at derbinterfaz.interfaz.jButton1ActionPerformed(interfaz.java:130)
at derbinterfaz.interfaz.access$100(interfaz.java:5)
at derbinterfaz.interfaz$2.actionPerformed(interfaz.java:54)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)......
EDITO!
El problema me esta viniendo porque a la hora de realizar el comando SQL insert estoy llamando a un Statement vacío, por algun motivo cuando llamo a la función conexion() no me sobreescribe la variable statement declarada en el inicio :S