数据库事务集合

数据库事务集合,第1张

1.原子性:就是begin开始一个事务后,在commit或rollback前时全部是一个整体,要全部都完成执行才能进行提交---->>>原子性也就是所有是一个整体

2.一致性:事物中有错误的 *** 作所有其他语句不能执行要执行回滚(可能和原子性很像,注意区别开)

3.隔离性:不赘述

4.持久性:提交事务后不可逆 *** 作

connection就相当于数据库 *** 作中打开了一个事务的连接

此示例中包含了事务的一个批处理Batch

思路是一样的,先将预状态通道中的sql语句添加到批处理中进行就绪等待

等待调用预状态通道执行executeBatch()是开始进行批处理更新数据

之后返回一个int型的状态码数组--->>>产生改变的数据库行数

注意:添加到batch中后执行一定是进行Batch,而不是代码中注释的一行错误示范

OracleTransaction类的概述

应用程序通过针对OracleConnection对象调用 BeginTransaction 来创建OracleTransaction对象。对OracleTransaction对象执行与该事务关联的所有后续 *** 作(例如提交或中止该事务)。OracleTransaction的成员主要有:

属性:

Connection,指定与该事务关联的OracleConnection对象;

IsolationLevel,指定该事务的IsolationLevel;枚举类型,用于对事物的锁定,取值有Chaos、ReadCommited、ReadUncommited、RepeatableRead、Serializable、Unspecified。

方法:

Commit,提交SQL数据库事务;

Rollback , 从挂起状态回滚事务;

第一个示例:

public void 函数名称()

{

string strUpdateSql1 = "update 表名 set XH='...' where XH='...' and LCGZ_ID='...'

string strUpdateSql2 = "update 表名 set XH='...' where BZGZ_ID='...'

OracleConnection conn = new OracleConnection()

conn.ConnectionString = "数据库连接字符串"

conn.Open()

OracleTransaction updateProcess = conn.BeginTransaction()try

{

OracleCommand comm1 = conn.CreateCommand()

comm1.CommandText = strUpdateSql1

comm1.Transaction = updateProcess

comm1.ExecuteNonQuery() OracleCommand comm2 = conn.CreateCommand()

comm2.CommandText = strUpdateSql2

comm2.Transaction = updateProcess

comm2.ExecuteNonQuery() updateProcess.Commit()

}

catch()

{

updateProcess.Rollback()

}

finally

{

conn.Close()

}

}

第二个示例:

public static bool 函数名2(int fID)

{

OracleConnection conn = new OracleConnection()

conn.ConnectionString = "数据库连接字符串"

conn.Open()

OracleTransaction deleteProcess = conn.BeginTransaction() try

{

ArrayList alObjects = GetObjects()

foreach(object o in alObjects)

{

OracleCommand tmpComm = conn.CreateCommand()

tmpComm.Transaction = deleteProcess

tmpComm.CommandText = "delete from 表1名 where BZGZ_ID="+o.ID

tmpComm.ExecuteNonQuery() OracleCommand tmpComm2 = conn.CreateCommand()

tmpComm2.Transaction = deleteProcess

tmpComm2.CommandText = "delete from 表2名 where BZGZ_ID="+o.ID

tmpComm2.ExecuteNonQuery()

}

OracleCommand comm = conn.CreateCommand()

comm.Transaction = deleteProcess

comm.CommandText = "delete from 表3名 where LCGZ_ID="+fID

comm.ExecuteNonQuery() deleteProcess.Commit()

return true

}

catch()

{

deleteProcess.Rollback()

return false

}

finally

{

conn.Close()

}

事务是作为一个单元的一组有序的数据库 *** 作。如果组中的所有 *** 作都成功, 则认为事务成功,即使只有一个 *** 作失败,事务也不成功。如果所有 *** 作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个 *** 作失败,则事务将回滚,该事务所有 *** 作的影响都将取消。

这就是数据库中的事务了,关于数据库的更多知识,推荐你看黑马程序员视频库的视频,能学到很多知识哦!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6936377.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-30
下一篇2023-03-30

发表评论

登录后才能评论

评论列表(0条)

    保存