`
liggway
  • 浏览: 6983 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

操作access

阅读更多
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MsAccessDBUtils {
    private static MsAccessDBUtils instance = null;
    public static MsAccessDBUtils getInstance() {
        if (instance == null) {
            instance = new MsAccessDBUtils();
        }
        return instance;
    }

    private MsAccessDBUtils() {}

    //最先被调用 mdbFile=d:\xxx.mdb
    public void loadConfig(String mdbFile,String user,String psw) throws Exception{
        mdb_file = mdbFile;
        user = user;
        pwd = psw;
        loadDriver();
    }
    
    public void loadConfig(String mdbFile) throws Exception{
        mdb_file = mdbFile;
        loadDriver();
    }
    private static String dirverClass = "sun.jdbc.odbc.JdbcOdbcDriver";
    private static String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=";
    private static String mdb_file = null;//access 文件[这里要绝对路径]
    private static String user = "";
    private static String pwd = "";
    private static Connection conn;
    private static Statement stmt;
    private static ResultSet rs;

    private void loadDriver() throws Exception{
        try {
            Class.forName(dirverClass);
        } catch (Exception e) {
            throw e;
        }
    }

    //创建不可滚动的连接
    public static void connect() throws Exception{
        try {
            System.out.println(url+mdb_file);
            System.out.println(user);
            System.out.println(pwd);
            conn = DriverManager.getConnection(url+mdb_file, user, pwd);
            stmt = conn.createStatement();
        } catch (Exception e) {
            throw e;
        }
    }
    public static void connect(boolean autocommit) throws Exception{
        try {
            conn = DriverManager.getConnection(url+mdb_file, user, pwd);
            conn.setAutoCommit(autocommit);
            stmt = conn.createStatement();
        } catch (Exception e) {
            throw e;
        }
    }
    //创建可以滚动的连接
    public static void connect2() throws Exception{
        try {
            conn = DriverManager.getConnection(url+mdb_file, user, pwd);
            stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                        ResultSet.CONCUR_READ_ONLY);
        } catch (Exception e) {
            throw e;
        }
    }

    //关闭连接
    public static void close() throws Exception{
        try {
            if (rs != null) {
                rs.close();
                rs=null;
            }
            if (stmt != null) {
                stmt.close();
                stmt=null;
            }
            if (conn != null) {
                conn.close();
                conn=null;
            }
        } catch (Exception e) {
            throw e;
        }
    }

    //查询语句
    public static List executeQuery(String sql) throws Exception{
        List l = new ArrayList();
        try {
            if (stmt == null) {
                connect();
            }
            rs = stmt.executeQuery(sql);
            l = orgResultSet4List(rs);
            //close();
        } catch (Exception e) {
            throw e;
        }
        return l;
    }

    public static int executeUpdate(String sql) throws Exception{
        try {
            if (stmt == null) {
                connect();
            }
            int res = stmt.executeUpdate(sql);
            //close();
            return res;
        } catch (Exception e) {
            throw e;
        }
    }
    public static int[] executeUpdate(String[] sql)  throws Exception{
        try {
            if (stmt == null) {
                connect(false);
            }
            for (int i = 0; i < sql.length; i++) {
                stmt.addBatch(sql[i]);
            }
            int[] res = stmt.executeBatch();
            conn.commit();
            //close();
            return res;
        } catch (Exception e) {
            throw e;
        }
    }
    private static List orgResultSet4List(ResultSet rs)throws Exception{
        try {
            ResultSetMetaData rsmd = rs.getMetaData();
            int cols = rsmd.getColumnCount();
            List l = new ArrayList();
            Map recordMap = null;
            while (rs.next()) {
                recordMap = new HashMap();
                for (int i = 0; i < cols; i++) {
                    recordMap.put((String)(rsmd.getColumnName(i+1)).toLowerCase(),rs.getObject(i+1));
                }
                l.add(recordMap);
            }
            return l;
        }
        catch (Exception ex) {
            //ex.printStackTrace();
            throw ex;
        }
    }

    public static void main(String[] args) {
        

        
    }
}
分享到:
评论

相关推荐

    C++操作Access数据库(ADO)VS2010 MFC

    在本文中,我们将深入探讨如何使用C++的MFC(Microsoft Foundation Classes)框架与ADO(ActiveX Data Objects)在Visual Studio 2010中操作Access数据库。这是一篇适合初学者的技术指南,旨在帮助你了解如何通过...

    非常实用c#操作Access数据库的例子(application)

    本文介绍C#访问操作Access数据库的基础知识,并提供一个相关的例程。 1.通过ADO.NET的OleDb相关类来操作Access 主要知识点如下: using System.Data.OleDb; using System.Data; 连接字符串:String connectionString...

    vb.net操作access数据库实例

    在VB.NET编程环境中,操作Access数据库是一项常见的任务,特别是在开发小型到中型企业级应用程序时。以下是一些关于如何使用VB.NET与Access数据库交互的关键知识点: 1. **ADO.NET**: ADO.NET是.NET Framework的一...

    简单的asp操作access例子源码

    本例中的“简单的asp操作access例子源码”是一个针对初学者的教程,通过具体的代码实例,展示了如何使用ASP与Access数据库进行交互,完成数据的增、删、改、查(CRUD)操作。 在ASP中,我们通常使用ADO(ActiveX ...

    VSTO版本局域网操作Access数据库系统.zip

    在这个特定的项目中,"VSTO版本局域网操作Access数据库系统.zip" 提供了一个基于VSTO的解决方案,它允许在局域网内的多用户同时操作一个Access数据库系统。 Access数据库系统是Microsoft Office套件的一部分,用于...

    asp.net 操作 access 增删改查

    在本示例中,"asp.net 操作 access 增删改查" 是一个初级教程,旨在帮助初学者理解如何使用ASP.NET进行数据库操作,特别是与Microsoft Access数据库交互进行基本的CRUD(创建Create、读取Read、更新Update、删除...

    WPF操作Access数据库源码

    描述中的"操作Access数据库源码"意味着我们要利用WPF与Access数据库进行数据交换。Access数据库是一种小型数据库管理系统,适用于个人或小团队的数据存储需求。在WPF应用中,我们通常使用ADO.NET框架来连接和操作...

    C#操作ACCESS数据库,MDB文件读写

    总的来说,C#操作Access数据库的关键步骤包括:建立连接、创建命令、执行SQL操作和处理结果。了解这些基本操作后,开发者可以根据具体需求编写更复杂的查询,实现数据的读取、插入、更新和删除功能。在实际项目中,...

    VB操作ACCESS数据库实例

    在VB(Visual Basic)编程环境中,操作ACCESS数据库是一项常见的任务,尤其对于初学者而言,这是一个很好的起点来理解和实践数据库交互。以下将详细讲解如何利用VB与ACCESS数据库进行连接、查询、插入、更新和删除等...

    java 操作 access数据库

    java 操作 access数据库,供大家一起共同分享学习。

    ADO操作Access示例

    本示例将深入探讨如何使用MFC(Microsoft Foundation Classes)和Visual C++结合ADO(ActiveX Data Objects)来操作Access数据库。ADO是微软提供的一种高效、易用的数据访问接口,它允许开发者通过OLE DB技术连接到...

    JS操作Access数据库

    要让JavaScript操作Access数据库,首先你需要一个中间件或者库来建立这种连接。一种常见的方式是使用ActiveXObject,这是Internet Explorer浏览器特有的一个对象,它可以允许JavaScript与Windows操作系统中的组件...

    C# 操作access实例

    在本文中,我们将深入探讨如何使用C#编程语言来操作Access数据库,并通过一个具体的ListView分页实例进行演示。Access数据库是Microsoft Office套件的一部分,它为小型应用提供了简单且有效的数据存储解决方案。C#,...

    excelvba操作access实例

    本实例将探讨如何使用Excel VBA操作Access数据库,实现数据的插入、修改和删除。 首先,我们需要了解基础环境。Access是一个关系型数据库管理系统,用于存储和管理结构化数据。VBA是Excel内置的编程语言,可以创建...

    MFC操作ACCESS数据库

    在本文中,我们将深入探讨如何使用MFC(Microsoft Foundation Classes)操作ACCESS数据库,这是一个常见的任务在Windows应用程序开发中。MFC是微软提供的一个C++类库,它简化了Windows API的使用,使得开发者能够更...

    Excel操作Access数据库实例

    本实例将探讨如何利用Excel操作Access数据库,从而实现更高效的数据处理和管理。 Excel是一款优秀的电子表格软件,适合处理和分析大量数据,而Access则是一个关系型数据库管理系统,适合存储、管理和查询复杂的数据...

    VB操作Access简单例子

    下面我们将详细探讨如何在VB中操作Access数据库。 首先,为了在VB中连接到Access数据库,我们需要引入ADO(ActiveX Data Objects)库。在VB工程中,点击“工具”-&gt; “引用”,然后找到并勾选"Microsoft ActiveX ...

    C#操作ACCESS数据库例程

    本例程旨在教授如何使用C#来操作ACCESS数据库,这对于初学者或希望深化数据库编程技能的开发者来说是一份宝贵的资源。 首先,要理解C#与ACCESS数据库交互的基础,我们需要引入System.Data.OleDb命名空间,它提供了...

    直接通过ADO操作ACCESS数据库

    标题 "直接通过ADO操作ACCESS数据库" 指的是在编程中使用ActiveX Data Objects (ADO) 来与Microsoft Access数据库进行交互。ADO是Microsoft提供的一个数据访问接口,它允许程序员以简单的方式处理各种数据源,包括但...

    直接通过ADO操作Access数据库(修改版)

    直接通过ADO操作Access数据库是一种常见的数据访问方式,尤其在小型应用程序和快速原型开发中非常实用。ADO(ActiveX Data Objects)是微软提供的一个组件,它允许开发者以编程方式与各种数据库进行交互,包括...

Global site tag (gtag.js) - Google Analytics