Conectar banco access no linux

7 respostas
N

Pois é pessoal, ja estou faz algum tempo tentando e queria saber se tem como, a versão do linux é o Fedora 5.0

cheguei até a gerar o jar, no windows funcionou blza, mas no linux ele da erro de nullPointerException

eis ai o código:

package threadJDBC;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;



//nesta classe farei uma consulta ao banco mysql
//para testes sera main, porem para a thread só 
//sera uma classe

public class hjdbcaccess {

	
	//nome do driver JDBC e URL do banco de dados(parametrizaveis)
	static final String JDBC_DRIVER  = "sun.jdbc.odbc.JdbcOdbcDriver";
	static final String DATABASE_URL = "jdbc:odbc:Driver=" + "{Microsoft Access Driver (*.mdb)};" +  "DBQ=012005.mdb";
	

	public static void main( String args[]){
		Connection con       = null; 
		Statement  statement = null; 
		
		try{

			Class.forName(JDBC_DRIVER);
			con = DriverManager.getConnection(DATABASE_URL,"admin","kamisama2");
			statement = con.createStatement();
			
			ResultSet resultSet = statement.executeQuery
			("SELECT * FROM tblVersão");
			
			ResultSetMetaData  metaData = resultSet.getMetaData();
			int numerocolunas = metaData.getColumnCount();
			System.out.println("Tabela de Contribuintes do Banco de Dados 012005:");
			
			for(int i = 1; i <= numerocolunas; i++)
				System.out.print(metaData.getColumnName(i));
				System.out.println();
				
				while(resultSet.next())
				{
					for (int i = 1; i <= numerocolunas; i++)
						System.out.print(resultSet.getObject(i));
						System.out.println();
				}
			
		}
		
		catch(SQLException sqlException) {
			sqlException.printStackTrace();
			System.exit(1);
		}//fim do 1° catch
		
		catch(ClassNotFoundException classNotFound) {
			classNotFound.printStackTrace();
			System.exit(1);
		}//fim do 2° catch
		finally{
			try{
				statement.close();
				con.close();
			}
			catch(Exception exception){
				exception.printStackTrace();
				System.exit(1);
			}
		}
	}
}

desde ja agradeço pela atenção.

7 Respostas

BrunoBastosPJ

você ta usando java 6 no linux, no teu projeto?

N

nem, estou usando o jdk1.5_09

BrunoBastosPJ

Se eu não me engano o JavaDB só foi implementado a partir do java 6… Não tenho certeza absoluta se esse é o seu problema, mas qual a versão do java no windows?

N

no windows é a 1.5.0, mas instalei o update da jre 1.5.0_11
no linux é a 1.5.0_09

bruno queria saber se o funcionamento da ponte jdbc:odbc, funciona tanto em windows qto em linux(para “bancos” access). em caso negativo, queria saber uma forma viavel de conseguir fazer a conexão no linux, alem de que pelo que li da ponte jdbc:odbc, é que vc precisa ter um odbc instalado no sistema operancional para que funcione…

tentei fazer a instalação do unixODBC, porem tive algumas dificuldades e acabei não conseguindo…

enfim qquer sugestão é valida!!

J

As classes dos pacotes sun.* não são classes puro Java, não fazem parte da API padrão da linguagem, e portanto não são portaveis, sendo assim, o driver JdbcOdbc não vai funcionar no linux…

http://java.sun.com/products/jdk/faq/faq-sun-packages.html

Recomendação: use um banco de dados decente.

N

humm existe algum outro driver jdbc do tipo 3 ou 4 que permita que eu execute tal conexão?

ps: hehe se fosse eu quem estivesse implementando o banco de dados, com certeza usaria, porem sou um humilde prestador de serviços.

J

http://forum.java.sun.com/thread.jspa?threadID=585287&messageID=3007570

Criado 7 de março de 2007
Ultima resposta 7 de mar. de 2007
Respostas 7
Participantes 3