update

Ubuntu安装后要做的事

血红的双手。 提交于 2020-02-09 02:05:35
1.sudo apt-get update && sudo apt-get upgrade 2.设置root的密码 sudo passwd root 3.修改更新源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup 源setting change to 163 4.安装语言包 sudo apt-get install language-pack-zh-hans language-pack-zh-hant 5.修改系统时间 apt-get install -y ntpdate ntpdate -u pool.ntp.org date 6.IBus IBus拼音:sudo apt-get install ibus-pinyin IBUS五笔:sudo apt-get install ibus-table-wubi 谷歌拼音输入法:sudo apt-get install ibus-googlepinyin Sun拼音输入法:sudo apt-get install ibus-sunpinyin 7.gedit中文乱码: sudo gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'GB2312', 'GBK',

Mybatis中进行批量更新(updateBatch)

*爱你&永不变心* 提交于 2020-02-08 20:54:28
更新多条数据,每条数据都不一样 背景描述:通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更新。(2)一次性更新所有数据(更准确的说是一条sql语句来更新所有数据,逐条更新的操作放到数据库端,在业务代码端展现的就是一次性更新所有数据)。两种方式各有利弊,下面将会对两种方式的利弊做简要分析,主要介绍第二种方式在mybatis中的实现。 逐条更新(效率低)(方法一)   这种方式显然是最简单,也最不容易出错的,即便出错也只是影响到当条出错的数据,而且可以对每条数据都比较可控,更新失败或成功,从什么内容更新到什么内容,都可以在逻辑代码中获取。代码可能像下面这个样子: updateBatch(List<MyData> datas){ for(MyData data : datas){ try{ myDataDao.update(data);//更新一条数据,mybatis中如下面的xml文件的update } catch(Exception e){ ...//如果更新失败可以做一些其他的操作,比如说打印出错日志等 } } } //mybatis中update操作的实现 <update> update mydata set ... where ... </update> 这种方式最大的问题就是效率问题,逐条更新,每次都会连接数据库,然后更新,再释放连接资源

mybatisplus公用方法及method

瘦欲@ 提交于 2020-02-08 17:35:46
public interface BaseMapper<T> { Integer insert(T var1); /** @deprecated */ @Deprecated Integer insertAllColumn(T var1); Integer deleteById(Serializable var1); Integer deleteByMap(@Param("cm") Map<String, Object> var1); Integer delete(@Param("ew") Wrapper<T> var1); Integer deleteBatchIds(@Param("coll") Collection<? extends Serializable> var1); Integer updateById(@Param("et") T var1); Integer updateAllColumnById(@Param("et") T var1); Integer update(@Param("et") T var1, @Param("ew") Wrapper<T> var2); Integer updateForSet(@Param("setStr") String var1, @Param("ew") Wrapper<T> var2); T selectById

MySQL视图、触发器、事务

为君一笑 提交于 2020-02-08 09:20:14
一、视图 1、什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可 2、为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3、如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; drop view teacher2course; 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常是用于插叙,尽量不要修改视图中的数据 二、触发器   1、在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器    2、为何要用触发器?   答: 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行就会触发触发器的执行,即自动运行另外一段sql代码 -- 语法: delimiter // create trigger trigger名 after/before insert/delete/update on 表名 for each row begin sql代码。。。 END // delimiter ; -- 解释: -- after 事件执行之后触发 before 事件执行之前触发 -- 触发事件 insert

数据操作

元气小坏坏 提交于 2020-02-08 09:08:12
数据操作 –增删改查(curd) ±---------±---------------------------±-----±----±--------±---------------+ | Field | Type | Null | Key | Default | Extra | ±---------±---------------------------±-----±----±--------±---------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(30) | NO | | NULL | | | age | int(10) unsigned | NO | | NULL | | | gender | enum(‘男’,‘女’,‘保密’) | YES | | 保密 | | | birthday | date | YES | | NULL | | ±---------±---------------------------±-----±----±--------±---------------+ --增加(insert into) --全列插入 --insert [into] 表名 values(...); --主键字段 可以用0 null

视图、触发器、事务、存储过程、内置函数、流程控制、索引

爱⌒轻易说出口 提交于 2020-02-08 04:43:23
视图 什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 如何用视图 create view teacher2course as select * from teacher inner join course on teacher.t.id = course.teacher_id 强调 在硬盘中,视图只有表结构文件,没有表数据文件 视图通常是用于查询,尽量不要修改视图中的数据 drop view teacher2course; 思考:开发过程中会不会去使用视图? 不会!!视图是mysql的功能,如果你的项目里面大量的是用到了视图,那意味着你后期想要扩展某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要现在mysql端将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 ​ 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行,就会触发触发器的执行,即自动运行另一段sql代码 创建触发器的语法 # 针对插入 create trigger tri_after

视图、触发器、事务、存储过程、函数

空扰寡人 提交于 2020-02-08 04:40:25
视图 1、什么是视图 ​ 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用就可以 2、为什么要用视图 ​ 如果要频繁使用一张虚拟表,可以不用重复查询 3、如何使用使用视图 create view teacher2course as select * from teacher inner join course on teacher.tid=course.teacher_id 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常用于查询,尽量不要修改视图的数据 # 删除视图 drop view teacher2course; 记住:开发过程中不会去使用视图,因为视图是mysql的功能,如果项目里面大量的使用到了视图,意味着后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着需要先在mysql这边将视图修改,然后再去应用程序中修改对应的sql语句,这就涉及到了跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 ​ 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 ​ 就会触发触发器的执行,即自动运行另外一段sql代码 创建触发器语法 # 针对插入 create trigger

《游戏编程模式》(4)

懵懂的女人 提交于 2020-02-08 02:05:59
Chatper 8 双缓冲 核心问题:对状态同时进行修改与访问的冲突(读写) 缓冲区: 1 class Framebuffer 2 { 3 4 public: 5 Framebuffer() { clear(); } 6 7 void clear() 8 { 9 for (int i = 0; i < WIDTH * HEIGHT; i++) 10 { 11 pixels_[i] = WHITE; 12 } 13 } 14 15 void draw(int x, int y) 16 { 17 pixels_[(WIDTH * y) + x] = BLACK; 18 } 19 20 const char* getPixels() 21 { 22 return pixels_; 23 } 24 25 private: 26 static const int WIDTH = 160; 27 static const int HEIGHT = 120; 28 29 char pixels_[WIDTH * HEIGHT]; 30 }; Clear、draw、swap: 1 class Scene 2 { 3 4 public: 5 Scene() 6 : current_(&buffers_[0]), 7 next_(&buffers_[1]) 8 {} 9 10 void draw()

mysql数据库-进阶-长期维护

雨燕双飞 提交于 2020-02-08 01:49:08
############### 视图 ############## """ 1.视图 视图:是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据 视图有如下特点; 1. 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。 2. 视图是由基本表(实表)产生的表(虚表)。 3. 视图的建立和删除不影响基本表。 4. 对视图内容的更新(添加、删除和修改)直接影响基本表。 5. 当视图来自多个基本表时,不允许添加和删除数据。 1.创建视图 create view 视图名称 as sql 查询语句 2.使用视图 select * from 视图名称; 3.更新视图 alter view 视图名称 AS SQL语句 4. 删除视图 drop view ren_view; """ ############### 触发器 ############## """ 2.触发器-trigger 触发器:监视某种情况,并触发某种操作。 触发器创建语法四要素: 1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete) 1.创建触发器语法 create trigger triggerName after/before insert/update

windows 8 update to windows 8.1

岁酱吖の 提交于 2020-02-07 23:41:10
可以参考以下几个链接: http://blogs.windows.com/windows/b/appbuilder/archive/2013/07/24/windows-8-to-windows-8-1-preview-starting-with-the-xaml-templates.aspx http://msdn.microsoft.com/en-us/library/windows/apps/dn263114.aspx 另外, windows8.1 虽然优化了资源的使用和加载,但是还是支持 ResourceDictionary 这种方式,具体请参考: http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.resourcedictionary.aspx Windows 8.1 已经不存在 Snap 、 Fill 、 FullScreen 这几种状态,以下链接的 Updates to the ApplicationView class 里面有详细的说明,您可以参考一下: http://msdn.microsoft.com/en-us/library/windows/apps/bg182890.aspx#one 这里有具体的实现: Handling VisualState in Windows 8