新手求救,谢谢
新手求救,谢谢
能否帮忙看下下面两个问题:
一:为什么init()方法必须被private?请举例说明。
class Test
{
public Test()
{
init();
}
private void init()
{
…
}
}
二:请找出下面程序的错误
class Test
{
public static void executeQuery( String connectionName, String statementText) throws
SQLException {
Connection connection = null;
try
{
//Get a connection from connection pool
connection = manager.getConnection(connectionName);
Statement statement = connection.createStatement();
ResultSet resultSet =
statement.executeQuery(statementText);
for (int i = 0; resultSet.next(); i++)
{
...
}
resultSet.close();
statement.close();
return ;
}
catch (SQLException e)
{
throw(new SQLException(statementText));
}
}
}
------解决方案--------------------这个看着眼熟,好像问过了的。
------解决方案--------------------init方法不要求是private的。
------解决方案--------------------1。init被申明为private,是为了不让其他类调用。另外,一般初始化操作只做一次,所在放在构造函数中是比较理想的.
2。上面抛出的异常后容易引起递归。
------解决方案--------------------for (int i = 0; resultSet.next(); i++)
{
...
}
while(rs.next)
{
...
}
------解决方案--------------------一、init()可以是public ,
二、 for (int i = 0; resultSet.next(); i++)
{
...
}
该语句会因为游标越界而报错,没有退出循环的条件,resultSet.next()为布尔型变量,而for语句中必须为三个表达式。传统标准写法:
whlie(resultSet.next()){
}