0

我正在为我的 Java 数据库工作使用 PreparedStatements。

我目前指的是本教程我的 MKYong:http ://www.mkyong.com/jdbc/jdbc-preparedstatement-example-batch-update/

对于我的主键,我有一个varchar(10)用来存储 Unix 时间的。似乎在这样的声明中preparedStatement.setSomething(),我必须定义type它是什么。类型是varChar(10)什么?

Unix 时间是这样的:1382944400,类似于 2013 年 11 月 8 日和今天的某个时间。

4

2 回答 2

4

每个CHAR(X)andVARCHAR(X)字段都属于StringJava 类型。

来自PreparedStatement#setStringjavadoc(强调我的):

将指定参数设置为给定的 JavaString值。驱动程序在将它发送到数据库时将其转换为一个SQL VARCHARLONGVARCHAR值(取决于参数的大小相对于驱动程序对值的限制)。VARCHAR

于 2013-11-08T21:23:04.057 回答
1

varchar 的自然类型是 String,尽管大多数其他类型可能工作正常并且可以转换(如果您setObject()至少使用的话)。

但是为什么要使用 varchar 来存储 long 值呢?为什么不用数字代替?这将消耗更少的内存,导致更好的自然排序,并且效率更高。

于 2013-11-08T21:23:55.880 回答