当前位置: 首页 > 面试题库 >

Java ResultSet,SetObject与SetString / SetDate / etc

高英彦
2023-03-14
问题内容

我想知道PreparedStatement.setObject在准备语句时是否有人认为对所有数据类型使用都是不好的做法。一个用例是带有通用executeQuery()方法的DAO,可以将其重新用于所有查询,而不必担心其数据类型。


问题答案:

您可以这样做。

例如

preparedStatement = connection.prepareStatement(SQL_INSERT);
SqlUtil.setValues(preparedStatement, user.getName(), user.getPassword(), user.getAge());

public static void setValues(PreparedStatement preparedStatement, Object... values) throws SQLException {
    for (int i = 0; i < values.length; i++) {
        preparedStatement.setObject(i + 1, values[i]);
    }
}

JDBC驱动程序将进行类型检查。唯一的缺点可能是(较小的)开销,但是与最终得到更好维护的代码相比,这可以忽略不计。同样,大多数ORM框架(例如Hibernate
/ JPA)也使用了深层的内容。



 类似资料:
  • setDate() 方法 设置月份的某一天 语法: dateObject.setDate( day ) 参数说明: day -- 表示一个月中的一天的一个数值( 1 ~ 31 ) 返回值: 调整过的日期的毫秒表示。在 ECMAScript 标准化之前,该方法什么都不返回。 说明: 该方法总是结合一个 Date 对象来使用。 示例: var DATE = new Date(); con

  • 描述 (Description) setDate()方法根据本地时间设置指定日期的月中某天。 语法 (Syntax) 下面给出了setDate()方法的语法。 Date.setDate dayValue 例子 (Example) 以下示例演示了CoffeeScript中setDate()方法的用法。 将此代码保存在名为date_setdate.coffee的文件中。 dt = new Date

  • 描述 (Description) setDate()方法根据本地时间设置指定日期的月中某天。 语法 (Syntax) 下面给出了setDate()方法的语法。 Date.setDate dayValue 例子 (Example) 以下示例演示了CoffeeScript中setDate()方法的用法。 将此代码保存在名为date_setdate.coffee的文件中。 dt = new Date

  • JavaScript日期setDate()方法根据本地时间设置指定日期的月中某天。 语法 (Syntax) Date.setDate( dayValue ) 参数 (Parameter) dayvalue - 1到31之间的整数,表示该月的某天。 例子 (Example) var dt = new Date( "Aug 28, 2008 23:30:00" ); dt.setDat

  • 我们的PL/SQL数据库有三个数字变量,分别表示确切的日期、月份和年份。 我想在Java中将这些值读入一个字符串来显示,但是rs.getString(“[Number_字段]”)会显示一个“Invalid Column Name”异常,而rs.getInt(“[Number_字段]”)会执行相同的操作(见下面的代码段)。而且,因为单词“number”被用来描述编码历史上创建的每一个字符串转换,所以

  • 问题内容: 如标题中所示:可以肯定的是,我正在调试我的应用程序,因此在将字符串放入PreparedStatement变量中的地方,特殊字符更改为“?”。我实际上不知道在哪里搜索应该修复的东西,所以我不知道是否需要代码。无论如何,我会在这里放一些: 虽然在方法对象中调试“名称”字段是正确的,但是将其添加到stm变量后,它将其字符更改为“?”。 我已经找到了一个关于SO上类似西他那肽的话题,但是没有任