|
|
1
6
我会避免以下情况
PreparedStatement
我会 从不 如果集合仅为空,则返回null。这似乎非常违反直觉,从客户的角度来看完全出乎意料。 我不建议在错误条件下返回null,因为您的客户端必须明确检查这一点(并且可能会忘记)。如果需要,我会返回一个空集合(这可能类似于您对null对象的评论),或者更可能抛出异常(取决于具体情况和严重程度)。该异常非常有用,因为它将携带与遇到的错误相关的一些信息。空告诉你什么也没说。
几点观察。我会用
HashMap
|
|
|
2
8
这似乎不是一个问题,但是的,一旦不再有任何行需要处理,rs.next()就会返回false。
如果“发生了不好的事情”,你接下来要做什么取决于你和你的设计。有宽恕的方法(返回所有可以返回的行)和不宽容的方法(抛出异常)。我倾向于采用“宽容”的方法,因为使用“宽容”方法,用户不会知道你没有返回所有存在的行——只是返回了错误发生前得到的所有行。但宽容的态度可能是有道理的。 回答。首先,这不是所写方法中发生的事情。它将返回一个空的HashTable(这就是“null对象”的意思)。其次,在“未找到结果”的情况下,null并不总是答案。 我看到了null,但我也看到了一个空的结果变量。我声称这两种方法都是正确的,但我更喜欢空结果变量。然而,最好保持一致,所以选择一种返回“无结果”的方法并坚持下去。
如果不查看应用程序的其余部分,这比其他问题更难回答。 |
|
3
4
Null Object Pattern
是一种设计模式,你
总是
原因是,由于它是一个集合,而您的其他代码将以此方式访问它,因此如果您返回一个空集合,它就不会崩溃;它不会被迭代,它不会包含任何令人惊讶的内容,它不会导致抛出NPE:s等等。
确切地说,空对象是类/接口的一种特殊实现,它完全不做任何事情,因此没有任何副作用。因为它不存在的本质
|
|
|
4
3
这使得你的代码容易受到众所周知的安全攻击,
SQL injection
如果你使用
|
|
|
5
2
如果发生错误,则会出现异常。如果没有数据,则返回一个空集合,而不是null。(此外,通常你应该返回更通用的“Map”,而不是具体的实现), |
|
|
6
0
通过使用 Spring-JDBC
春天照顾:
|