JDBC ClassNotFoundException

  • Antworten:0
Alexander R.
  • Forum-Beiträge: 1.148

27.02.2013, 23:03:26 via Website

Hallo,
ich versuche derzeit auf eine MySQL Datenbank über den JDBC Driver zuzugreifen,
Jedoch bekomme ich jedesmal eine ClassNotFoundException.
Außerdem bekomme ich in Zeile 67 eine NullPointerException.

Hoffe ihr könnt mir helfen

1package com.example;
2
3import java.sql.Connection;
4import java.sql.DriverManager;
5import java.sql.ResultSet;
6import java.sql.ResultSetMetaData;
7import java.sql.SQLException;
8import java.sql.Statement;
9
10import android.os.Bundle;
11import android.app.Activity;
12import android.view.Menu;
13import android.widget.TextView;
14
15public class MainActivity extends Activity {
16
17 private static final String url = "jdbc:mysql://<adresse>.de:3306/<dbname>";
18 private static final String user = "<username>";
19 private static final String pass = "<password>";
20 private static final String table = "<tabellenname>";
21 private static final String query = "SELECT * FROM " + table;
22 private Connection con;
23 private Statement st;
24 private ResultSet rs;
25 private ResultSetMetaData rsmd;
26
27 @Override
28 protected void onCreate(Bundle savedInstanceState) {
29 super.onCreate(savedInstanceState);
30 setContentView(R.layout.activity_main);
31 testDB();
32 }
33
34 public void testDB() {
35 TextView tv = (TextView)this.findViewById(R.id.textview);
36 tv.setText("About to try instantiating driver\n");
37 try {
38 Class.forName("com.mysql.jdbc.Driver").newInstance();
39
40 try {
41 con = DriverManager.getConnection(url, user, pass);
42 } catch (SQLException e) {
43 tv.setText("SQLException1\n");
44 // TODO Auto-generated catch block
45 e.printStackTrace();
46 }
47
48 tv.setText("Driver instantiated\n");
49 } catch (ClassNotFoundException e) {
50 // TODO Auto-generated catch block
51 tv.setText("Class com.mysql.jdbc.Driver not found!\n");
52 e.printStackTrace();
53 } catch (IllegalAccessException e) {
54 tv.setText("IllegalAccessException\n");
55 // TODO Auto-generated catch block
56 e.printStackTrace();
57 } catch (InstantiationException e) {
58 tv.setText("InstantiationException\n");
59 // TODO Auto-generated catch block
60 e.printStackTrace();
61 }
62
63 /* System.out.println("Database connection success"); */
64
65 String result = "Database connection success\n";
66 try {
67 st = con.createStatement();
68 } catch (SQLException e) {
69 tv.setText("SQLException2\n");
70 // TODO Auto-generated catch block
71 e.printStackTrace();
72 }
73 try {
74 rs = st.executeQuery(query);
75 } catch (SQLException e) {
76 tv.setText("SQLException3\n");
77 // TODO Auto-generated catch block
78 e.printStackTrace();
79 }
80 try {
81 rsmd = rs.getMetaData();
82 } catch (SQLException e) {
83 tv.setText("SQLException4\n");
84 // TODO Auto-generated catch block
85 e.printStackTrace();
86 }
87
88 try {
89 while(rs.next()) {
90 result += rsmd.getColumnName(1) + ": " + rs.getInt(1) + "\n";
91 result += rsmd.getColumnName(2) + ": " + rs.getInt(2) + "\n";
92 result += rsmd.getColumnName(3) + ": " + rs.getInt(3) + "\n";
93 }
94 } catch (SQLException e) {
95 tv.setText("SQLException5\n");
96 // TODO Auto-generated catch block
97 e.printStackTrace();
98 }
99 tv.setText(result);
100 /*catch(Exception e) {
101 e.printStackTrace();
102 tv.setText(e.toString());
103 }*/
104 }
105
106 @Override
107 public boolean onCreateOptionsMenu(Menu menu) {
108 // Inflate the menu; this adds items to the action bar if it is present.
109 getMenuInflater().inflate(R.menu.activity_main, menu);
110 return true;
111 }
112
113}

Gruß Alexander

Antworten