精华内容
下载资源
问答
  • Java 连接MS Access数据库的三种方式 JDBC方式 加载驱动:Class.forName("com.hxtt.sql.access.AccessDriver"); 驱动来自于access-jdbc-3.0.jar包 建立连接:String url = "jdbc:Access:///D://upload/Database1....

    Java 连接MS Access数据库的三种方式

    JDBC方式

    • 加载驱动:Class.forName("com.hxtt.sql.access.AccessDriver"); 驱动来自于access-jdbc-3.0.jar包
    • 建立连接:String url = "jdbc:Access:///D://upload/Database1.MDB"; 注意第二个冒号后面是三个左斜杠

    要点:

    1. 查询50次限制,查询结果1000条限制,插入500次限制。如果要超过此限制请参考这位博主文章:JAVA软件逆向之hxtt的Access_JDBC30.jar
    2. 此方式还有一个弊端,无法实时读取Access最新的数据。场景:此方法循环读取Access数据表数据,向Access数据表插入新的数据,JDBC方式读取的数据仍然是原来的旧数据。

    JDBC_ODBC桥接

    • 加载驱动:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 驱动来自于JDK 1.7 的rt.jar包(JDK1.8不支持)
    • 建立连接:String url = "jdbc:odbc:odbcAccess";  其中odbcAccess是在电脑本地配置的Access数据库的ODBC数据源名字

    要点:

    1. 需要给目标Access文件配置ODBC数据源
    2. 不配置Access数据源,需要将连接方式修改为: String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\\upload\Database1.mdb"

    远程连接

    • 加载驱动:Class.forName("org.objectweb.rmijdbc.Driver").newInstance(); 驱动来自于RmiJdbc.jar包
    • 建立连接:String url = "jdbc:rmi://192.168.1.112/jdbc:odbc:odbcAccess"; 其中odbcAccess是在Access数据库所在电脑配置的ODBC数据源名字

    要点:

    1. 需要在目标Access的电脑上配置ODBC数据源
    2. 目标电脑要一直运行RmiJdbc.jar文件,降低了远程连接的安全性。

    代码部分

    JDBC方式

    public void readAccess() {
    
    		Connection conn = null;
    		PreparedStatement ppstCount = null;
    		ResultSet rsCount = null;
    		try {
    			// 加载驱动,驱动来自于access-jdbc-3.0.jar包
    			Class.forName("com.hxtt.sql.access.AccessDriver");
    			// 连接数据库,注意第二个冒号后面是三个左斜杠
    			conn = DriverManager.getConnection("jdbc:Access:///D://upload/Database1.MDB");
    			String sqlCount = "select count(*) from datareport1 where 日期 >?";
    			ppstCount = conn.prepareStatement(sqlCount);
    			ppstCount.setDate(1, new FormatDataTime().strConDate("2019-08-11", "yyyy-MM-dd"));
    			// 执行SQL语句
    			rsCount = ppstCount.executeQuery();
    			
    			if (rsCount.next()) {
    				System.out.println("the number of data is "+rsCount.getInt(1));
    			}
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				// 关闭资源
    				if (rsCount != null) {
    					rsCount.close();
    				}
    				if (ppstCount != null) {
    					ppstCount.close();
    				}
    				if (conn != null) {
    					conn.close();
    				}
    
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    
    		}
    
    	}

    JDBC_ODBC桥接

    • 给Access数据库配置数据源

    1. 打开【控制面板】==》【管理工具】,选择数据源(ODBC),右键以管理员身份打开。                                                   注意:有的电脑,数据源(ODBC)有64 和32 两个选项,选择与MS Access软件相同位数的数据源;以管理员身份运行可以看到电脑上所有的驱动程序
    2. 在弹出的数据源管理器对话框中,点击【添加】按钮

    • 代码

    public void readAccess() {
    
    		PreparedStatement ppstCount = null;
    		Connection conn = null;
    		ResultSet rsCount = null;
    
    		try {
    			// 驱动来自于JDK 1.7(1.8不支持) 的rt.jar包
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    
    			// Access中的数据库默认编码为GBK,本地项目为UTF-8,若不转码会出现乱码
    			Properties p = new Properties();
    			p.put("charSet", "GBK");
    
    			// 连接数据库,odbcAccess是配置Access的数据源名
    			String url = "jdbc:odbc:odbcAccess";
    			// 不配置数据源的 url写法
    //			 String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D://upload/Database1.mdb";
    			conn = DriverManager.getConnection(url, p);
    			// sql 语句
    			String sqlCount = "select count(*) from datareport1"
    					+ " where CDate(format(日期 & ' '&时间,'yyyy-MM-dd HH:mm:ss'))>#2019-08-12 08:00:00#";
    			ppstCount = conn.prepareStatement(sqlCount);
    			// 执行SQL语句
    			rsCount = ppstCount.executeQuery();
    			if (rsCount.next()) {
    				System.out.println("the number of data is " + rsCount.getInt(1));
    			}
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				// 关闭资源
    				if (rsCount != null) {
    					rsCount.close();
    				}
    				if (ppstCount != null) {
    					ppstCount.close();
    				}
    				if (conn != null) {
    					conn.close();
    				}
    
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    
    		}
    
    	}

    远程连接

    --------未实现,后续待补充--------。

     

    展开全文
  • [013]Java连接Access数据库的三种方式

    千次阅读 2016-01-26 17:06:13
    Java连接Access数据库主要有三种方式:直接连接、sun的jdbcodbc桥连接、驱动连接。下面就分别从代码实现上说说三种方式有什么不同及优劣。 直接连接: 这种方式简单、直接、易懂,而且与连接MySQL数据库的方式类似...
    Java连接Access数据库主要有三种方式:直接连接、sun的jdbcodbc桥连接、驱动连接。下面就分别从代码实现上说说三种方式有什么不同及优劣。
    直接连接:
    这种方式简单、直接、易懂,而且与连接MySQL数据库的方式类似,更容易让人接受,也是三种方式中最好用的,限制少。代码如下:
    //从access数据库读取信息
    					Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    					
    					String dbur1 = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\Program Files\\*.mdb";
    					connAccess = DriverManager.getConnection(dbur1,<span style="font-family:Consolas, Courier New, Courier, mono, serif;"><span style="line-height: 18px; background-color: rgb(248, 248, 248);">"username","password"</span></span>);
    					stmt = connAccess.createStatement();
    
    rs1= stmt.executeQuery("select max(ID) from Buffer12");
    rs1.close();
    stmt.close();
    						connAccess.close();

    上述代码中DBQ后是mdb文件的路径,getConnection方法有三个参数,如果Access没有密码,可把第二、第三个参数去掉。executeQuery()方法里是要执行的sql语句,返回的类型是ResultSet,当执行第二条查询语句是,前一个 ResultSet就自动关闭了,所以数据要及时提取出来。
    使用该方法,对于office2003以下的用户不用特殊驱动,默认都有的,2007以上的用户则组要下载对应的驱动进行安装,例如64位系统则安装:AccessDatabaseEngine_X64.exe,下载地址。如果未安装驱动则报错:
    [Microsoft][ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序

    jdbcodbc桥连接:
    在windows下,【开始】->【控制面板】->【性能和维护】->【管理工具】->【数据源】,在数据源这里添加一个指向*.mdb文件的数据源。 在数据源管理器界面最好在系统DSN下添加数据源,这样所有用户都能访问了,添加新数据源时,如果没有ODBC的,则是没有安装access驱动,需按照上面地址安装。
    代码里的
    dbur1 = "jdbc:odbc:data";//data为添加的数据源
    其它部分不变,这种方式如果mdb路径变化了,只需要重新添加数据源教麻烦。

    驱动连接:
    这种方式需要工程里添加jar文件,例如Access_JDBC40.jar,url则改为:
    String dbur1 = "jdbc:Access:///C:\\Program Files\\*.mdb";
      这种方式最大限制就是,一般的驱动文件都是试用版的,一次不能超过50次查询,报错如下:
    java.sql.SQLFeatureNotSupportedException: HXTT Access Version 5.1 For Evaluation Purpose allows executing not more than 50 queries once.
    够买正式版的则很贵了,所以一般就不采用这种方式了

    所以如果程序需要定时读取Access数据库的话,第一种方式还是很不错的。

    
    
    展开全文
  • access数据库

    2017-01-11 10:47:43
    access数据库压缩

        利用vc给一个小设备做通信管理软件,因为考虑到软件操作简单,就用了access数据库。access数据库的容量理论说·2G,不过也有说超过500M就很慢了!我没验证过。不过在我这个小软件上已经够了!在网上找了很多资料,简单总结一下:

    着数据表的增大以及查询公式视图的增多,access会越来越大。access带有压缩数据库功能。一般来说,access 2007 在退出的时候自动压缩数据库。Access 2007程序可以打开Access2003 的数据库格式。所以,推荐使用access2007管理数据库,方便

    2当删除数据表数据后,发现数据库大小没有任何变化。这是因为Access不能及时把已删除的项目清空,需要进行修复一下。可以在左上角Office图标--->管理---->压缩和修复数据库。会在右下角显示正在压缩,按Esc键停止压缩。

     

    如何设置自动压缩,也就是关闭Access 2007 时如何自动压缩数据库。

      左上角Office图标,access选项----->当前数据库----->关闭压缩选项选择上。


    4 压缩access数据库原理:

       首先数据库变大的原因:随着不断添加、更新数据以及更改数据库设计数据库文件会变得越来越大。导致增大的因素不仅包括新数据,还包括其他一些方面:
      (1)Access 会创建临时的隐藏对象来完成各种任务。有时,Access 在不再需要这些临时对象后仍将它们保留在数据库中。
      (2)删除数据库对象时,系统不会自动回收该对象所占用的磁盘空间。也就是说,尽管该对象已被删除,数据库文件仍然使用该   磁盘空间。
     随着数据库文件不断被遗留的临时对象和已删除对象所填充,其性能也会逐渐降低。其症状包括:对象可能打开得更慢,查询可能比正常情况下运行的时间更长,各种典型操作通常似乎也需要使用更长时间。
     所以:
       (1)压缩数据库并不是压缩数据,而是通过清除未使用的空间来缩小数据库文件。
       (2)压缩数据库可以防止数据库变大而引起的执行性能变慢,防止因此造成的数据库损坏。
    5 ACCESS数据库经过一段时间添加、更改和删除数据库对象后会产生很多代码及数据库对象碎片和垃圾,对于这些东西常规的压缩修复数据库的办法是无法清除的。这也是为什么ACCESS数据压缩后,大小不变的原因所在。
    方法:先建立一个同名空白数据库,放在另一个文件夹下,接着打开该空白数据库,导入原数据库全部有用的对象(包括:表、窗体、查询、模块、页、宏,无用的不要导入)ACCESS2003导入对象举例:
    文件——获取外部数据——导入 ,打开“导入”对话框选择需要缩小的数据库后,点击导入按钮,打开“导入对象”对话框 选择全部有用的数据库对象,例如表、窗体、查询等等后点击“确定”按钮 完成导入全部数据库对象。经过上述过程后,所有的数据库垃圾都会被彻底清除掉。再对其进行一次压缩操作,ACCESS数据库将会处在理论上最小状态,需要设置工作组安全机制的需要从新设置安全机制。最后将这个没有垃圾的新数据库覆盖原有的数据库就好了。
    ****注意实施这些操作之前,务必将原有数据库备份好放在安全的地方,以免误操作导致数据丢失,造成无法挽回的损失!!!!

    展开全文
  • 方法一:单表导入 (1)打开”SQL Server 外围应用配置器”–>”功能的外围应用配置器” –>些服务默认是关闭的,若不打开,将不能...from opendatasource(‘microsoft.jet.oledb.4.0′,’data source=”access数据库
  • 主要介绍了Javascript连接Access数据库的方法,涉及javascript针对access数据库的连接、关闭及增删改查等常用操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • pyodbc操作Access数据库

    千次阅读 2018-12-06 19:13:48
    相比之下,微软Office套件里面附带的Access数据库究落寞了很多。不过好歹Access数据库还是有些用处的,作为一个既是数据库又是前端界面的软件,对一些非科班又有数据库需求的人来说还是比较好用的。本文利用pyodbc来...

    现在各种各样的数据库层出不穷,什么MySQL、PostgreSQL、MongoDB这些都是比较火的,还有一些稍微小众一点的数据库就更多了。相比之下,微软Office套件里面附带的Access数据库究落寞了很多。不过好歹Access数据库还是有些用处的,作为一个既是数据库又是前端界面的软件,对一些非科班又有数据库需求的人来说还是比较好用的。本文利用pyodbc来简单介绍一下如何操作Access数据库。

    安装pyodbc

    最简单的方式自然是pip安装了:

    pip install pyodbc
    

    如果会使用pipenv的话就更好了,一整套Python虚拟环境管理方案,强烈推荐:

    pipenv install pyodbc
    

    最近又了解了一下faker类库,所以顺便用faker添加了一些模拟数据。所以顺便还要安装faker:

    pip install faker
    

    安装Access数据库引擎

    Access数据库稍微有点特殊,还需要安装一个额外的数据库引擎。注意版本要和安装的Office版本一样,如果安装的Office是32位而安装了64位的引擎,也没办法使用。如果安装的是Office 2019的话,用2016引擎就好了。其他版本的没试过。

    安装完毕后打开ODBC数据源,查看一下平台,如果显示出了具体位数,说明安装成功。当然没安装以前也可以先查看一下,应该是N/A,表示尚未安装。

    ODBC数据源

    这样一来准备工作就结束了。

    创建Access数据库

    首先打开Access软件,创建一个数据库。创建完毕后记得关闭数据库,否则接下来代码会报错。

    增删查改

    pyodbc库的用法和一般的Python SQL驱动类似,我就不做过多介绍了,很简单的示例代码,做了一些简单注释。首先创建了3000条用户数据,然后简单查询了一下所有公务员。数据库字段完全按照faker提供的模拟数据来设计的。代码只用了简单的SQL添加和查询功能,不过更新和删除也很简单,就不写了。

    import pyodbc
    import faker
    
    create_table_sql = '''\
    create table user
    (
      id        autoincrement primary key,
      username  varchar(255) unique,
      nickname  varchar(255) not null,
      password  varchar(20)  not null,
      address   varchar(255),
      birthday  date,
      company   varchar(30),
      job       varchar(20),
      telephone varchar(14)
    )
    '''
    
    insert_table_sql = '''\
    insert into user(username, nickname, password, address, birthday, company, job, telephone)
    values (?, ?, ?, ?, ?, ?, ?, ?)
    '''
    
    select_public_servant_sql = '''\
    select *
    from user
    where job = '公务员'
    '''
    
    # 准备模拟数据
    fake = faker.Faker('zh_CN')
    # 设置种子值,不设的话每次随机的都不一样
    fake.seed(47)
    
    db_file_location = r'D:\desktop\db.accdb'
    # 这里用的是Python3.5的语法,如果是低版本Python的话需要改成普通方式
    connection = pyodbc.connect(
        rf'Driver={{Microsoft Access Driver (*.mdb, *.accdb)}};DBQ={db_file_location};')
    
    connection.autocommit = True
    
    # 第一次创建表,将其设置为False
    table_exists = False
    if not table_exists:
        with connection.cursor() as cursor:
            cursor.execute(create_table_sql)
    
    # 添加数据
    with connection.cursor() as cursor:
        for _ in range(3000):
            cursor.execute(insert_table_sql, (fake.pystr(min_chars=6, max_chars=10),
                                              fake.name(),
                                              fake.password(length=10),
                                              fake.address(),
                                              fake.date_of_birth(minimum_age=0, maximum_age=120),
                                              fake.company(),
                                              fake.job(),
                                              fake.phone_number()))
    
        # 查询一下所有公务员
        cursor.execute(select_public_servant_sql)
        results = cursor.fetchall()
        for row in results:
            print(row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], sep='\t')
    
    

    代码完成之后,打开Access数据库看一下,效果很完美,几乎和真的一样(滑稽)。当然这只是简单的演示了一下,感觉对于一些简单的项目,又希望能直接查看数据库内容,可以考虑一下Access数据库。

    添加的模拟数据

    一开始我在研究的时候,还出现了Database you are trying to open requires a newer version of Microsoft Access这么一个错误,我还有点纳闷,我明明用的已经是Access 2019了,为啥还提示我需要更新版本的Access。最后发现可能是我一开始代码写的有问题,或者是忘了关闭数据库,导致的数据库文件损坏了。删掉了原来的accdb文件重新创建了一个,就能完美运行了。

    展开全文
  • ACCESS数据库修复工具

    热门讨论 2011-11-21 10:50:26
    实践证明,该工具是众多Access数据库修复工具中速度最快、修复率最高的几之一。 当打开或者读写Access数据库发生3343(数据库格式无效或者数据库格式不可识别)等错误时,请尽快终止程序运行,将有问题数据库文件...
  • labview打开access数据库

    2012-12-28 16:10:55
    使用labview打开access数据库
  • 远程访问Access数据库

    千次阅读 2017-05-05 10:57:16
    远程访问Access数据库
  • Visual C#读取Excel和Access数据库 三峡大学土木水电学院 肖泽云 Content 一、读取Excel表格... 1二、保存Excel文件... 5三、获取表的名称... 6、打开指定的Excel表格... 8五、读取Access数据库... 10六、获取...
  • Access数据库12.0配置包_32.exe 下载 Access数据库12.0配置包_X64.exe 下载 首先基础的:C#连接Access数据库,方法与连接Sql类似。 AccPath:Access数据库的路径 string ConAcc = "Provider=Microsoft.ACE.OLEDB...
  • VB连接Access数据库

    2010-04-28 09:03:40
    VB连接Access数据库,读取文件 -- 格式化数据 -- 关闭文件 -- 使用数据
  • C++、Qt操作Access数据库

    千次阅读 热门讨论 2018-02-10 16:15:56
    C++、Qt操作Access数据库 工作需要,使用C++、Qt封装了几个操作Access数据库的接口,分享给大家, 代码是经过反复测试,可以直接使用的: 1、获取指定数据库的表: /** * @brief 获取Access数据库中所有的表...
  • VC读取Access数据库方法。

    千次阅读 2015-03-29 16:44:23
    //关闭记录集及库 RecSet.Close(); db.Close(); } 方法二:CDatabase和CRecordset #include void CMy032901Dlg::OnButton5() { CDatabase m_db; CRecordset rs(&m_db); CString ...
  • Java8 连接Access数据库—UCanAccess 方式介绍 Java8 中JDK1.8中不再包含access桥接驱动,因此不再支持jdbcodbc桥接方式。 解决方法: 1.java Access JDBC jar包:Access_JDBC30.jar使用导入数据库相应的jar包,...
  • Java 连接 Access 数据库

    千次阅读 2012-02-27 11:23:46
    测试代码如下: ... * @描述: TODO java连接Access数据库 * * * 建立Access数据库: * * 1.建立Access数据库db.mdb,并创建tUser表,字段有两个: ID字段和Password字段。 * 2.打开控制面板 ->
  • Access数据库技巧汇集

    2015-06-18 15:18:20
    Access数据库现在是不是过时了呢?Access数据库的应用也比较少了,更甚至现在一般的高校都不开设Access课了。绝大部分的都在开设SQL、oracle等。但是Access数据库还是存在的。所以还有它的可用之处。下面是我收集的...
  • access数据库的链接 private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) { this.notifyIcon1.Visible = true; base.ShowInTaskbar = false; this.Activate(); this.Show(); base....
  • Excel VBA Sql 操作Access数据库

    千次阅读 热门讨论 2021-03-13 10:28:13
    主要介绍Excel与Access数据库的互连,及sql语句中的增、删、改的语法构造
  • 首先在要导入到的SQL Srever数据库上右键,选择“任务”,然后选择“导入数据”,按照提示下一步直到完成即可成功将Access数据库导入到SQL Server数据库中,此方法如果SQL Server数据库中没有相应的数据表,则会...
  • php操作access数据库

    2014-09-17 22:30:19
    首当其冲便是PHP连接Access数据库问题,在不改变数据库的情况下,PHP如何与Access数据库建立连接?  PHP提供多种连接数据库解决方案,在此详解如何使用PHP ADOdb、PDO、ODBC与Access数据库建立连接的代
  • Access数据库修复 压缩

    2011-10-22 10:39:07
    为什么空的access数据库很大?我的 ACCESS数据库突然很大,原来只有5M,不知道怎么原因,突然变成了50M,于是我清空数据库,结果还是50M! 当你从数据库表中删除记录的时候这些记录所点用的磁盘空间并未被释放。只有...
  • access数据库远程连接

    万次阅读 2017-12-18 17:01:38
    在java中实现对access数据库的远程访问 概述  在实际的项目中,可能会遇到这样的问题:A服务器上的应用程序需要访问B服务器上的access数据库(可以使用虚拟机模拟A、B服务器进行测试)。而access数据库是文件类型...
  • 许多学者总会面对于数据库的知识,以下的例子讲述到Access数据库说明,用C#的DataSet类访问数据库的一些操作方法。 操作涉及的主要C#类有: DataSet:对应数据库表的一个集合,实际上是数据库表在内存中的一个...
  • access数据库宏部分

    2015-02-04 13:08:38
    access数据库宏部分帮助 单击“选项”选项卡,关闭“响应 F1 键”复选框、 “显示警告信息”复选框和“显示有关提示”部分的所有复选框,然后单击“确定”按钮。
  • MFC DAO连接Access数据库

    2012-04-28 11:01:18
    DAO 数据库调用access数据库数据,并实现数据检索,添加,删除和修改
  • 本地连接远程access数据库

    千次阅读 2018-04-25 22:27:41
    第一步: ...1、创建access数据库前,确保你的计算机中已经安装了MS office软件且配置了JAVA运行环境,顺便提个醒,下面的B服务器中要使用32位的jdk。 2、创建一个测试数据库,UserInfo.mdb(文件版本为...
  • 根据MSDN的资料,有两方法连接到ACCESS数据库,分别是:  一、在服务器资源管理器中连接到 Access 数据库  1、在服务器资源管理器中创建连接  二、从应用程序连接到 Access 数据库  1、以直观方式连接到 ...
  • 在导入了外部包Access JDBC30.jar后,能成功加载驱动,但连接数据库执行sql 语句时 便报错:java.sql.SQLException: Failed to load database a1! For more information, please use SQLException.getNextException...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,772
精华内容 45,908
关键字:

关闭access数据库的四种方式