transaction statement prepared parameter executeupdate example java jdbc

statement - Java JDBC savePoint



sql prepared statement java (2)

Leyendo

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

no está bien explicado qué puntos de salvaguarda se asignan desde la perspectiva de la base de datos.

Cuando se configuran los puntos de rescate, ¿los cambios de la base de datos están disponibles para otras transacciones?

Gracias


Los puntos de guardado no son una característica de JDBC, sino que son una función de DBMS.

Además de la respuesta detallada de Luke, es posible que también desee leer sobre lo que los manuales de DBMS explican acerca de los puntos de rescate

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


Un punto de rescate marca un punto al que la transacción actual puede retroceder. En lugar de retrotraer todos sus cambios, puede optar por retrotraer solo algunos de ellos. Por ejemplo, supongamos que:

  • comenzar una transacción,
  • inserte 10 filas en una tabla,
  • establecer un punto de rescate,
  • inserte otras 5 filas,
  • retroceder al punto de rescate,
  • comprometer la transacción.

Después de hacer esto, la tabla contendrá las primeras 10 filas que insertó. Las otras 5 filas habrán sido eliminadas por la reversión.

Establecer un punto de seguridad no ''guarda'' ningún dato en la base de datos. No hace que los cambios en la base de datos sean visibles para ninguna otra transacción. Un punto de rescate es solo un marcador al que la transacción actual puede retroceder.