在用 Java 处理 SQL 事务的类中,我发现自己一直在使用类 PreparedStatement 和 ResultSet。
我很想知道在 Java 中什么是更好(更有效)的实践;将它们声明为类的成员......
class SqlThingy {
PreparedStatement pstx;
ResultSet rs;
public void SqlThingyMethod() {
pstx = database.connection.prepareStatement("...");
....
}
}
... 还是作为单个方法的局部变量?
class SqlThingy {
public void SqlThingyMethod() {
PreparedStatement pstx;
ResultSet rs;
pstx = database.connection.prepareStatement("...");
}
}
VM 只是用(引用)新的准备语句覆盖类成员的内容,还是会做一些额外的初始化,同时也声明资源,甚至消除每次分配局部变量的差异?
最佳答案
一定要区分变量和它们指向的对象。作为一般原则,不要重复使用变量来指向不同的对象。这是非常容易出错的。
在您的特定示例中,由于您在每次调用 SqlThingyMethod
时都重新创建连接对象,因此将其存储在字段中可能没有任何好处。使用局部变量。
变量很便宜。对象,如果不是非常昂贵,那么便宜。在这种情况下,对象实际上可能很昂贵,但变量却不是。
关于java - Java中的变量重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35340800/