摘要: web.xml struts.xml 工作原理: 1、在浏览器中输入http://localhost:8080/Struts2Demo/hello,就会向服务器端(tomcat)发送一个请求 2、tomcat会解析URL,从中找到一个webApplication(可理解为即项目名)为Struts2D 阅读全文
posted @ 2017-02-23 17:26 Faron 阅读(15588) 评论(0) 推荐(3) 编辑
摘要: IntelliJ IDEA 的Project structure可以在File->Project structure中打开,同时,在新建项目是IDE一般用向导的方式让你填写Project structure相关内容。在说明如何填写之前,先说说这些项都代表什么,包含Project、module、lib 阅读全文
posted @ 2017-02-23 17:24 Faron 阅读(3132) 评论(0) 推荐(0) 编辑
摘要: 在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。 无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种 阅读全文
posted @ 2017-02-23 12:09 Faron 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 排他锁【X锁】又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A, 阅读全文
posted @ 2017-02-23 11:32 Faron 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op 阅读全文
posted @ 2017-02-23 11:30 Faron 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 一、多个事务并发时可能遇到的问题 两类更新丢失的举例 写操作没加“持续-X锁”,没能阻止事务B写,发生了回滚覆盖。 写操作加了“持续-X锁”,读操作加了“临时-S锁”,没能阻止事务B写,发生了提交覆盖。 二、事务隔离级别 为了解决多个事务并发会引发的问题,进行并发控制。数据库系统提供了四种事务隔离级 阅读全文
posted @ 2017-02-23 10:52 Faron 阅读(1458) 评论(0) 推荐(0) 编辑