更新

mysql 多表联合更新

帅比萌擦擦* 提交于 2019-12-07 03:04:50
方法一: UPDATE yiyao_prs.prs_image_detail LEFT JOIN yiyao_prs.prs_prescription_app ON prs_image_detail.IMAGE_ID = prs_prescription_app.IMAGE_ID SET IS_MAIN='1' WHERE prs_prescription_app.SOURCE IN ('6','7','8','12') 更新更新app上传的图片 使用连接方式,性能如下 方法二 UPDATE yiyao_prs.prs_image_detail SET IS_MAIN = '1' WHERE IMAGE_ID IN ( SELECT a.IMAGE_ID FROM yiyao_prs.prs_prescription_app a WHERE a.SOURCE IN ('6', '7', '8', '12') ) 性能如下 推荐使用方法一进行多表更新 来源: oschina 链接: https://my.oschina.net/u/1790478/blog/710112

简短总结一下C#里跨线程更新UI

前提是你 提交于 2019-12-07 01:27:06
跨线程更新UI是写多线程程序尤其是通信类的程序经常遇到的问题,这里面主要的问题是冲突,比如数据线程想要更新UI的时候,用户同时也在更新UI,就会出现争用。C#里可以用 Control . CheckForIllegalCrossThreadCalls = false ; 来关闭跨线程检测。但是这样做有一定的风险,容易让程序崩溃。 最好的办法是通过Invoke,这篇博客只是提供一个示例,至于那些线程同步、Invoke和BeginInvoke,Invoke底层实现神马的,有空再说吧。 一个简单的例子如下:(注,Form1 加入了一个名为txt的TextBox) using System ; using System . Collections . Generic ; using System . ComponentModel ; using System . Data ; using System . Drawing ; using System . Linq ; using System . Text ; using System . Windows . Forms ; using System . Threading ; namespace testThread { public partial class Form1 : Form { private delegate void

android sdk manager无法更新

徘徊边缘 提交于 2019-12-04 23:55:36
问题描述: Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示。 解决方法: 第一,我们先修改下hosts文件。该文件的位置在系统盘(一般为C盘),具体路径为: C:\Windows\System32\ drivers\etc\hosts。找到该文件后,我们需要对该文件进行修改,可能有些同学发现会修改不了文件,这可能是因为hosts文件被设置成了 只读属性,我们可以将其只读属性取消掉,如图1,在文件属性中,将图1中的勾取消掉即可。 图1 hosts文件的属性框 再次打开hosts文件,在其尾部空白处添加下列代码,保存即可: #Google主页 203.208 . 46.146 www . google . com #这行是为了方便打开Android开发官网 现在好像不VPN也可以打开 74.125 . 113.121 developer . android . com #更新的内容从以下地址下载 203.208 . 46.146 dl . google . com 203.208 . 46.146 dl - ssl . google . com 第二, 在Android SDK Manager的Tool->Option选项中把https的资源获取方式强制换成http协议获取的方式。如图2所示: 图2 修改 Android SDK

nutch与起点R3集成之笔记(四)

自闭症网瘾萝莉.ら 提交于 2019-12-03 23:05:32
通过“ nutch与起点R3集成之笔记(一、二、 三)”中的步骤,我们可以建立起一个行业内部网的搜索引擎,但搜索引擎一个最重要的功能,就是必须能搜索到网络中最新的内容。这就要求nutch能及时采集到网络中的最新网页信息,同时将这些新采集到的信息更新到solr索引库中。故本篇介绍如何实现索引的更新和去重问题。 我们随时可以使用nutch的crawl命令来爬行网站,例如,今天上午8:00采集一次新浪网站 http://www.sina.com.cn ,并通过nutch 的solrindex索引到solr索引库中,然后上午10:00再采集一次新浪网站,再通过solrindex索引到solr库中。这样做,可以保证用户能搜索到网络中较新的信息。在solr中实现没有什么问题,因为solr使用的是update方式更新索引库,因为索引field名为id的是主键,只要id是唯一的,update到索引库的操作就是成功的。 我们回过头来看看 《nutch与起点R3集成之笔记(二)》,在该篇中,我们是定义了用digest作为id,而没有采用在nutch的conf 的solrconfig.xml中定义用url作为id。其原因在于,如果用url作为id,在起点R3中会出现看不到索引数据等一些问题,我分析了很久,估计是由于url中会出现: / ? & 字符,这些字符不通过escape转换

通过shell脚本自动更新tomcat

那年仲夏 提交于 2019-12-03 15:34:09
我们更新服务器的tomcat一般有一下步骤:1、停止tomcat。2、备份配置文件。3、上传war包。4、配置文件还原。5、重启tomcat。这些步骤虽然简单但是,如果重复很多次还是会感觉浪费时间。根据DRY(Don't Repeat Yourself)原则,所以决定写脚本一次完成。 具体脚本如下: echo ++++++++++Created by xuzhongxing 2016-03-24++++++++++++++++ echo -------自动更新开始--------- #变量定义 #包相关定义 WAR_FILE_PATH=/home/lvyx/UpdateWar/dev-qdbaWar WAR_FILE_NAME=client_web.war UNZIP_PATH=/home/lvyx/apache-tomcat-dev-qdba/webapps/ROOT #查找进程的关键字 PID_MSG=apache-tomcat-dev-qdba #需要备份的文件夹和文件 APP_FILE_PATH1=/home/lvyx/apache-tomcat-dev-qdba/webapps/ROOT APP_FILE_NAME1=jdbc.properties APP_FILE_NAME2=redis.properties #存放备份文件的文件夹 OLD_FILE_PATH=

windows批处理实现自动更新部署Web项目

吃可爱长大的小学妹 提交于 2019-12-03 03:10:37
根据 windows守护tomcat的bat批处理脚本 增强功能 原理:发现webapps目录下有新的ROOT.war包进行解压替换,重启tomcat @echo off setlocal enabledelayedexpansion set TOMCAT_HOME=C:\utils\apache-tomcat-7.0.65 set TOMCAT_PORT=8080 :RESTART cd %TOMCAT_HOME%\webapps if exist ROOT.war ( move /y ROOT.war ROOT cd ROOT start /wait "" "C:\Program Files\WinRAR\WinRAR.exe" x -y ROOT.war for /f "delims= tokens=1" %%i in ('netstat -aon ^| findstr "%TOMCAT_PORT%"') do ( set a=%%i taskkill /pid "!a:~71,5!" ) ) cd /d %~dp0 netstat -an | find /C "0.0.0.0:%TOMCAT_PORT%" > temp.txt set /p num=<temp.txt del /F temp.txt if %num%==0 ( start /D "%TOMCAT_HOME%

quick-cocos2d-x基于源码加密打包功能的更新策略(3)

一笑奈何 提交于 2019-12-02 04:20:06
前篇: quick-cocos2d-x基于源码加密打包功能的更新策略(1) quick-cocos2d-x基于源码加密打包功能的更新策略(2) 三、更新流程说明及特性分析 A.更新流程 加载初始安装包,载入旧资源列表 取最新资源列表文件,载入新资源列表 比较两个资源列表版本,如果一致,跳到第8步;以下流程中如果有误也跳到第8步 根据新资源列表检查现有文件,逐一下载新增或者有变化的文件,并加.upd后缀保存 每个下载的文件在保存后马上进行一次校验 所有文件下载完成,更新本地资源列表文件,用新列表替换旧列表 将下载的文件去掉.upd后缀,覆盖旧的文件 根据资源列表再校验一遍资源文件 第8步正确,则按资源列表的指示载入相关资源,启动程序(新版本) 第8步有错,说明资源列表与资源文件不匹配,删除本地资源列表文件(保证下次启动时重新更新资源),启动程序(原始安装版本) B.安全性 可以看出在第6步之前,即使出错,也不会破坏原来的文件。跳到第8步后,一般能够以上一个更新成功的版本启动,除非上一个版本被用户破坏。 第6步和第7步出错,会造成资源列表与资源文件不匹配,跳到第8步后,肯定只有从原始版本启动了。 第8步错误,有可能是因为前面出错,也有可能是用户自己破坏了本地文件。无论如何,还是能从原始版本启动,并保证下次进入能再次更新。 第8步正确,并不一定说明这次更新是成功的

android studio 更新时连接服务器失败

送分小仙女□ 提交于 2019-12-01 17:53:18
windows下的解决方法: 如果是运行的是32位的android studio需要在修改一下文件: 在andriod studio的启动目录下。找到studio.exe.vmoptions这个文件。在后面加上 -Djava.net.preferIPv4Stack=true -Didea.updates.url=http://dl.google.com/android/studio/patches/updates.xml -Didea.patches.url=http://dl.google.com/android/studio/patches/ 如果是64位的就找到studio64.exe.vmoptions这个文件,在后面加上 -Djava.net.preferIPv4Stack=true -Didea.updates.url=http://dl.google.com/android/studio/patches/updates.xml -Didea.patches.url=http://dl.google.com/android/studio/patches/ 保存。。重启studio一般即可解决问题。。 如果有vpn的或者代理的,可以配置代理。 来源: oschina 链接: https://my.oschina.net/u/1471093/blog/355070

quick-cocos2d-x基于源码加密打包功能的更新策略(1)

≯℡__Kan透↙ 提交于 2019-11-30 23:31:49
Quick-cocos2d-x 增加了 编译及加密源代码 的功能(具体可参考 这篇文章 )。以此功能为基础,我实现了一个 版本更新 模块,解决了自己项目中的版本更新需求。现抛砖引玉,与大家分享。 从基本原理和方案讲起比较枯燥,直接从介绍具体 用法开始吧。 要能够在线更新文件,一个服务器是必须的。我目前实现的是用HTTP协议取文件,只需要有一个基本的web服务器,能通过类似http://<server>/<filename>的链接取到文件即可。当然,如果需要根据平台和版本进行文件的分发,服务器端还需要进行相应配置。 要调试下面的例子,自己在内网甚至就在本机上搭建一个最简单的web服务器就可以了。 一、基本更新功能 1.创建一个可以自动更新的程序 首先准备好我们的quick-x工程。作为例子,我们直接使用create_project来创建一个新工程helloworld来使用。这一步不用我多说。 接下来,请到 这里 下载我写的更新模块。只需要根目录下的update.lua文件即可,其他的目录下只是我的一些例子和工具。 (2014.5.30加注:quick-x的2.2.3版本里的sample/2048使用了这一更新模块,可以使用例子中的update.lua文件) 将update.lua文件加到helloworld工程的scripts目录下。修改文件中“local server =

quick-cocos2d-x基于源码加密打包功能的更新策略(2)

ⅰ亾dé卋堺 提交于 2019-11-30 23:31:35
前一篇: quick-cocos2d-x基于源码加密打包功能的更新策略(1) 二、更新原理讨论及更复杂的更新功能 1.更新原理 在前面的更新过程中,从服务器取文件列表,并根据文件列表再更新相关的文件,这都是很好理解的。当然其中还有些流程细节关系到健壮性、续传、文件版本分发等,我们可以后面再讨论。 对于一些刚开始学习Quick-x的朋友来说,可能希望了解的是,这一更新机制的替换原理是什么,为什么新的文件下载后能够替代原来的代码生效呢? 从前面我们参考的源文件编译及加密的相关文章,可以清楚的看到,初始代码打包成的game.zip文件,是在AppDelegate.ccp中,在程序启动前通过loadChunksFromZIP载入的。这一载入工作实际上已经将所有代码都加载了,之后调用require时,将会直接 调用而不会再去找代码文件来载入。也正因为如此,一些朋友会感到迷惑,即使下载了新的代码文件,又如何让它生效呢? 其实很简单,loadChunksFromZIP是可以多次调用的,而且如果第二次载入的包中的代码模块与之前载入的模块有重名,新的模块会覆盖旧的模块。 在Quick-x的Lua代码中,对应的调用接口是CCLuaLoadChunksFromZIP。有了这个接口,我们下载新的代码包后,就可以自己加载了。在update.lua里,在下载完成后,会自动将act标记为load的文件加载一次