问题标签 [connector-j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1022 浏览

java - MySQL JDBC驱动程序中的客户端模拟准备语句

我试图了解 MySQL JDBC 驱动程序中的客户端仿真准备语句是如何工作的。

Part 1 我在网上看到,对于prepared statements,关系数据库处理JDBC/SQL查询时涉及四个步骤,它们如下:

  1. 解析传入的 SQL 查询
  2. 编译 SQL 查询
  3. 规划/优化数据采集路径
  4. 执行优化查询/获取并返回数据

步骤的预执行编译 SQL 语句并因此提供预优化。对于服务器端准备好的语句,将对数据库进行额外的往返以预编译 SQL 语句。

问题 如果客户端模拟准备好的语句不往返数据库,它如何执行步骤 3?还是客户端仿真准备好的语句的工作方式不同?

Part 2 我也做了两个实验。

  1. 实验 1 - 为每个查询使用一个客户端准备好的语句
  2. 实验 2 - 多次为同一查询“重用”客户端准备好的语句

这两个实验都显示了响应时间等性能的改进。实验 1 提高了约 18%,实验 2 提高了约 30%。

问题

  1. 我是否正确假设客户端准备语句仍然存在预优化?
  2. 如果是,它是否以类似于服务器端(第 1 部分中提到的四个步骤)预处理语句的方式进行预优化,还是以非常不同的方式进行预优化?
  3. 如果没有,为什么还有改善?

谢谢你的帮助!

0 投票
1 回答
341 浏览

java - mysql 列未找到循环

嗨,有一个方法可以创建 compMac 对象的 LinkedList。CompMac 对象包含来自 mysql 表行的元素。每行都包含一个昵称和一个位置,因此我使用循环为每行创建一个“compMac”并将它们添加到链接列表中。我不知道为什么,但是第一个“compMac”被创建并被添加到链表中,但在那之后我得到了

这是我的方法:

但是我确实有一个昵称列,就像我说的那样,创建了第一个 compMac,当我弹出链接列表时,我得到了第一行的信息。

感谢任何知道我的代码有什么问题的人。

编辑:这里的类代码:包服务器;导入java.sql.*;导入 java.util.LinkedList;

}

0 投票
1 回答
766 浏览

java - 带有连接器/J 的 NetBeans

好吧,我正在使用 GNU/Linux 机器,我仍在学习如何连接到我的数据库
我已经下载了连接器/J 文件并编辑了我的 CLASSPATH,这是回显路径的结果

我也有我的 SQL 文件.. 比方说:sqlfile.sql

抛出文档,在搜索时我发现我应该如何连接到连接器。我的问题是:我应该把我的 SQL 文件放在哪里?

另外,这是我发现的一段用于连接的代码,对吗?

0 投票
1 回答
1657 浏览

mysql - 如何在节点故障转移测试中使用 c3p0

我们已经设置了具有三个节点的 MySQL NDB Cluster,这是设置的详细信息。
Node1 - MultithreadedDataNode1、SQLNode1
Node2 - MultithreadedDataNode2、SQLNode2
Node3 - 管理节点

我们正在测试一些故障转移方案以确保设置正常工作。在客户端,我们使用 MySQLConnector v5.1.30 和 c3p0 连接池。客户端配置了多主控参数。因此,如果其中一个节点或应用程序出现故障,则应在另一个节点上执行 JDBC 查询并继续响应。

但是当 SQLNode(Port: 3306) 出现故障时,我们会观察到异常行为。连接不会故障转移到另一个节点。

配置如下:

当我启动客户端时,这两个节点已启动并正在运行。之后,我从第一个节点(192.168.102.22)杀死了 mysqld 进程,我得到了以下 stackTrace,

如果我遗漏任何东西,请纠正我。
谢谢,
Parimal

0 投票
1 回答
896 浏览

mysql - 在客户端测试服务器故障转移时如何正确使用 loadBalanceBlacklistTimeout


我正在使用 MySQL Connector/J 5.1.30 来实现快速故障转移,当交易正在进行时 master 突然关闭。

我试图将 blacklistTimout 指定为 10 秒。

是在当前场景中使用的属性(请检查驱动程序、连接 URL)还是我需要指定不同的 URL 前缀而不是jdbc:mysql://

如果我缺少任何强制性参数,请纠正我。

干杯,
帕里马尔

0 投票
1 回答
4787 浏览

java - mysql connectorJ字符集结果不支持utf8mb4

我有一个 tomcat 服务器,它有一个到 mysql 的连接池。

在连接设置中,我可以在*this page中看到所有字符集编码设置为 utf8mb4, character_set_results 除外。

我的连接字符串是 -

在 mysql 服务器中,我可以看到 character_set_results 显示 utf8mb4。

但是在jsp页面中无论如何都没有显示。

mysql版本是5.6.16,连接器版本是5.1.22

问候

0 投票
2 回答
1692 浏览

eclipse - com.mysql.jdbc.Driver 未找到

我正在使用 eclipse 创建 servlet。我下载了mysql-connector-java-5.0.8-bin.jar (connector/j) 并将 jar 文件添加到我的项目的构建路径中。我可以使用中的类 mysql-connector-java-5.0.8-bin.jar(IDE 给了我提示和所有这些东西,在编译时使用这些类没有问题)。但是当我运行 servlet 时,我得到了这个错误:

听起来好像突然com.mysql.jdbc.Driver找不到我一直在使用的课程!

当我将 jar 文件用于 java SE 项目时,它可以完美运行,但不适用于 javaEE。我怎样才能解决这个问题?

0 投票
1 回答
3045 浏览

java - MySQL“语句关闭后不允许操作”

我遇到了一个奇怪的情况,准备好的语句使用 MySQL Connector/J 命中 MySQL 数据库。在某些环境中,我会定期遇到更长(> 5 分钟)的准备好的语句的问题。调用 executeBatch 时,我经常遇到异常:

“语句关闭后不允许任何操作”

但是,没有代码可以关闭我可以看到的语句。代码如下所示:

ConnectionHelper.close 本质上只是在语句和连接上调用 close。ConnectionHelper.getConnection 有点像兔子洞——它使用 java.sql.DriverManager 和 proxool 粗略地从池中检索连接,然后用 Spring DataSourceUtils 包装它。

通常它会在最后一个 pstmt.executeBatch() 上失败,但有时会在其他地方失败。我已经检查了 wait_timeout 和 interactive_timeout 配置为默认值(绝对 > 5 分钟)。此外,在大多数情况下,连接和语句都在循环中使用,但几秒钟后,语句在循环外失败。数据库服务器和应用程序服务器运行在同一个子网上,因此网络问题似乎不太可能。

寻找有关如何调试此问题的任何提示——目前,我正在尝试深入研究 MySQL 连接器/J 代码,看看是否能以某种方式获得一些额外的调试语句。不幸的是,我无法附加调试器,因为它目前只能在选定的几个环境中重现。

0 投票
1 回答
719 浏览

mysql - 使用 HikariCP 和 Slick 管理 MySQL 连接

我在这个软件堆栈上运行一个 Scala 应用程序:

我不明白为什么即使在关闭 Scala 应用程序后,与 MySQL 的打开连接仍然保持打开状态。唯一正确的方面是 Threads_connected 从 16 下降到 1(这是我正在执行“显示状态”命令的控制台。

奇怪的是,每次我运行应用程序时,我总是看到与数据库的打开连接数随着连接池中设置的最大打开连接数(HikariCP maximumPoolSize)而增长,因此我可以声明连接永远不会返回给连接池以供重复使用。

根据 Slick 文档使用

进入其范围时将从池中获取连接,并将其释放到范围之外

我做错了什么还是我在这个软件堆栈上的连接池使用上有什么问题?

0 投票
1 回答
39 浏览

java - 如何使用connector-j知道从mysql服务器返回的数据大小

我正在使用 mysql 和 java 中的 connector-j 来执行查询。我想知道使用/不使用压缩时返回的数据的大小。
获取从服务器传递到客户端的数据总量的最佳方法是什么?

我正在使用的代码与PreparedStatementand一起使用ResultSet

我可以获取Java中的数据量吗?
有什么外部方法可以获取吗?