Советы по открытию и закрытию базы данных - PullRequest
0 голосов
/ 22 декабря 2011

Я занимаюсь разработкой простого проекта базы данных. У него есть некоторые функции, которые будут выполняться в базе данных. Мне нужен совет по открытию и закрытию базы данных. Какой путь лучше ниже?

Когда программа запустится, откройте базу данных и закройте, когда программа завершится.

Когда программа запускается, когда вызывается функция, открывается база данных, а в конце этой функции закрывается база данных.

Я запутался, для кого лучше. В первом случае база данных будет открыта во время работы программы. Во втором случае операция открытия и закрытия базы данных будет выполняться при каждом вызове функции, а также для каждой функции. Это снизит эффективность, а также сделает код длиннее.

Так какой из них лучше?

Ответы [ 3 ]

1 голос
/ 22 декабря 2011

Лучше субъективно.Если у вас есть только несколько клиентов, подключающихся к базе данных, на короткие промежутки времени, возможно, лучше оставить соединение открытым.Однако, если у вас есть сотни клиентов, которым требуются соединения, существует ограниченное число одновременных соединений, которые могут поддерживаться, поэтому держать соединение открытым в течение длительных периодов будет вредно.

При открытии и закрытии соединений возникают накладные расходы.к базе данных, но вы должны сопоставить это с тем, действительно ли язык объединяет для вас соединения, поэтому создается впечатление, что соединение закрыто, но при необходимости будет повторно использовано и, если оно действительно не закрыто, через некоторое время, и многими другими возможными критериями..

Лучшее - это то, что отвечает вашим потребностям в простейшей форме обслуживания.

0 голосов
/ 22 декабря 2011

Очень мало затрат на то, чтобы оставить соединение открытым дольше, чем это необходимо, поэтому вы бы предпочли, чтобы ваша идея открывалась при запуске и закрывалась при выходе из программы.

0 голосов
/ 22 декабря 2011

Создайте отдельную функцию, например getConnection(), которая будет создавать и возвращать объект Connection. Поместите туда весь свой код, который создаст соединение.

теперь, если в какой-либо функции вам нужен вызов соединения с базой данных getConnection()

public void myfunction()
{
    javax.sql.Connection con = MyConnectionClass.getConnection();
    con.open();

    // do your business logic here

    con.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...