• 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/

  • 相关阅读:
    elementUI .native修饰符
    JS密码强度检测
    HighChart中的tooltip的第一行数字明显比其他的字要小
    HighChart 不同颜色(柱状图)
    .NET(C#、VB)APP开发——Smobiler平台控件介绍:SliderView控件
    .NET(C#、VB)APP开发——Smobiler平台控件介绍:SignatureButton控件
    .NET(WinCE、WM)转Android开发——Xamarin和Smobiler对比
    MobileForm控件的使用方式-用.NET(C#)开发APP的学习日志
    你用.NET开发APP时,在云平台打包APP要填个“包名”的含义
    基于.NET的APP开发和Windows开发,异步回调差别
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/12159936.html
Copyright © 2020-2023  润新知