问题标签 [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 回答
79 浏览

java - DriverManager 无法打开 SQL 连接器 jar

这真的很奇怪,但请听听故事。

我们都知道 DriverManager 在连接器注册期间的行为。我发誓它按预期工作,然后突然开始不断抛出 SQLException:找不到合适的驱动程序。要修复它,我必须直接破坏 jar 文件并直接在类路径下公开内容文件夹。

然后我得出结论,某些东西阻止了我的 DriverManager 能够自动打开 jar 文件。它看起来像一个奇怪的访问权限问题。我的系统是windows 8.1,我在administrator:cmd下运行java。

我有几个类路径文件夹,其中只有一个包含 jar 文件。

OK,下面是代码,只是一个简单的测试类

我真的很想很好地解决这个问题,而不破坏 jar 文件。有人帮忙请

0 投票
2 回答
7333 浏览

java - 从基本 java 应用程序连接到 sql server 2014 数据库?

我目前正在关注 vishal layka 的“学习 Java 进行 Web 开发”一书。但是我遇到了一个问题,我将在这里尽我所能描述。本质上,我无法使用connectorj 5.0.8 连接到名为“book”的数据库。数据库在 microsft sql server 2014 上本地运行。这是我用来获取连接的方法。

当我试图获得连接时,我得到了这个输出。

我在“sql server 配置管理器”工具中编辑了我的 sql server 配置,使其在端口 3306 上运行并在 localhost 上启用。服务,但仍然没有喜悦。下面显示了此配置的图像。

在此处输入图像描述

我在想,也许我对 sql server 的了解不足使我退缩了。我认为可能是问题的另一件事是在 sql 管理工作室。当我尝试更改登录属性密码时。这在下图中圈出。

在此处输入图像描述

当我更改此密码时。然后单击“确定”,然后重新输入“此数据库用户的登录属性”,然后我之前更改的密码似乎已恢复到原来的状态?我可能完全是在吠叫错误的树,但我不太确定? 我希望问题足够清楚,任何帮助表示赞赏!

只是一个快速的编辑。我也试过完全关闭我的防火墙,但我仍然无法连接。

0 投票
0 回答
212 浏览

mysql - MySQL JDBC 驱动程序 getGeneratedKeys 返回触发器生成的主键值

在 MySQL 中,我使用插入前触发器为主键列创建值,而不是使用auto_increment列(因为我的逻辑更复杂)。

MySQL JDBC 驱动程序(Connector/J)Statement#getGeneratedKeys()是否可以返回触发器生成的主键值的值?

到目前为止,我只看到它返回auto_increment值。

0 投票
3 回答
2063 浏览

java - 如何修复“未报告的异常 InstantiationException;必须被捕获或声明为抛出”

我正在 NetBeans 8.1 中构建一个简单的 HelloWorld 应用程序。它必须工作简单,一旦编译和运行,它将使用 MySQL 将表 acc 的所有数据加载到数据库帐户中。

我已经在我的项目库中包含了 Connector/J jar 文件并与 MySQL 建立了连接,但 Class.forName(com.mysql.jdbc.Driver).newInstance(); 一段代码中的行显示“未报告的异常 InstantiationException;必须被捕获或声明为抛出”,我完全不知道该怎么做。我有点卡在这里。

这是我的代码

0 投票
0 回答
55 浏览

mysql - mysql 连接属性 time_zone

我在 AWS 的 RDS 中使用 MySQL 进行原型设计。我们的代码目前使用 Oracle。它使用我们无法直接控制的连接池 API,而不会影响其他用户。oracle 数据库设置为美国/东部时区。MySQL 数据库设置为 UTC。而不是在为美国/东部编写时更改所有代码以处理UTC,我正在寻找一种方法来a)将数据库服务器更改为使用美国/东部或b)在连接URL中设置属性以设置所有从 UTC 转换为美国/东部的连接。

当我使用 mysql 命令行工具时,我可以设置 time_zone = 'US/Eastern 并且适用于连接。我试图在全局范围内设置它,但我没有权限,也无法在我的 AWS 实例中授予自己这样做的权限。

在 MySQL 连接器 J 的 URL 字符串的文档中,我查看了所有与时区相关的属性,但似乎没有什么是我需要的。我试过 connectionAttributes=time_zone:US/Eastern 但这不起作用。

AWS 中是否有魔法可以创建具有我在创建实例时没有注意到的不同时区的实例?

我已经在 AWS 中寻找一种方法来更改数据库服务器的时区,但那里没有运气。我错过了什么?

有没有办法使用 URL 字符串来执行此操作,就像使用 mysql 命令行客户端一样?

0 投票
1 回答
557 浏览

java - 春天。具有一个持久性单元的多个数据源

是否可以在 spring 中使用具有多个数据源的相同持久性单元?

例如。我有两个数据库。他们在不同的服务器上。一种仅用于写入操作(插入、更新、删除等),另一种仅用于读取操作。它们都使用相同的结构。那么我可以为它们都使用一个持久性单元吗?

我发现这个ReplicationDriver可以解决我的问题。我只定义了我的服务器和服务器,在代码方面我只定义了@Transaction(readOnly=true)。因此,当事务为readOnly=true时,管理器使用我的从属,其他情况根据连接器/j文档使用我的主控。现在使用这个tomcat时无法连接到我的数据库。我的意思是它只是等待什么都没有发生。这是我的 apache tomcat context.xml

这是我的spring context.xml

我怎么了?为什么tomcat无法连接到db?顺便使用eclipslink provider v2.4.0

更新

我不知道为什么,但是当我使用jdbc:mysql://address这种格式时,我的程序无法连接到数据库并给出以下异常

但是当使用jdbc:mysql://host1,host2格式连接成功。如果我们使用第二个版本,我应该为每个连接使用相同的用户名和密码,但第一个版本我们可以定义不同的用户名和密码。根据 MySQL 连接器 J 文档

以下是连接到 MySQL 服务器的 JDBC URL 的另一种格式,这对于 IPv6 连接是强制性的,但也可以与 IPv4 一起使用(方括号 ([ ]) 中的项目是可选的):

jdbc:mysql://address=(key1=value)[(key2=value)]...[,address=(key3=value)[(key4=value)]...]...[/[数据库]]» [?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

这意味着这也适用于 IP4,但不起作用。有什么我想念我的配置的吗?

0 投票
0 回答
16 浏览

java - MySQLSyntaxErrorException 使用java时出错,但直接在phpmyadmin中工作

我使用这个查询:

稍后添加参数。

例如,在 DataGrip 中,或直接在 phpmyadmin 中,这可以正常工作。

这是我得到的错误:

我在这里做错了什么?

这是我使用的代码:

0 投票
0 回答
61 浏览

java - 使用 2017 年 3 月 31 日的 JDBC 结果将 2017 年 4 月 1 日插入 MySQL 数据库

首先我要注意的是,服务器和数据库都是为 EST 时区设置的。我这样说是因为如果时区不同,我会看到很多关于问题的评论,它们是相同的。

话虽如此,我的代码:

但是,当我这样做然后运行时SELECT date FROM myTable,结果日期是 2017 年 3 月 31 日。服务器和数据库的时区再次相同。

如何将 2017 年 4 月 1 日保存到我的数据库中?

0 投票
1 回答
2917 浏览

java - 方法 com/mysql/jdbc/PreparedStatement.isClosed()Z 是抽象的

我正在尝试更改我的应用程序的连接池,以便使用 Tomcat 的连接池 (org.apache.tomcat.jdbc.pool) 而不是“Apache Commons DBCP”。

但是,尝试连接到数据库时出现此错误:

我在其他链接中读到这通常是 MySQL-JDBC 驱动程序版本的问题,但是,我刚刚更新到最新的 Connector/J 版本 (mysql-connector-java-8.0.11.jar) 但我'我仍然得到这个错误。

以下是连接池的创建方式:

首先,这是在我的应用程序的 META-INF 目录中的 context.xml 文件中进行的:

然后我有一个所有其他库都使用的 DBUtil.class:

最后,所有其他 java 库都像这样使用连接池:

我错过了什么吗?Tomcat启动时我没有收到任何错误。

JDK版本:8(java版本“1.8.0_111”)Tomcat版本:8.5.8 MySQL Server 5.6

任何帮助将不胜感激

0 投票
1 回答
479 浏览

java - Java 连接到 MySql 数据库,NullPointerException

我想用 Java 连接到 MySql serwer(不安装额外的扩展),我得到“java.lang.NullPointerException”错误。这是我的主要代码:

和 DBConnect:

可能是什么问题,我能做些什么来解决这个问题?