NPE - Doch warum?

Java-Problems

Bekanntes Mitglied
Java:
public class Build {

	JFrame frame;
	Popup popup;
	JPanel panel = new JPanel();
	JTextField tf_input = new JTextField();
	JLabel lb_input = new JLabel();
	JButton bt_input = new JButton();
	String pfad;

	// Anzeige-Fenster für DB-Pfad
	public Build() {
		frame = new JFrame("Datumskonvertierung");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(350, 130);
		frame.setLocation(130, 75);

		panel.setLayout(null);
		lb_input.setBounds(10, 10, 250, 20);
		lb_input.setVisible(true);
		lb_input.setText("Bitte hier den Pfad der Datenbank eintragen:");
		tf_input.setBounds(10, 35, 250, 20);
		tf_input.setVisible(true);
		bt_input.setBounds(10, 60 , 100, 20);
		bt_input.setText("OK");
		bt_input.setVisible(true);
		bt_input.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				pfad = tf_input.getText();
				System.out.println(pfad);
				
			}
		});
		
		panel.add(lb_input);
		panel.add(tf_input);
		panel.add(bt_input);
		
		frame.add(panel);
		frame.setVisible(true);
	}

	// AB hier: DB-Verbindung!

	public Connection open() {
		Connection con = null;
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			// set this to a MS Access DB you have on your machine
			//String filename = "C:/Users/p.nebel/Desktop/Kundenstamm.mdb";
			String filename = pfad;
			String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
			//String url = "jdbc:odbc:C:/Users/p.nebel/Desktop/Kundenstamm.mdb";
			String url = "jdbc:odbc:"+filename;
			database += filename.trim() + ";DriverID=22;READONLY=false}";
			// database+= filename.trim() + ";DriverID=22}";

			con = DriverManager.getConnection(database, "", "");
		} catch (Exception e) {
			System.out.println("Error: " + e);
		}

		return con;
	}

	public void close(Connection con) {
		try {
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
[/Java]
[code=Java]
public class Connection2 {

	public static void main(String[] args) {

		Connection connect = null;
		String id = "";
		String datum_old = "";
		String datum_neu = "";
		String jahr = "";
		String monat = "";
		String tag = " ";
		int count = 0;
		int updateCount = 0;

		

		try {
			Build build1 = new Build();
			connect = build1.open();
			Statement s = connect.createStatement();
			Statement stmt = connect.createStatement();
			s.execute("select * from Kundenbezüge12_07_10");
			ResultSet rs = s.getResultSet();

			String[] reihe = new String[2];

			if (rs != null) // if rs == null, then there is no ResultSet to view
				while (rs.next()) // this will step through our data row-by-row
				{
					reihe[0] = rs.getString(1);
					reihe[1] = rs.getString(8);

					id = reihe[0];
					datum_old = reihe[1];

					if (datum_old.startsWith("6")) {
						jahr = "2006";
						monat = datum_old.substring(1, 3);
						tag = datum_old.substring(3, 5);

						datum_neu = tag + "-" + monat + "-" + jahr;

						 System.out.println(id + " : " + datum_old + ":" +
						 jahr + " " + monat + " " + tag);}
					

					String sql = "UPDATE Kundenbezüge12_07_10 SET Datum2 = '"
							+ datum_neu + "' WHERE ID = " + id;
					System.out.println(sql);
					updateCount = stmt.executeUpdate(sql);
					build1.close(connect);

				}

		    System.out.println(updateCount);
			s.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}


	}

}

NPE wird in der Zeile vom Statement s = connect.createStatement(); angezeigt
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
überprüfe ob nochmal ob connect an dieser stelle null ist

und ob die Exception in open wirklich nicht fliegt...
wird System.out.println("Error: " + e); nicht aufgerufen?
 

ARadauer

Top Contributor
du stellst wahrscheinlihc die verbinung nicht richtig her ;-)

Java:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            // set this to a MS Access DB you have on your machine
            //String filename = "C:/Users/p.nebel/Desktop/Kundenstamm.mdb";
            String filename = pfad;
            String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
            //String url = "jdbc:odbc:C:/Users/p.nebel/Desktop/Kundenstamm.mdb";
            String url = "jdbc:odbc:"+filename;
            database += filename.trim() + ";DriverID=22;READONLY=false}";
            // database+= filename.trim() + ";DriverID=22}";
 
            con = DriverManager.getConnection(database, "", "");
bereinig das mal, da benutzt ja die hälfte variablen gar nicht!
 

FArt

Top Contributor
Mach ein sinnvolles Exceptionhandling und Logging, dann erübrigt sich die Frage. Auch ein Debugger leistet unglaublich gute Dienste.

Nach einem potentiell schwerwiegendem Fehler (beim Holen der Connection) nur eine Meldung auszugeben und null zurückzugeben ist Käse, besonders wenn nach dem Aufruf der Methode nicht explizit gegen null getestet wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Dekorator Muster - Irgendwas stimmt hier doch nicht? Java Basics - Anfänger-Themen 4
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
F byte, short oder doch int? Java Basics - Anfänger-Themen 6
C Textdatei oder doch eine Datenban Java Basics - Anfänger-Themen 15
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
F Abstrakte Klasse doch zum "Teil" instanzieren? Java Basics - Anfänger-Themen 4
B Set&Get Methoden oder doch nicht? Java Basics - Anfänger-Themen 21
L Byte[] to String, doch bits sind gespiegelt (MSB/LSB) Java Basics - Anfänger-Themen 3
L Erste Schritte Java oder doch lieber PHP? Java Basics - Anfänger-Themen 2
M Enums, oder doch was anderes? Java Basics - Anfänger-Themen 7
J ResultSet.getStrin - doch kein String? oder wo liegt das Problem? Java Basics - Anfänger-Themen 3
F Variablen Dezimalzahl oder doch nicht? Java Basics - Anfänger-Themen 5
L String: Objekt und doch kein Objekt? Java Basics - Anfänger-Themen 5
T Servlet - oder doch nicht? Java Basics - Anfänger-Themen 4
C Array ist befüllt, doch gibt sie immer 0 zurück Java Basics - Anfänger-Themen 3
K Kann man Private-Konstruktoren doch aurufen? Java Basics - Anfänger-Themen 8
feuervogel Datentypen Zwei Sets sind gleich, aber dann doch nicht Java Basics - Anfänger-Themen 9
J Datenbankverbindung klappt doch nicht? IBM DB2 Java Basics - Anfänger-Themen 2
G Simpel, doch ich komm net drauf. Java Basics - Anfänger-Themen 13
data89 In Java ein eigenes Lexikon erstellen? Doch wie? Java Basics - Anfänger-Themen 5
G Frame Applet oder doch was anderes Java Basics - Anfänger-Themen 2
B Generics, oder doch nicht? Java Basics - Anfänger-Themen 7
H int nicht größer als 10, ist doch 32 bit,was da los? Java Basics - Anfänger-Themen 7
E Ich will doch nur einen Hintergrund! Java Basics - Anfänger-Themen 8
G Listen, über Listen. und doch kein Überblick Java Basics - Anfänger-Themen 8
N Set + Iterator oder doch nur zu blöd API zu lesen Java Basics - Anfänger-Themen 32
S Java Compiler? oder doch der Code? Java Basics - Anfänger-Themen 6
G Falsche Java befehle, doch was ist falsch? Java Basics - Anfänger-Themen 9
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
C Absolute Cursor Position oder doch relative? Java Basics - Anfänger-Themen 4
B String <> long --- Das ist doch nicht inkonvertibel? Java Basics - Anfänger-Themen 4
B Compiler Fehler "{" expected, kann doch nich sein? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben