- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我将 JDBC 与 UCanAccess 一起使用,以便通过直接文件路径创建到 MS Access 文件的连接,以将特定表存储到 JSON 对象中。但是,我的代码行
conn = DriverManager.getConnection(s1+inFilePath, user, pass);
其中 conn 是一个未初始化的连接对象,它创建连接会导致某种内存泄漏,最终导致超过 GC 开销限制。
有什么办法可以解决这个问题吗?我尝试更改堆大小但没有结果。
最佳答案
这不是内存泄漏。 UCanAccess 正在消耗内存作为其正常操作的一部分。
UCanAccess 使用Access 数据库的HSQLDB“镜像”来支持SQL 操作,默认情况下,该镜像数据库是在内存中创建的。因此,如果您连接到一个包含 30 MB 数据的表的 Access 数据库,那么 UCanAccess 将使用大约 30 MB 的内存来存储镜像数据库。
将 ;memory=false
附加到连接 URL 将告诉 UCanAccess 在磁盘上而不是在内存中创建 HSQLDB 镜像数据库。这将显着降低内存需求,但建立连接(即创建镜像数据库)也需要更长的时间。
UCanAccess 还“镜像”它在指定数据库中找到的所有表。因此,如果您只对使用名为“main.accdb”的数据库中的一个特定表感兴趣,那么您可以
使用上述过程,UCanAccess 只镜像了一张表。
还有其他几个选项可以控制 UCanAccess 的镜像行为;查看UCanAccess website了解详情。
关于java - 将 DriverManager.getConnection 与 UCanAccess 一起使用时的内存消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36365444/
我在 spring 上下文中初始化了数据源 bean。请问应该用什么方式?为什么我就是不能写 dataSource.getConnection()? 最佳答案 有一个重要区别:dataSource.g
如果我使用 DriverManager.getConnection() 和 DataSource.getConnection() 获取连接对象,当 .close() 是在那些对象上调用的? 在 .cl
在 DataSource 接口(interface)上,我发现了两种获取连接的方法,有和没有用户名和密码参数。 Connection getConnection()Connection getConn
我想对这段代码进行单元测试,以验证调用了哪个 DriverManager.getConnection() 。DriverManager.getConnection(url,user,pass) 或 D
我正在使用jsPlumb statemachine 。我想稍后保存并加载我的图表。我用谷歌搜索,发现我必须使用 json 对象来做到这一点。我尝试了几个例子stackoverflow 。我能够获得每个
如何模拟 DriverManager.getConnection() 方法? 我想测试我的方法 setUpConnectiontoDB() 我用 PowerMock、easyMock 和 Mokito
数据库连接如下所示 public Connection getDBConection(){ Context context = new InitialContext(); DataSo
我在 Java 文件中找到了这个方法,我想知道这里发生了什么?这真的有效吗?我认为这个方法什么都不做,因为 getConnection() 方法创建了一个新连接,然后它被关闭了。我说得对吗? publ
我正在尝试从nodejs中的mysql连接池获取连接。但是池的 getConnection 方法不会返回回调函数。 (因此它不会显示任何错误或返回连接)。但我的 mysql 工作台显示已建立连接。当我
我正在使用 MySQL 5.5 及其默认值。我创建了一个用户/密码并运行了一个脚本来创建一个名为员工的数据库。通过命令提示符我可以访问数据库: mysql -u user -p SELECT * FR
我有以下情况:我有一个与数据库 (MySQL) 连接的 java 代码。当我从 eclipse 运行 java 代码并从数据库中获取数据时,一切正常。但是当我从 html 代码运行 java 代码作为
我的工作电脑有一个奇怪的问题,也许你可以解决问题。我目前正在使用 jee 进行开发,我遇到了有关 MySQL DB 的问题。 假设我有这个: for(int i = 0; i<20; i++) { /
我编写了 DAO 类 public List getAllClassRooms() { List classRoomsList = new ArrayList<>(); String
在使用 BoneCP 连接池时,我遇到了以下困惑,并希望听到一些关于这方面的建议: 是 getConnection BoneCP线程安全的方法?当有许多线程请求并行连接时,使用它的最佳方法是什么? 每
最近,我们在Hive连接中添加了SSL。我们通过添加 ssl=1;sslTrustStore=C:\\keytabs\\keys.truststore;trustStorePassword=foo 到
在 SignalR 中,ITransportHeartbeat.GetConnections() 的实现应该会为我提供正在跟踪的连接列表。在我的一个案例中,我总是得到一个不再存在的网络套接字连接。 以
我正在使用jdbc连接池,如果我编写像这样的代码 DatabaseMetaData dbMeta = getConnection().getMetaData(); 其中 getConnection()
我有以下代码来测试新服务器上访问数据库的链接,一切都适用于现有服务器,并且我能够访问该文件夹。 !if.exists 返回 true,我可以使用 Runtime.getRuntime().exec("
我正在使用 Java 和 mysql 作为数据库,但遇到了一个奇怪的问题:我的一位客户的连接非常不稳定,有时丢包率可能很高。好吧,我知道这不是软件的错误,但我去那里进行了测试,当程序调用“Driver
这个问题已经有答案了: Solving a "communications link failure" with JDBC and MySQL [duplicate] (25 个回答) 已关闭 4 年
我是一名优秀的程序员,十分优秀!