Łączenie z bazą ORACLE przez plugin

0

Witam. Utworzyłem sobie Plug-in Project w Eclipsie i chciałem zrobić plugin, który będzie obsługiwał tabele z bazy danych. Problemem jest to, że podczas uruchomienia pluginu jako Eclipse Application po naciśnięciu utworzonego przeze mnie pluginu wywala błąd i nie chcę się połączyć z bazą. Wrzucę kod.

Klasa SQLSupport - tu mam połączenie z bazą danych

package pluginjava;

import java.sql.Connection;

public class SQLSupport {

	private static String DBURL;
	private static String DBUSER;
	private static String DBPASS;
	private static String DBDRIVER;
	
	private Connection connection;
	
	public SQLSupport() {
		DBURL = "jdbc:oracle:thin:@localhost:1521:XE";
		DBUSER = "system";
		DBPASS = "12345";
		DBDRIVER = "oracle.jdbc.driver.OracleDriver";
	}
	
	public boolean connectionDB() throws ClassNotFoundException, SQLException
	{
		System.out.println("Testowanie połączenia z Oracle JDBC");
		
		try {
			Class.forName(DBDRIVER);
			
		} catch (ClassNotFoundException e) {
			System.out.println("Gdzie jest sterownik Oracle JDBC?");
			e.printStackTrace();
		}
		
		System.out.println("Sterownik Oracle JDBC zarejestrowany!");
		
		connection = null;

		try {
			connection = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		} catch (SQLException e) {
			System.out.println("Błąd połączenia.");
			e.printStackTrace();
		}
		
		if (connection != null) {
			System.out.println("Połączono z bazą!");
			return true;
		} else {
			System.out.println("Nie udało się wykonac połączenia!");
			return false;
		}		
	}
}

Tu jest klasa, która uruchamia program po naciśnięciu pluginu - na zwykłym wyświetleniu HelloWorld za pomocą dialogu normalnie trybi, ja tylko tu wstawiłem połączenie z bazą na tej samej zasadzie

package pluginjava.actions;

import java.sql.SQLException;

/**
 * Our sample action implements workbench action delegate.
 * The action proxy will be created by the workbench and
 * shown in the UI. When the user tries to use the action,
 * this delegate will be created and execution will be 
 * delegated to it.
 * @see IWorkbenchWindowActionDelegate
 */
public class SampleAction implements IWorkbenchWindowActionDelegate {
	private IWorkbenchWindow window;
	/**
	 * The constructor.
	 */
	public SampleAction() {
	}

	/**
	 * The action has been activated. The argument of the
	 * method represents the 'real' action sitting
	 * in the workbench UI.
	 * @see IWorkbenchWindowActionDelegate#run
	 */
	public void run(IAction action) {
		SQLSupport datebase = new SQLSupport();
		
		
		try {
			if(datebase.connectionDB()) {
				MessageDialog.openInformation(
						window.getShell(),
						"Pluginjava",
						"Połączono z bazą");
			} else
				MessageDialog.openInformation(
						window.getShell(),
						"Pluginjava",
						"Nie połączono z bazą");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	/**
	 * Selection in the workbench has been changed. We 
	 * can change the state of the 'real' action here
	 * if we want, but this can only happen after 
	 * the delegate has been created.
	 * @see IWorkbenchWindowActionDelegate#selectionChanged
	 */
	public void selectionChanged(IAction action, ISelection selection) {
	}

	/**
	 * We can use this method to dispose of any system
	 * resources we previously allocated.
	 * @see IWorkbenchWindowActionDelegate#dispose
	 */
	public void dispose() {
	}

	/**
	 * We will cache window object in order to
	 * be able to provide parent shell for the message dialog.
	 * @see IWorkbenchWindowActionDelegate#init
	 */
	public void init(IWorkbenchWindow window) {
		this.window = window;
	}
}

Plik ojdbc6.jar mam wgrany.
Po uruchomieniu pluginu wywala mi coś takiego i nie mogę za cholerę dojść dlaczego :)

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver cannot be found by pluginjava_1.0.0.qualifier

java.sql.SQLException: No suitable driver found for jdbcthin:@localhostXE

Domyślam się, że po uruchomieniu pluginu za pomocą Eclipse Application nadal mi gdzieś brakuję tego sterownika, tylko pytanie gdzie go trzeba umieścić?

0

Co to niby znaczy Plik ojdbc6.jar mam wgrany.? Musisz go mieć w classpath uruchamianej aplikacji.

0

Mam wgrany w prawym na projekt->Properties->Java Build Path->Libraries..

chyba, że to gdzie indzie?

Zaznaczam, że na zwykłym projekcie normalnie mi się łączy z bazą :) , ale muszę zrobić to na pluginie, bo taki mam projekt :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1