Java JDBC savePoint - PullRequest
       2

Java JDBC savePoint

9 голосов
/ 02 сентября 2011

Чтение

http://download.oracle.com/javase/6/docs/api/java/sql/Savepoint.html

неясно прописано, какие точки сохранения отображаются с точки зрения базы данных.

Когда заданы точки сохранения, доступны ли изменения базы данных?на другие транзакции?

Спасибо

Ответы [ 2 ]

15 голосов
/ 03 сентября 2011

Точка сохранения отмечает точку, к которой текущая транзакция может вернуться.Вместо того, чтобы откатывать все свои изменения назад, он может откатить только некоторые из них.Например, предположим, что вы:

  • начинаете транзакцию,
  • вставляете 10 строк в таблицу,
  • устанавливаете точку сохранения,
  • вставляете другую5 строк,
  • откат до точки сохранения,
  • принятие транзакции.

После этого таблица будет содержать первые 10 вставленных строк.Остальные 5 строк будут удалены при откате.

Установка точки сохранения не сохраняет данные в базе данных.Это не делает изменения базы данных видимыми для любой другой транзакции.Точка сохранения - это просто маркер, к которому текущая транзакция может откатиться.

3 голосов
/ 03 сентября 2011

Точки сохранения не являются функцией JDBC, они являются функцией СУБД.

В дополнение к подробному ответу Люка вы можете также прочитать о том, что руководства СУБД объясняют относительно точек сохранения

http://www.postgresql.org/docs/current/static/sql-savepoint.html
http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10001.htm#BABFIJGC
http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0003271.html
http://msdn.microsoft.com/en-us/library/ms188378.aspx
http://dev.mysql.com/doc/refman/5.5/en/savepoint.html

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