hibernate事物

hibernate事务的传播,有三种情况是不可能规避的。第一种脏数据读取,不可重复数据读取,幻读。

脏数据:就是一个事务A处理过一条数据,保存在session中,还没有提交,另一个事务B从session中拿到这条数据,去处理。事务A突然回滚了,这条数据并没有存入数据库中,从而事务B拿到这样一条数据,就称为脏数据。

 

不可重复数据读取:就是事务A对数据库中同一条数据进行两次以上查询,每次查询的结果都不一样。这就叫不可重复读取。例如:事务A读取一条用户信息,根据名字小明,去查小明的年龄。第一次,读取的时候,小明的年龄为22,读取完后,事务B将小明的年龄改为21岁,事务A在去读取的时候,小明的年龄为21岁了。

 

幻读:它其实跟不可冲重复读取类似。它是事务A根据相同条件对数据库进行多次查询,每次查询出来的结果集不一样。例如:事务A根据用户年龄为22的,去查数据库中所有符合的用户。第一次,查询出来的结果集为22个用户,读取完后,事务B插入一个叫小明小伙子,年龄为22岁,事务A再去读取的时候,结果集为23个用户。

 

Hibernate事物隔离级别分为Serializable,Repeatable Read, Read Committed,Read Uncommitted。

                   Read Uncommitted:又称为可读未提交,他可以防止更新丢失,但可能出现脏数据  ,重复读数据,幻读数据。如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。

                Read Committed:又称为可读提交,它可以防止脏数据,但可能出现 重复数据 ,幻读数据。这种事务级别是经常在项目开发中用到的。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。

                Repeatable Read:又称为可重复读取,它可以防止脏数据,重复数据  ,但有可能出现幻读数据。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。

                Serializable:又称为序列化,也就是说数据库中任何一条数据,只要事务A访问它,它就被锁定了,其他事务B,C,D,等都不能并发(同时)访问该条数据,一直到A事务完成对该条数据的操作,事务B,C, D,等才能依次去访问。说白了,就是事务A,B,C,D排队去访问该数据,一个一个来。这种事务级别是最高的,最安全的,但却是最消耗数据库性能的。 

提供了基于BP(Back Propagation)神经网络结合PID(比例-积分-微分)控制策略的Simulink仿真模型。该模型旨在实现对杨艺所著论文《基于S函数的BP神经网络PID控制器及Simulink仿真》中的理论进行实践验证。在Matlab 2016b环境下开发,经过测试,确保能够正常运行,适合学习和研究神经网络在控制系统中的应用。 特点 集成BP神经网络:模型中集成了BP神经网络用于提升PID控制器的性能,使之能更好地适应复杂控制环境。 PID控制优化:利用神经网络的自学习能力,对传统的PID控制算法进行了智能调整,提高控制精度和稳定性。 S函数应用:展示了如何在Simulink中通过S函数嵌入MATLAB代码,实现BP神经网络的定制化逻辑。 兼容性说明:虽然开发于Matlab 2016b,但理论上兼容后续版本,可能会需要调整少量配置以适配不同版本的Matlab。 使用指南 环境要求:确保你的电脑上安装有Matlab 2016b或更高版本。 模型加载: 下载本仓库到本地。 在Matlab中打开.slx文件。 运行仿真: 调整模型参数前,请先熟悉各模块功能和输入输出设置。 运行整个模型,观察控制效果。 参数调整: 用户可以自由调节神经网络的层数、节点数以及PID控制器的参数,探索不同的控制性能。 学习和修改: 通过阅读模型中的注释和查阅相关文献,加深对BP神经网络与PID控制结合的理解。 如需修改S函数内的MATLAB代码,建议有一定的MATLAB编程基础。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值