当前位置: 首页 > news >正文

网站建设项目有哪些个人网站开发流程

网站建设项目有哪些,个人网站开发流程,海口网站建设哪个好薇,兰州网站设计公司有哪些1. 事务管理 1.1 事务回顾 在数据库阶段我们已学习过事务了#xff0c;我们讲到#xff1a; 事务是一组操作的集合#xff0c;它是一个不可分割的工作单位。事务会把所有的操作作为一个整体#xff0c;一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功我们讲到 事务是一组操作的集合它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功要么同时失败。 怎么样来控制这组操作让这组操作同时成功或同时失败呢此时就要涉及到事务的具体操作了。 事务的操作主要有三步 开启事务一组操作开始前开启事务start transaction / begin ; 提交事务这组操作全部成功后提交事务commit ; 回滚事务中间任何一个操作出现异常回滚事务rollback ; 1.2 Spring事务管理 1.2.1 案例 简单的回顾了事务的概念以及事务的基本操作之后接下来我们看一个事务管理案例解散部门 解散部门就是删除部门 需求当部门解散了不仅需要把部门信息删除了还需要把该部门下的员工数据也删除了。 步骤 根据ID删除部门数据 根据部门ID删除该部门下的员工 代码实现 DeptServiceImpl Slf4j Service public class DeptServiceImpl implements DeptService {Autowiredprivate DeptMapper deptMapper; ​Autowiredprivate EmpMapper empMapper; ​ ​//根据部门id删除部门信息及部门下的所有员工Overridepublic void delete(Integer id){//根据部门id删除部门信息deptMapper.deleteById(id); ​//删除部门下的所有员工信息empMapper.deleteByDeptId(id);   } } DeptMapper Mapper public interface DeptMapper {/*** 根据id删除部门信息* param id   部门id*/Delete(delete from dept where id #{id})void deleteById(Integer id); } EmpMapper Mapper public interface EmpMapper { ​//根据部门id删除部门下所有员工Delete(delete from emp where dept_id#{deptId})public int deleteByDeptId(Integer deptId);} 重启SpringBoot服务使用postman测试部门删除 代码正常情况下dept表和Em表中的数据已删除 修改DeptServiceImpl类中代码添加可能出现异常的代码 Slf4j Service public class DeptServiceImpl implements DeptService {Autowiredprivate DeptMapper deptMapper; ​Autowiredprivate EmpMapper empMapper; ​ ​//根据部门id删除部门信息及部门下的所有员工Overridepublic void delete(Integer id){//根据部门id删除部门信息deptMapper.deleteById(id);//模拟异常发生int i 1/0; ​//删除部门下的所有员工信息empMapper.deleteByDeptId(id);   } } 重启SpringBoot服务使用postman测试部门删除 查看数据库表 删除了2号部门 2号部门下的员工数据没有删除 以上程序出现的问题即使程序运行抛出了异常部门依然删除了但是部门下的员工却没有删除造成了数据的不一致。 1.2.2 原因分析 原因 先执行根据id删除部门的操作这步执行完毕数据库表 dept 中的数据就已经删除了。 执行 1/0 操作抛出异常 抛出异常之前下面所有的代码都不会执行了根据部门ID删除该部门下的员工这个操作也不会执行 。 此时就出现问题了部门删除了部门下的员工还在业务操作前后数据不一致。 而要想保证操作前后数据的一致性就需要让解散部门中涉及到的两个业务操作要么全部成功要么全部失败 。 那我们如何让这两个操作要么全部成功要么全部失败呢 那就可以通过事务来实现因为一个事务中的多个业务操作要么全部成功要么全部失败。 此时我们就需要在delete删除业务功能中添加事务。 在方法运行之前开启事务如果方法成功执行就提交事务如果方法执行的过程当中出现异常了就回滚事务。 思考开发中所有的业务操作一旦我们要进行控制事务是不是都是这样的套路 答案是的。 所以在spring框架当中就已经把事务控制的代码都已经封装好了并不需要我们手动实现。我们使用了spring框架我们只需要通过一个简单的注解Transactional就搞定了。 1.2.3 Transactional注解 Transactional作用就是在当前这个方法执行开始之前来开启事务方法执行完毕之后提交事务。如果在这个方法执行的过程当中出现了异常就会进行事务的回滚操作。 Transactional注解我们一般会在业务层当中来控制事务因为在业务层当中一个业务功能可能会包含多个数据访问的操作。在业务层来控制事务我们就可以将多个数据访问操作控制在一个事务范围内。 Transactional注解书写位置 方法 当前方法交给spring进行事务管理 类 当前类中所有的方法都交由spring进行事务管理 接口 接口下所有的实现类当中所有的方法都交给spring 进行事务管理 接下来我们就可以在业务方法delete上加上 Transactional 来控制事务 。 Slf4j Service public class DeptServiceImpl implements DeptService {Autowiredprivate DeptMapper deptMapper; ​Autowiredprivate EmpMapper empMapper; ​OverrideTransactional  //当前方法添加了事务管理public void delete(Integer id){//根据部门id删除部门信息deptMapper.deleteById(id);//模拟异常发生int i 1/0; ​//删除部门下的所有员工信息empMapper.deleteByDeptId(id);   } } 在业务功能上添加Transactional注解进行事务管理后我们重启SpringBoot服务使用postman测试 添加Spring事务管理后由于服务端程序引发了异常所以事务进行回滚。 说明可以在application.yml配置文件中开启事务管理日志这样就可以在控制看到和事务相关的日志信息了 #spring事务管理日志 logging:level:org.springframework.jdbc.support.JdbcTransactionManager: debug
http://www.pierceye.com/news/932845/

相关文章:

  • 华为官方网站进入wordpress单页增加分页
  • 互动营销型网站建设大型网站建设开发设计公司
  • 锦州建设局网站商城网站建设方案电子版
  • 网站上删除信息如何做飞虎队网站建设
  • 中国有多少个网站网站做视频一个月有多少钱收入
  • 网站文字大小普洱市建设局网站
  • 兰州网站建设小程序凡客网站目录优化
  • 宿州科技网站建设一站式网站管家
  • 网站开发模块学些什么郑州网站建设动态
  • 各类设计型网站wordpress 防注入
  • 网站中有一个非常著名的原则如何与老板谈网站建设
  • 免费十八种禁用网站如何做一个网页布局
  • cms仿站pc网站案例
  • dede如何做手机网站哪些客户需要做网站
  • 阜蒙县建设镇官方网站那种网站2021
  • 同信.长春网站建设北京网站建设策划
  • 长沙游戏网站开发开发人员公众号
  • 用手机能建网站吗软件商店软件下载
  • 天津自助建站哪个建设网站
  • 西宁市网站建设公司推荐网站全网建设 莱芜
  • 安徽阜阳网站建设公司wordpress网页自适应屏幕大小
  • 上海门户网站的亮点网站开发平台及常用的开发工具
  • 广州h5设计网站公司网站建设从建立服务器开始
  • 如何网站建设全包12306网站多钱做的
  • 阳江北京网站建设中国平面设计在线
  • 上海城乡建设中级职称报名网站合肥网站建设之4个细节要注意事项
  • 洮南网站建设哪家好鞍山信息港招聘信息网
  • 大气手机网站wordpress 添加设置
  • 公司创建网站销售wordpress缩略图支持外链图
  • php网站开发案例教程 dvdwordpress淘宝客自适应模板