JavaWeb_vue+elementUI+锁笔记

回顾

ajax(异步,js,xml)

  • 局部更新

  • 异步请求

  • XMLHttpRequest

  • $.get(url, 请求参数, function(data){}, "响应类型")

  • $.post(url, 请求参数, function(data){}, "响应类型")

  • $.ajax({
    	url:请求地址
    	data: 请求参数
    	type: 请求类型 get,post...
    	dataType: 响应类型
    	success:function(data) {
    	
    	},
    	error:function() {
    	
    	}
    });
    

json 转换

  • java 对象和 json字符串之间转换
  • jackson
    • ObjectMapper om = new ObjectMapper();
    • om.writeValueAsString(java对象) => json 字符串
    • om.readValue(json字符串, Java类型.class)
    • om.readValue(json字符串, new TypeReference<泛型>(){})

今日内容

vue view

  • jquery

基本组成

let vm = new Vue({
    el:"选择器:视图是那个标签",
    data:{
        数据名1:1,
        数据名2:2,
        数据名3:3,
        ...
    },
    methods:{
        方法名1(参数列表) {
            this.数据名1
        },
        方法名2(参数列表) {
            
        }
        ...
    }
});

vm.数据名1;
vm.方法名1(参数)   

{{ 数据名1 }} 只适合绑定标签的文本内容

内容
绑定属性
v-bind:属性名="data中数据名"

:属性名="data中数据名"
渲染指令
v-if="条件" 

v-show="条件"
循环指令
v-for="临时变量名 in 数组或对象"
事件指令
v-on:事件名="方法名(参数)"

@事件名="方法名(参数)"

对于 img src 属性,a href 属性,使用单向绑定就可以了(v-bind)

对于表单的属性,建议使用 v-model 双向绑定

1. 表锁和行锁

InnoDB - 行锁,表锁

MyISAM - 表锁

表锁(锁的是整个表)

  • lock tables student read; – 锁住student表,其它事务可以读表,但不能改(共享)
  • lock tables student write; – 锁住student表,其它事务既不能读表,也不能改(排他)
  • 解锁命令 unlock tables;

行锁(锁住表中的行)

  • 需要用事务控制,事务结束时,才会释放锁

  • select * from student where sid=16 for update; --锁住student表中sid=16的这一行,其它事务就不能再向这一行上加锁了(for update, update, insert, delete)

  • select * from student where sid=16 lock in share mode; --锁住student表中sid=16的这一行, 其它事务不能加(for update, update, insert, delete)等互斥锁了,但可以加 share mode 这种共享锁

  • 互斥是防止其它人该,也防止其它人加读锁 lock in share mode

  • 共享是防止其它人该,但允许其他人加读锁 lock in share mode

共享锁与排他锁

2. 悲观锁和乐观锁
  • for update 属于悲观锁
  • 乐观锁(其实不加锁),采用的是一种版本的思想
  • 丢失更新- 开发中会遇到的问题
    • 解决方法1 使用悲观锁
    • 解决方法2 使用乐观锁

丢失更新问题演示

事务1
select sid,name,age into @sid,@name,@age from student where sid=16;
select @sid;
select @name;
select @age;
update student set name=‘张三’, age=@age where sid=@sid;

事务2
select sid,name,age into @sid,@name,@age from student where sid=16;
select @sid;
select @name;
select @age;
update student set name=@name, age=20 where sid=@sid;

用乐观锁解决丢失更新,更新时要加上版本列条件,并且让版本列在原来基础上加1

事务1
select sid,name,age,version into @sid,@name,@age,@version from student where sid=16; – 1
select @sid;
select @name;
select @age;
select @version;
update student set name=‘张小三’, age=@age, version=@version+1 where sid=@sid and version=@version; – version=1

事务2
select sid,name,age,version into @sid,@name,@age,@version from student where sid=16; – 1
select @sid;
select @name;
select @age;
select @version;
update student set name=@name, age=30, version=@version+1 where sid=@sid and version=@version;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值