Hallo,
Ich hab ein Problem beim Treiberladen wenn ich das Projekt in Jar exportiere. Unexportiert funktioniert aber noch alles. Ich brauche umbedingt eine schnelle lösung
Fehlermeldung ist: (siehe Anhang)
ich bedanke mich bei euch schon im Vorraus
Ich hab ein Problem beim Treiberladen wenn ich das Projekt in Jar exportiere. Unexportiert funktioniert aber noch alles. Ich brauche umbedingt eine schnelle lösung
Java:
package Database;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.sql.Array;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import org.hsqldb.*;
import javax.swing.table.TableModel;
import org.hsqldb.jdbc.JDBCDriver;
import MusikplayerPack.Interface;
/**
* Verwaltung der Datenbank
* @author Namamiri (Burak Yarali)
*
*/
@SuppressWarnings({ "rawtypes", "unused" })
public class CreateDatabase
{
public CreateDatabase()
{
try{
Class.forName("org.hsqldb.JDBCDriver");
} catch (Exception e)
{System.out.println("ERROR: failed to load HSQLDB JDBC driver.");
e.printStackTrace();
return;
}
Connection con = null;
try
{
con = DriverManager.getConnection(
"jdbc:hsqldb:file:Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
}
catch ( SQLException e )
{
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
}
/**
* @return Es wird ein ArrayList zurueckgegeben für das Spiel
*
*/
private static ArrayList getMusiktitelSpiel()
{
Connection con = null;
try {
con = DriverManager.getConnection(//verbinden mit der Datenbank
"jdbc:hsqldb:file:Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
String sql = "SELECT * FROM Musiktitelliste Where SPIELJANEIN=true"; //Abfrage zum laden der fuer Spiel zugelassener Musik
ResultSet RSW = stmt.executeQuery(sql);
return extract(RSW); //Umwandlung in eine Arraylist
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
return null;
}
/**
* @return Es wird wieder eine Arraylist zurueckgegeben vonder Ganzen Datenbank-->Musiktitelliste
*/
private static ArrayList getMusiktitel()
{
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:hsqldb:file:Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
String sql = "SELECT * FROM Musiktitelliste"; //Abfrage alles laden ohne Where
ResultSet RSW = stmt.executeQuery(sql);
return extract(RSW);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
return null;
}
/**
* @param ID Hier wird die Bedingung gegeben als int
* @return es werden nur die Musiktitel zuruekgegeben welche diese ID haben
*/
private static ArrayList getMusiktitel(int ID)
{
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:hsqldb:file:Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
String sql = "SELECT * FROM Musiktitelliste Where ID = "+ ID; //Abfrage alles laden ohne Where
ResultSet RSW = stmt.executeQuery(sql);
return extract(RSW);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
return null;
}
/**
* @param Where Hier nur Where geben wenn eine Bedingung vorhanden
* @param Aktiv Hier soll nur gegeben werden wenn Where in Where steht; Pfuefen ob aktiv gechecked
* @param ID Hier soll nur gegeben werden wenn Where in Where steht; Pfuefen ob aktiv
* @return Arraylist von den Je nach Parameter aktiv oder inaktiv gesetzten Musiktitel mit der richtigen ID
*/
private static ArrayList getMusiktitel(String Where,String Aktiv,String ID)
{
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:hsqldb:file:Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
String sql = "SELECT * FROM Musiktitelliste" +Where+ Aktiv + ID;// hier ist die selbe methode mit mehr Variabilit舩
ResultSet RSW = stmt.executeQuery(sql);
return extract(RSW);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
return null;
}
private static ArrayList getMusiktitel(String Where,String Aktiv,String ID,String Order)
{
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:hsqldb:file:Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
String sql = "SELECT * FROM Musiktitelliste" +Where+ Aktiv + ID+" "+Order;// hier ist die selbe methode mit mehr Variabilit舩
ResultSet RSW = stmt.executeQuery(sql);
if (RSW != null)
{
return extract(RSW);
}
else
{
String sql1 = "SELECT * FROM Musiktitelliste Where Aktiv = true and ID =1";// hier ist die selbe methode mit mehr Variabilit舩
ResultSet RSW1 = stmt.executeQuery(sql);
return extract(RSW1);
}
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
return null;
}
/**
* Sucht die Bestimmte Reihe in der Datenbank
* @param ID Angabe der gesuch ID
* @return Gib die Arrayliste zu der Passenden ID Nummer
*/
private static ArrayList getWiedergabeliste(int ID)
{
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:hsqldb:file:Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
String sql = "SELECT * FROM WIEDERGABELISTEN";
ResultSet RSW = stmt.executeQuery(sql + " Where ID ="+ID ); // Abfrage nach der ID
return extract(RSW);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
return null;
}
/**
* Diese Methode ist als private deklariert und gibt anderen Methoden die ganze Datenbank zurueck
* @return gibt als Arrayliste die ganze Datenbank zurück
*/
private static ArrayList getWiedergabeliste()
{
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:hsqldb:file:hello_lib/Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
String sql = "SELECT * FROM WIEDERGABELISTEN";//Abfrage ohne Where Bedingung
ResultSet RSW = stmt.executeQuery(sql);
return extract(RSW);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
return null;
}
/**
* @author The Gooter ([url=http://www.coderanch.com/t/460815/JDBC/java/Making-arraylist-resultset]Making arraylist from resultset (JDBC forum at JavaRanch)[/url] )
* Resultset koennen nicht einfach verarbeitet werden deshalb werden diese hier zur Arraylist umgewandelt
* @param resultSet Hier wird von alle antworten von den Datenbanken eingeladen
* @return aus den Resultsets wird eine Arraylist als return generiert
* @throws SQLException
*/
private static ArrayList<ArrayList<String>> extract(ResultSet resultSet)
throws SQLException {
ArrayList<ArrayList<String>> table;
int columnCount = resultSet.getMetaData().getColumnCount();
if(resultSet.getType() == ResultSet.TYPE_FORWARD_ONLY)
table = new ArrayList<ArrayList<String>>();
else {
resultSet.last();
table = new ArrayList<ArrayList<String>>(resultSet.getRow());
resultSet.beforeFirst();
}
for(ArrayList<String> row; resultSet.next(); table.add(row)) {
row = new ArrayList<String>(columnCount);
for(int c = 1; c <= columnCount; ++ c)
row.add(resultSet.getString(c).intern());
}
return table;
}
/**
* fuer die Spiele oder andere anwendungen
* @param SPIELJANEIN angeben um bei False für normale anwendungen die Tabelle zu verlangen und bei true fuer das spiel
* @return returnt ein String[][] an die anderen Methoden Groeße [variable][10]
*/
public static String[][] getStringsMusiktite(Boolean SPIELJANEIN)
{
ArrayList blu = null; //Die Arrayliste wird hier in eine String[][] umgewandelt
if (SPIELJANEIN==false) // um es sp舩er besser zu nutzen
{ //Abfrage zum Klaeren ob es Fuer spiel oder Tabelle ist
blu = getMusiktitel();
}
else
{
blu =getMusiktitelSpiel();
}
String Strings="";
String Indexs="";
String URLS="";
String Titel="";
String Names="";
String Album="";
String Interpret="";
String Jahr="";
String SpielJaNein="";
String Aktiv="";
String IDWIEDER="";
String Datei="";
String[][] StringArray= new String[blu.size()][11];
int zwischen= 0;
int anfang=0;
boolean AKTIV=false;
ArrayList blu2= new ArrayList();
int leange=0;
for (int x = 0; x<blu.size();x++)
{ anfang=0;
blu2= (ArrayList) blu.get(x);
Strings = blu2.toString();
leange = Strings.length();
Strings = Strings.substring(1, leange - 1);
Indexs= Strings.substring(anfang, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
Album=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
Interpret=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
Jahr=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
Names=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
SpielJaNein=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
URLS=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
Aktiv=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
IDWIEDER=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
Titel=Strings.substring(anfang+1, Strings.length() );
//anfang=Strings.indexOf(",", anfang)+1;
//Datei=Strings.substring(anfang+1, Strings.length() );
Integer Size =blu.size();
StringArray[0][0]= Size.toString();
StringArray[x][1]=Indexs;
StringArray[x][2]=Titel;
StringArray[x][3]=Album;
StringArray[x][4]=Interpret;
StringArray[x][5]=Jahr;
StringArray[x][6]=Names;
StringArray[x][7]=SpielJaNein;
StringArray[x][8]=URLS;
StringArray[x][9]=Aktiv;
StringArray[x][10]=IDWIEDER;
}
return StringArray;
}
* @param IDWiedergabeliste
* @return
*/
private static ArrayList getMusiktitel (String IDWiedergabeliste)
{ //Hier werden die Musiktitel nach der Wiedergabeliste gesucht
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:hsqldb:file:Musikdatenbank/hsql; shutdown=true", "root", "" );
Statement stmt = con.createStatement();
String sql = "SELECT * FROM Musiktitelliste Where IDWIEDERGABELISTE = "+IDWiedergabeliste;
ResultSet RSW = stmt.executeQuery(sql);
return extract(RSW);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if ( con != null )
{
try {
con.close();
} catch ( SQLException e ) {
e.printStackTrace();
}
}
}
return null;
}
/**
* @param b
* @return
*/
private static String[][] getStringsoutofArraylistwieder(ArrayList b){
ArrayList blu = b; //Hier wird eine bestimmt Arraylist
String Strings=""; //in String[][] umgewandelt ohne
String Indexs=""; // eine andere Methode aufzurufen
String URLS=""; // Da Daten per Parameter uebergeben werden
String AKTStrin="";
String Names="";
String[][] StringArray= new String[blu.size()][5];
int zwischen= 0;
int anfang=0;
boolean AKTIV=false;
ArrayList blu2= new ArrayList();
int leange=0;
for (int x = 0; x<blu.size();x++)
{ anfang=0;
blu2= (ArrayList) blu.get(x);
Strings = blu2.toString();
leange = Strings.length();
Strings = Strings.substring(1, leange - 1);
Indexs= Strings.substring(anfang, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
Names=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
URLS=Strings.substring(anfang+1, Strings.indexOf(",", anfang) );
anfang=Strings.indexOf(",", anfang)+1;
AKTStrin=Strings.substring(anfang+1, Strings.length() );
StringArray[x][1]=Indexs;
StringArray[x][2]=Names;
StringArray[x][3]=URLS;
StringArray[x][4]=AKTStrin;
}
zwischen= blu.size();
if (blu.size()>0){
StringArray[0][0]= String.valueOf(zwischen);
}
return StringArray;
}
}
Fehlermeldung ist: (siehe Anhang)
ich bedanke mich bei euch schon im Vorraus
Anhänge
Zuletzt bearbeitet von einem Moderator: