【发布时间】:2017-09-05 09:12:08
【问题描述】:
我的表中有一个外键列,其中包含一个unsigned integer 值。我想在此列中添加一个新值,但我不知道 java 将如何处理这个 unsigned 值,因为 java 没有本机无符号值。
如果我这样做:
preparedStatement.setInt(2, myInt);
数据库会自动将此signed int 转换为unsigned 值吗?或者它会抛出一个错误,说这些是不兼容的类型?我应该加强并使用long 之类的:
preparedStatement.setLong(2, myLong);
或者这也会引发异常,因为数据库没有使用BIGINT?
我正在使用 MySQL,我只是想避免将来随着表记录的增长而出现意外。
【问题讨论】:
-
你有没有尝试实现这两种方法,看看会发生什么? :)
-
我想过,但我先尝试用谷歌搜索,但没有找到任何关于此的内容,所以我认为如果正确记录此答案会更有用,可以节省未来的人时间。
-
@mFeinstein 我同意这一点!不禁止创建问题并回答问题。因此,您可以尝试创建与测试匹配的问题;-)(如果失败,请创建一个询问原因并回答的问题,因为它不支持示例和源代码,当然如果找不到其他帖子。 ..)
-
好吧,我可以创建问题、测试它并回答它,但这是一个在我设置测试的方式上碰巧对我有用的一个案例......我不是专家在这方面,也许有一些陷阱需要避免,也许 MySQL 以一种方式运行而 SQL Server 以另一种方式运行,我不知道,这就是我来这里的原因,所以专家可以向我展示我肯定会错过的所有细节。
标签: java mysql jdbc prepared-statement unsigned-integer