Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对于SQL准备的语句,使用ps.setObject而不是特定于类型的方法是否会影响性能?_Java_Sql - Fatal编程技术网

Java 对于SQL准备的语句,使用ps.setObject而不是特定于类型的方法是否会影响性能?

Java 对于SQL准备的语句,使用ps.setObject而不是特定于类型的方法是否会影响性能?,java,sql,Java,Sql,我有一个应用程序,我正在使用ps.set。。。为准备好的语句设置参数。我很难获得存储java日期对象的正确调用,因为我既有时间又有日期(在这整个混乱中,更不用说日历了)。我发现,如果我将java.util.Date与ps.setObject一起使用,它做的事情是正确的,并且不会太令人困惑。事实上,我发现如果我想设置int、String或BigDecimal,setObject也会为它们做正确的事情。因此,我的问题是:这是一种不好的做法(如果是这样的话,这是理论上的坏事还是实际上的坏事)并且这样做

我有一个应用程序,我正在使用ps.set。。。为准备好的语句设置参数。我很难获得存储java日期对象的正确调用,因为我既有时间又有日期(在这整个混乱中,更不用说日历了)。我发现,如果我将java.util.Date与ps.setObject一起使用,它做的事情是正确的,并且不会太令人困惑。事实上,我发现如果我想设置int、String或BigDecimal,setObject也会为它们做正确的事情。因此,我的问题是:这是一种不好的做法(如果是这样的话,这是理论上的坏事还是实际上的坏事)并且这样做会对性能造成重大影响吗?

这取决于驱动程序的实现,一些驱动程序将其所有的设置方法都打包在
setObject
上,因此
setObject
做的工作更少。然而,我通常期望
setDate
setObject
做的工作更少

但是,如果
setObject
正在执行您想要的操作,则使用它。如果数据库存在性能问题,则仅当类型存在问题时,将
setObject
setDate
交换才能修复这些问题

例如,最近我遇到了一个问题,数据库希望我使用setDate而不是setTimestamp。这使得
200ms
查询需要
250秒才能完成。将
setObject
替换为
setDate
将在查询中添加不到1ms的时间

其中
setDate
setObject
有一定的好处。是
可读性
代码在这里说我需要一个
日期
,而不是说什么都好