BalusC находится в центре внимания: это не то, как вы должны писать что-то вроде этого.
Connection, Statement и ResultSet представляют конечные ресурсы. Они не похожи на распределение памяти; сборщик мусора не убирает их. Вы должны сделать это в своем коде, например:
// Inside a method
Connection connection = null;
Statement statement = null;
ResultSet rs = null;
try
{
// interact with the database using connection, statement, and rs
}
finally
{
// clean up resources in a finally block using static methods,
// called in reverse order of creation, that don't throw exceptions
close(rs);
close(statement);
close(connection);
}
Но если вы решите перенести это на серверный компонент, у вас обязательно будут огромные проблемы с кодом, подобным этому:
while(rsread.next())
{
Class.forName("com.mysql.jdbc.Driver");
jdbcconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bakme", "root", ""); //connect to database
updsms = jdbcconn.prepareStatement("insert into inbox(sms,phone) values (?,?)");
updsms.setString(1, rsread.getString("Message"));
updsms.setString(2, rsread.getString("Phone"));
updsms.executeUpdate();
}
Регистрация драйвера, создание соединения без его закрытия и многократная подготовка инструкции внутри цикла для каждой строки, которую вы получаете из Access, показывает серьезное неправильное понимание реляционных баз данных и JDBC.
Вы должны зарегистрировать драйвер и создать соединения один раз , сделать то, что нужно, и очистить все ресурсы, которые вы использовали.
Если вы абсолютно ДОЛЖНЫ делать это в JSP, я бы порекомендовал использовать источники данных JNDI для обеих баз данных, чтобы вам не приходилось устанавливать соединения внутри страницы. Вы не должны писать код скриптлета - лучше выучить JSTL и использовать его теги.