Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Базы данных / 10 сообщений из 10, страница 1 из 1
15.11.2015, 12:27
    #39103748
Aliara
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
Добрый день.
Только начинаю разбираться в java и возникло несколько вопросов по базам данных.
1. Что будет происходить, если не закрывать Statement и ResultSet
2. Можно ли несколько раз обращаться к одному Statement?
Например:
Код: java
1.
2.
3.
4.
Statement st = Сonn.createStatement();
ResultSet rs = st.executeQuery("какой-то запрос");
...
st.executeUpdate("какой-то запрос");


3. Если записи в бд были обновлены из программы, но при последующем чтении программа выдает старые записи, это значит, что надо делать commit?
...
Рейтинг: 0 / 0
15.11.2015, 13:29
    #39103769
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
автор1. Что будет происходить, если не закрывать Statement и ResultSet

будет очень плохо
...
Рейтинг: 0 / 0
15.11.2015, 13:36
    #39103772
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
автор2. Можно ли несколько раз обращаться к одному Statement?

можно

автор3. Если записи в бд были обновлены из программы, но при последующем чтении программа выдает старые записи, это значит, что надо делать commit?
да

лень закрывать - используй java8
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
try (Connection con = DriverManager.getConnection(getBase(), getBase_login(), getBase_password());
                CallableStatement proc = con.prepareCall("{call page1_xxx09(" + param + ")}");) {
            rs = proc.executeQuery();
          while(  rs.next()) {

          }
           
        } catch (SQLException ex) {
            Logger.getLogger(SSLServer.class.getName()).log(Level.SEVERE, null, ex);
        }


и не забудь посмотреть кино 18414124
ну и дочитать топик
...
Рейтинг: 0 / 0
15.11.2015, 14:35
    #39103793
Aliara
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
А commit происходит автоматически при закрытии statment? Или его отдельно писать надо?
...
Рейтинг: 0 / 0
15.11.2015, 14:52
    #39103803
chabapok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
Aliara,

1. В какой-то момент закончится свободная память.
2. можно.
3. да, скорей всего commit
...
Рейтинг: 0 / 0
15.11.2015, 15:20
    #39103810
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
AliaraА commit происходит автоматически при закрытии statment? Или его отдельно писать надо?
зависит от настроек базы
...
Рейтинг: 0 / 0
15.11.2015, 15:43
    #39103818
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
вадялень закрывать - используй java8
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
try (Connection con = DriverManager.getConnection(getBase(), getBase_login(), getBase_password());
                CallableStatement proc = con.prepareCall("{call page1_xxx09(" + param + ")}");) {
            rs = proc.executeQuery();
          while(  rs.next()) {

          }
           
        } catch (SQLException ex) {
            Logger.getLogger(SSLServer.class.getName()).log(Level.SEVERE, null, ex);
        }



это же справедливо и для java 7
...
Рейтинг: 0 / 0
15.11.2015, 15:45
    #39103820
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
вадяAliaraА commit происходит автоматически при закрытии statment? Или его отдельно писать надо?
зависит от настроек базы
например, в mysql по умолчанию - автокомит
...
Рейтинг: 0 / 0
15.11.2015, 16:18
    #39103832
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
rema174вадялень закрывать - используй java8
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
try (Connection con = DriverManager.getConnection(getBase(), getBase_login(), getBase_password());
                CallableStatement proc = con.prepareCall("{call page1_xxx09(" + param + ")}");) {
            rs = proc.executeQuery();
          while(  rs.next()) {

          }
           
        } catch (SQLException ex) {
            Logger.getLogger(SSLServer.class.getName()).log(Level.SEVERE, null, ex);
        }



это же справедливо и для java 7
не могу гарантировать...
...
Рейтинг: 0 / 0
15.11.2015, 16:24
    #39103839
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Базы данных
вадя,
тебе гарантировать не обязательно. достаточно, что оракл гарантирует :) только драйвер должен быть не старым, чтобы поддерживать такую фичу.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Базы данных / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]