Driver MSAccess

3 respostas
F

Pessoal, infelizmente tenho que trabalhar com um .mdb, mas preciso de um driver free para conectar ao access, alguem pode me indicar algum? todos que estou vendo ou são trial

3 Respostas

jonatanpedro

Da uma lida sobre JDBCODBC

Abraço

D

Utilizei esses dias atras essa classe aí para acessar access usei o driver que nosso amigo falou
sun.jdbc.odbc.JdbcOdbcDriver
segue a classe.... tudo pronto.....

import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;


public class UtilAccess {
	 private java.sql.Connection db = null;
	    
	    public boolean isConectado() {
	        boolean blRetorno = false;
	        
	        try{
	            blRetorno= !db.isClosed();
	        }catch(Exception Ex) {}
	        
	        return blRetorno;
	    }
	    
	    public java.sql.Connection getConnection(){
	        return db;
	    }
	    
	    public PreparedStatement CriaPreparedStatement(String sSQL) {
	        PreparedStatement stmRet = null;
	        
	        try{
	            stmRet = db.prepareStatement(sSQL);
	            stmRet.clearParameters();
	        }catch(Exception Ex) {
	            System.out.println("Erro ao criar PreparedStatement. " +Ex.getMessage());
	            stmRet = null;
	        }
	        
	        
	        return stmRet;
	    }
	    
	    public Statement CriaStatement() {
	        Statement stmRet = null;
	        
	        try{
	            stmRet = db.createStatement();
	        }catch(Exception Ex) {
	            System.out.println("Erro ao criar Statement. " +Ex.getMessage());
	            stmRet = null;
	        }
	        
	        
	        return stmRet;
	    }
	    
	    public void ExecutaSemRs(String sSQL) {
	        Statement stmRet = CriaStatement();
	        
	        if(stmRet == null) return;
	        
	        try {
	            stmRet.execute(sSQL);
	        }catch(Exception Ex) {
	            System.out.println("Erro ao executar SQL.  - " + sSQL+Ex.getMessage());
	        }
	        
	        try{
	            stmRet.close();
	        }catch(Exception Ex2){}
	        
	        stmRet = null;
	    }
	    
	    public ResultSet ExecutaParametros(String sSQL, java.util.Vector vetParametros, boolean blComRS) {
	        Object oParamentros[] = new Object[vetParametros.size()];
	        
	        for(int i=0;i<vetParametros.size();i++)
	            oParamentros[i] = vetParametros.get(i);
	        
	        
	        return ExecutaParametros(sSQL,oParamentros, blComRS);
	        
	    }
	    
	    public ResultSet ExecutaParametros(String sSQL, Object[] Parametros, boolean blComRS) {
	        PreparedStatement prepState = null ;
	        ResultSet rs = null;
	        
	        if( (prepState = CriaPreparedStatement(sSQL)) == null) {
	            System.out.println("Erro ao receber PreparedStatement");
	            return null;
	        }
	        
	        
	        
	        for(int i=0;i< Parametros.length;i++) {
	            try{
	                if( Parametros[i] == null)
	                    prepState.setObject((i+1),null);
	                else {
	                    if(Parametros[i] instanceof Date ) {
	                        prepState.setDate( (i+1), Date.valueOf(Parametros[i].toString()) );
	                    }else if(Parametros[i] instanceof Double ){
	                        prepState.setDouble((i+1), Double.parseDouble(Parametros[i].toString()));
	                    }else if(Parametros[i] instanceof Float ){
	                        prepState.setFloat((i+1), Float.parseFloat(Parametros[i].toString()));
	                    }else if(Parametros[i] instanceof Integer ){
	                        prepState.setInt((i+1), Integer.parseInt(Parametros[i].toString()));
	                    }else if(Parametros[i] instanceof Long ){
	                        prepState.setLong((i+1), Long.parseLong(Parametros[i].toString()));
	                    }else if(Parametros[i] instanceof Object ){
	                        prepState.setObject((i+1), Parametros[i] );
	                    }else if(Parametros[i] instanceof Short ){
	                        prepState.setShort((i+1), Short.parseShort(Parametros[i].toString()));
	                    }else if(Parametros[i] instanceof String ){
	                        prepState.setString((i+1), Parametros[i].toString() );
	                    }else if(Parametros[i] instanceof Time ){
	                        prepState.setTime((i+1), Time.valueOf(Parametros[i].toString()) );
	                    }else if(Parametros[i] instanceof Timestamp ){
	                        prepState.setTimestamp((i+1), Timestamp.valueOf(Parametros[i].toString()) );
	                    }else if(Parametros[i] instanceof Boolean ){
	                        prepState.setBoolean((i+1), Boolean.valueOf(Parametros[i].toString()) );
	                    }
	                }
	            }catch(SQLException Ex) {
	                System.out.println("prepareStatement erro de conversão no parametro " + i + ": " +Ex.getMessage());
	            }
	        }
	        
	        try{
	            if(blComRS)
	                rs = prepState.executeQuery();
	            else
	                prepState.executeUpdate();
	            
	        }catch(Exception Ex1){
	            System.out.println("Erro ao executar query: "+Ex1.getMessage());
	        }
	        
	        return rs;
	    }
	    
	    public ResultSet Executa(String sSQL) {
	        ResultSet rs = null;
	        Statement stmRet = CriaStatement();
	        
	        if(stmRet == null) return null;
	        
	        try {
	            rs = stmRet.executeQuery(sSQL);
	        }catch(Exception Ex) {
	            System.out.println("Erro ao executar SQL.  - " + sSQL+Ex.getMessage());
	        }
	        
	        return rs;
	    }
	    
	    
	    public void FechaConexao(){
	        try{
	            db.close();
	            db = null;
	        }catch(Exception exp) {//
	        }
	    }
	    
	    
	    public void AbreConexao(String sURL) throws Exception{
	        try{
	            AbreConexao("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/IMD/"+sURL,"","");
	        }catch(Exception ex){
	            System.out.println("Erro ao ler os dados do arquivo de configuração - "+ex.getMessage());
	            throw new Exception("Erro ao ler os dados do arquivo de configuração - " + ex.getMessage().toString());
	        }
	        
	    }
	    
	    public void AbreConexao(String sDriver,String sURL,String sUsuario,String sSenha) throws Exception{
	        
	        try{
	            Class.forName(sDriver);
	            db = DriverManager.getConnection(sURL,
	                    sUsuario, sSenha);
	            
	        }catch(Exception ex){
	            System.out.println("Erro na conexão com o banco de dados - " +ex.getMessage());
	            System.out.println("Erro na conexão com o banco de dados - "+ ex.getMessage());
	            throw new Exception("Erro na conexão com o banco de dados - " +ex.toString());
	            
	        }
	    }
	    public int UltimoID(String nomeDaTabelaDoDB,String nomeDoCampodoDB){
	        int cod=0;
	        String sSQL="select max(" + nomeDoCampodoDB + ") as mID from " + nomeDaTabelaDoDB;
	        ResultSet rs=Executa(sSQL);
	        try{
	            rs.next();
	            cod= rs.getInt("MID");
	            rs.close();
	        }catch(Exception ex){System.out.println("Erro ao pegar ultimoID"+ex.getMessage());}
	        return cod;
	    }
	    
	    
	    
}

Valew..pelo toque...

rodrigoallemand
DuJava:
segue a classe.... tudo pronto.....

Tente editar o seu post e colocar as tags [code] para ajudar a visualização!!!

Criado 9 de novembro de 2007
Ultima resposta 9 de nov. de 2007
Respostas 3
Participantes 4