Access MDB文件解析查詢,Access數據庫解析工具類MdbUtils


================================

©Copyright 蕃薯耀 2020-01-07

https://www.cnblogs.com/fanshuyao/

 

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;

public class MdbUtils {

    private final static String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
    private final static String JDBC_URL = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=";
    
    /**
     * 查詢mdb文件的表數據
     * @param absoluteFilePath mdb文件絕對路徑
     * @param sql 查詢的sql語句
     * @return
     */
    public static List<Map<String, Object>> read(String absoluteFilePath, String sql){
        
        List<Map<String, Object>> listMap = new ArrayList<Map<String,Object>>();
        Properties prop = new Properties();
        prop.put("charset", "utf-8");//解決中文亂碼?沒有也行(GB2312/GBK)
        //prop.put("user", "");
        //prop.put("password", "");
        
        String url = JDBC_URL + absoluteFilePath;
        //PreparedStatement preparedStatement = null;
        Statement statement = null;
        ResultSet resultSet = null;
        Connection connection = null;
        try{
            Class.forName(JDBC_DRIVER);
            connection = DriverManager.getConnection(url, prop);
            statement = connection.createStatement();
            resultSet = statement.executeQuery(sql);
            ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
            
            while(resultSet.next()){
                Map<String, Object> map = new HashMap<String, Object>();
                for(int i=1; i<= resultSetMetaData.getColumnCount(); i++){
                    String columnName = resultSetMetaData.getColumnName(i);//列名
                    Object columnValue = resultSet.getObject(i);
                    map.put(columnName, columnValue);
                }
                listMap.add(map);
            }
        }catch (Exception e) {
            e.printStackTrace();
        }finally{
            try {
                if(statement != null){
                    statement.close();
                }
                if(connection != null){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return listMap;
    }
    
    public static void main(String[] args) {
        String sql = "select * from cu_proj_zxgh_land";
        //List<Map<String, Object>> listMap = read("C:/db/test.mdb", sql);
        List<Map<String, Object>> listMap = read("C:/db/02-地塊划分與指標控制圖.mdb", sql);
        if(listMap != null && listMap.size() > 0){
            System.out.println("=====listMap.size()="+listMap.size());
            for (Map<String, Object> map : listMap) {
                System.out.println(map.toString());
                System.out.println("");
            }
        }
    }
    
    
}

 

 

(如果你覺得文章對你有幫助,歡迎捐贈,^_^,謝謝!) 

 

================================

©Copyright 蕃薯耀 2020-01-07

https://www.cnblogs.com/fanshuyao/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM