5.建造模式(builder)抽象建造者角色(builder):给出一个抽象接口,以规范产品对象的各个组成部分的建造。一般包括两种方法:1、建造方法,比如生成零件方法等;2、结果返回方法;比如返回汽车方法。具体建造者(ConcreteBuilder)角色:实现抽象建造者Builder所声明的接口,给出创建创建产品实例的操作;在建造完成后,提供产品实例返还。导演者(Director):调用具体建造者创建产品.但是导演者并没有产品类的具体知识,真正拥有产品知识
系统 2019-08-12 09:29:30 2477
在MySQL中,使用auto_increment类型的id字段作为表的主键。通常的做法,是通过“selectmax(id)fromtablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以“X锁“,待获得max(id)的值以后,再解锁。这种做法需要的步骤比较多,有些麻烦,而且并发性也不好。有没有更简单的做法呢?答案之一是通过selectLAST_INSERT_ID()这个操作。乍一看,它和selectmax(id)很象,但实际上它
系统 2019-08-12 01:55:16 2477
注:本文翻译自Google官方的AndroidDevelopersTraining文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/camera/videobasics.html这节课将展示如何利用现有的相机应用来录制视频。假设你的应用有一个巨大的任务,而集成视频是它的一部分。你希望尽可能简单地录制视频,并且不要因此而重新构建一个摄像的程序。幸好,An
系统 2019-08-12 01:55:12 2477
安装cmake:tarzxvfcmake-2.8.4.tar.gzcdcmake-2.8.4./configure--prefix=/usr/local/cmakemake&&makeinstall安装mysql5.5.13groupaddmysql//所以在这里我们要建一个msyql的用户和组useradd-gmysqlmysql-s/usr/sbin/nologinmkdir/usr/local/mysql//创建目录mkdir/usr/local/m
系统 2019-08-12 01:55:11 2477
原文:SQLServer移动数据库移动系统数据库在下列情况下可能很有用:故障恢复。例如,数据库处于可疑模式下或因硬件故障而关闭。计划的重定位。为预定的磁盘维护操作而进行的重定位。下列过程适用于在同一SQLServer实例内移动数据库文件。若要将数据库移动另一个SQLServer实例中或另一台服务器上,请使用备份和还原或分离和附加操作。本主题中的过程需要数据库文件的逻辑名称。若要获取该名称,请在sys.master_files目录视图中查询名称列。预先安排的
系统 2019-08-12 01:55:03 2477
注:本文翻译自Google官方的AndroidDevelopersTraining文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好。原文链接:http://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct.html在这系列课程的第一节课中(博客链接:http://www.cnblogs.com/jdneo/p/3579936.html),向
系统 2019-08-12 01:55:01 2477
在使用MYSQL的selectdistinctnamefromtable语句时,输出的只是去重之后name字段的信息,而希望的是能够输出考生ID、考试时间、考试成绩等的信息。使用selectdistinctname,sorcefromtable结果发现去重不起作用,因为MYSQL认为要sorce和name同时重复才会去除。最终解决办法如下:select*,count(distinctname)fromtablegroupbyname如果SQL语句还有lim
系统 2019-08-12 01:54:51 2477
Mysql线程池优化我是总结了一个站长的3篇文章了,这里我整理到一起来本文章就分为三个优化段了,下面一起来看看。Mysql线程池系列一(ThreadpoolFAQ)首先介绍什么是mysqlthreadpool,干什么用的?使用线程池主要可以达到以下两个目的:1、在大并发的时候,性能不会因为过载而迅速下降。2、减少性能抖动threadpool的工作原理?线程池使用分而治之的方法来限制和平衡并发性。与默认的thread_handling不同,线程池将连接和线程
系统 2019-08-12 01:52:44 2477
1.createorreplaceprocedurePROC_CHECK(Insert_byVARCHAR)ISv_OIDVARCHAR2(36);begindeclare--类型定义cursorc_checkisselectdep_oid,oms_user_oidfromdcjetframework.v_oms_user;--定义一个游标变量v_cinfoc_emp%ROWTYPE,该类型为游标c_emp中的一行数据类型c_rowc_check%rowt
系统 2019-08-12 01:52:27 2477
承接上一:sk_buff整理笔记(一、数据结构)这一篇要讲的是内核为sk_buff结构提供的一些操作函数。第一、首先要讲的是sk_buff中的四大指针:四大指针各自是:head、data、tail、end;这四个指针都是指向了数据区的。数据区中存放的是协议头和数据。head和end指针是每一个数据包一样的,也是有这两个指针来确定数据区的大小的。最開始的时候head、data、tail三个指针都是指向一起的,当有协议数据加进来时才更改。再来说下包的形成。首先
系统 2019-08-12 01:51:49 2477