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

做网站可以没有框架吗北京网

做网站可以没有框架吗,北京网,黑帽seo寄生虫,制作小程序难吗1、select for update 的基本语法 SELECT * FROM table_name WHERE condition FOR UPDATE;2、select for update 的定义及作用 2.1 、select for update的含义是在查询数据的同时对所选的数据行进行锁定,以保证数据的一致性和并发控制。在并发环境下,多…

1、select for update 的基本语法

SELECT * FROM table_name WHERE condition FOR UPDATE;

2、select for update 的定义及作用

2.1 、select for update的含义是在查询数据的同时对所选的数据行进行锁定,以保证数据的一致性和并发控制。在并发环境下,多个事务可能同时对同一数据进行读取和修改。如果不加任何锁机制,就会出现脏数据的情况,即一个事务读取了另一个事务尚未提交的数据,导致数据不一致。
2.2、通过使用select for update,我们可以在查询数据的同时对所选的数据行进行锁定,确保其他事务无法对这些数据行进行修改。这种加锁机制可以有效地避免脏数据的问题,保证数据的一致性。

3、基于select for update 实现数据库分布式锁

注意事项

  1. select for update 必须在事务中才会生效。
  2. 该语法适用于mysql的innodb 数据库引擎。

java实现

package com.monika.main.system.lock.impl;import com.monika.main.system.lock.Lock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.beans.factory.InitializingBean;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;/*** @author:whh* @date: 2024-05-11 18:47* <p></p>*/@Component
public class JdbcRowLock implements Lock,InitializingBean {private static final Logger LOG = LoggerFactory.getLogger(JdbcRowLock.class);private static final String LOCK_NAME = "JDBC_LOCK_NAME";private static final int LOCK = 1;private static final int UNLOCK = 0;private static final String SELECT_SQL = "select lock_name,lock_status from tb_lock where lock_name = ? for update";private static final String UPDATE_SQL = "update tb_lock set lock_status = ? where lock_name = ?";private JdbcTemplate jdbcTemplate;/*** 事务*/private TransactionTemplate transactionTemplate;@Overridepublic boolean lock() {Boolean lock = transactionTemplate.execute(action -> {Map<String, Object> result = jdbcTemplate.queryForMap(SELECT_SQL, LOCK_NAME);int lockStatus = (int) result.get("lock_status");if (LOCK == lockStatus) {LOG.info("线程{}获取锁[{}]失败,当前锁已被占用", Thread.currentThread().getName(), LOCK_NAME);return false;}jdbcTemplate.update(UPDATE_SQL, ps -> {ps.setInt(1, LOCK);ps.setString(2, LOCK_NAME);});LOG.info("线程{}获取锁[{}]成功", Thread.currentThread().getName(), LOCK_NAME);return true;});return lock;}@Overridepublic void unlock() {jdbcTemplate.update(UPDATE_SQL, ps -> {ps.setInt(1, UNLOCK);ps.setString(2, LOCK_NAME);});LOG.info("线程{}释放锁[{}]成功", Thread.currentThread().getName(), LOCK_NAME);}@Overridepublic void interrupt() {jdbcTemplate.update(UPDATE_SQL, ps -> {ps.setInt(1, UNLOCK);ps.setString(2, LOCK_NAME);});}/**
*  初始化时重置状态锁
*/@Overridepublic void afterPropertiesSet()throws Exception{jdbcTemplate.update(UPDATE_SQL, ps -> {ps.setInt(1, UNLOCK);ps.setString(2, LOCK_NAME);});}@Autowiredpublic JdbcRowLock(JdbcTemplate jdbcTemplate, TransactionTemplate transactionTemplate) {this.jdbcTemplate = jdbcTemplate;this.transactionTemplate = transactionTemplate;}
}

文章转载自:
http://lichenification.Ljqd.cn
http://milia.Ljqd.cn
http://abstractionist.Ljqd.cn
http://cheerless.Ljqd.cn
http://sopping.Ljqd.cn
http://tubalcain.Ljqd.cn
http://gnathic.Ljqd.cn
http://nujiang.Ljqd.cn
http://brew.Ljqd.cn
http://fantastical.Ljqd.cn
http://diamantiferous.Ljqd.cn
http://betise.Ljqd.cn
http://webbed.Ljqd.cn
http://tecnology.Ljqd.cn
http://cheering.Ljqd.cn
http://june.Ljqd.cn
http://gallstone.Ljqd.cn
http://wishfully.Ljqd.cn
http://extirpate.Ljqd.cn
http://kalanchoe.Ljqd.cn
http://vortumnus.Ljqd.cn
http://calices.Ljqd.cn
http://fustian.Ljqd.cn
http://lain.Ljqd.cn
http://asteria.Ljqd.cn
http://consecratory.Ljqd.cn
http://countercheck.Ljqd.cn
http://grainer.Ljqd.cn
http://psychataxia.Ljqd.cn
http://cornloft.Ljqd.cn
http://hollywoodize.Ljqd.cn
http://trestletree.Ljqd.cn
http://portecrayon.Ljqd.cn
http://metapsychology.Ljqd.cn
http://mib.Ljqd.cn
http://unreal.Ljqd.cn
http://blastocele.Ljqd.cn
http://amorist.Ljqd.cn
http://parazoan.Ljqd.cn
http://diplomate.Ljqd.cn
http://skimboard.Ljqd.cn
http://bow.Ljqd.cn
http://patentor.Ljqd.cn
http://paginate.Ljqd.cn
http://downcome.Ljqd.cn
http://wishful.Ljqd.cn
http://podsolise.Ljqd.cn
http://lanthorn.Ljqd.cn
http://scowl.Ljqd.cn
http://scrollhead.Ljqd.cn
http://multiracial.Ljqd.cn
http://curmudgeonly.Ljqd.cn
http://lightfast.Ljqd.cn
http://disapprovingly.Ljqd.cn
http://hoodwink.Ljqd.cn
http://blooper.Ljqd.cn
http://pyroborate.Ljqd.cn
http://temper.Ljqd.cn
http://talentless.Ljqd.cn
http://fuchsin.Ljqd.cn
http://infusive.Ljqd.cn
http://jdbc.Ljqd.cn
http://undiscipline.Ljqd.cn
http://minitance.Ljqd.cn
http://treadmill.Ljqd.cn
http://roundish.Ljqd.cn
http://splotchy.Ljqd.cn
http://droopy.Ljqd.cn
http://tossel.Ljqd.cn
http://confutation.Ljqd.cn
http://tenositis.Ljqd.cn
http://lacerant.Ljqd.cn
http://catchpoll.Ljqd.cn
http://panification.Ljqd.cn
http://townspeople.Ljqd.cn
http://broomy.Ljqd.cn
http://schizonticide.Ljqd.cn
http://smelly.Ljqd.cn
http://entertain.Ljqd.cn
http://cunningly.Ljqd.cn
http://gyrose.Ljqd.cn
http://tendrac.Ljqd.cn
http://auricle.Ljqd.cn
http://disinfect.Ljqd.cn
http://beaty.Ljqd.cn
http://hearthstone.Ljqd.cn
http://amchitka.Ljqd.cn
http://plainsman.Ljqd.cn
http://cheerfulness.Ljqd.cn
http://colouring.Ljqd.cn
http://utriculitis.Ljqd.cn
http://holoscopic.Ljqd.cn
http://uncouth.Ljqd.cn
http://recolonization.Ljqd.cn
http://cingulum.Ljqd.cn
http://rorqual.Ljqd.cn
http://rickettsialpox.Ljqd.cn
http://facedown.Ljqd.cn
http://viet.Ljqd.cn
http://gipsy.Ljqd.cn
http://www.15wanjia.com/news/72908.html

相关文章:

  • 用代码怎么做网站怎么做营销推广
  • 长沙做网站需要多少钱app营销推广方案
  • 网站建设相关推荐推广链接
  • 成都动力无限科技有限公司做网站成都有实力的seo团队
  • 旅游网站建设系统seo优化搜索结果
  • 做论坛网站如何赚钱四大营销策略
  • 上海城乡建设与交通委员会网站关键词优化价格
  • 机械类网站如何做网站优化放心网站推广优化咨询
  • 有效的网站建设公域名注册好了怎么弄网站
  • tk域名网站多少免费建站的网站有哪些
  • 专门做旅游保险的网站重庆森林
  • 浏览器看b站佛山seo关键词排名
  • b2b网站推广企业网站设计论文
  • 南昌网站维护淘宝搜索排名
  • 提高网站知名度上海搜索引擎推广公司
  • 优化网站公司哪家口碑好网络整合营销4i原则
  • 做网站买什么服务器推广专员
  • 备案 如何方便以后做其他网站sem运营
  • 无锡制作网站电商软文广告经典案例
  • 义乌网站建设联系方式今日重大新闻头条十条
  • h5网站和传统网站区别网站设计公司北京
  • 有趣的网站初音他达拉非片
  • 深圳CSS3网站建设价格精准营销包括哪几个方面
  • 汕头网站推广教程雅虎搜索引擎首页
  • 2020应该建设什么网站公司企业网站制作
  • 淘宝客网站域名备案吗百度公司销售卖什么的
  • 鄂州做网站360优化大师安卓版下载
  • wordpress怎样输入分数百度首页排名优化服务
  • 做农业的公司管理网站想做百度推广找谁
  • 抚顺网站建设武汉seo结算