技术文章

12.Android-SQLiteOpenHelper使用

旧城冷巷雨未停 提交于 2021-02-20 03:00:37
1.SQLite 介绍 SQLite,是一款轻型的数据库,它的优缺点有如下: 轻量级,适合嵌入式设备,并且本身不依赖第三方的软件,使用它也不需要 “安装” 。 并发(包括多进程和多线程)读写方面的性能不太理想。可能会被写操作独占,从而导致其它读写操作阻塞或出错 2.SQLiteOpenHelper 介绍 为了在本地创建SQLite数据库,我们需要创建一个SQLiteOpenHelper的子类,这里取名的为 MyOpenHelper类 ,然后还要 写构造方法来初始化父类 、以及abstract修饰的抽象方法: onCreate(SQLiteDatabase)、onUpgrade(SQLiteDatabase,int,int). 2.1 为什么要创建SQLiteOpenHelper的子类(MyOpenHelper类)? 因为SQLiteOpenHelper不知道我们要创建的数据库是什么名字,以及表的内容,所以我们要 创建MyOpenHelper类 . 3.SQLiteOpenHelper 构造方法 构造方法用来创建数据库文件的,构造方法如下: public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version); // 第一个参数:上下文 // 第二个参数:数据库文件的名字

Javascript中数据类型转换那些事

一世执手 提交于 2021-02-20 02:59:48
在js中,总的来说数据类型分为两大类,一类是原始值类型的,一类是引用类型的。原始值类型的包括: 字符串(String) 、 数字(Number) 、 布尔值(Boolean) 以及两个特殊的值 null 和 undefined 。引用类型的主要是指对象,在js中,对象的范围很广,甚至有js中一切都是对象这样的说法。对象可以分为 对象(Object) 以及更具体的 数组(Array) 、 函数(Function) 等类型。要注意的是,js中typeof运算符返回的类型只有:sting、number、boolean、object、function、undefined几种,typeof null 返回的是 object,但一般认为null是不属于对象的。 关于js中是不是一切都是对象这句话,其实是有争议的。例如,我们可以直接在通过单引号或双引号定义的字符串字面量上调用方法: 'this is a string'.charAt(0); 这条语句是能够执行并得到正确结果的。字符串的确是个对象,但是问题在于没有通过构造函数而是直接使用字面量的字符串又算不算对象呢?这还要说吗,这个语句不就是在字符串字面量上调用的方法嘛,能调用方法的当然是对象了。是的,我们看到的的确是这样,但事实又是如何呢? 事实就是,通过字面量定义的字符串并不是对象,或者最多只能说它是个伪对象

MySQL ---存储过程和触发器

不羁的心 提交于 2021-02-20 02:59:05
MySQL存储过程和触发器 存储过程 一、一个简单的存储过程 1,一个简单的存储过程 delimiter $$ create procedure testa() begin Select * from emp; Select * from dept; End; $$; delimiter ; -- 调用存储过程 call testa(); 存储过程的结构组成: 1,创建格式:create procedure 存储过程名 2,包含一个以上代码块,代码块使用begin和end之间 3,在命令行中创建需要定义分隔符 delimiter $$ 2,存储过程的特点 1,能完成复杂的判断和运算 2,可编程性强,灵活 3,SQL编程的代码可重复使用 4,执行速度相对快 5,减少网络之间数据传输,节省开销 二、存储过程变量 1,存储过程中的变量 需求:编写存储过程,使用变量取empno=7369的用户名 Delimiter $$; Create procedure testa(); BEGIN DECLARE my_uname varchar(32) default ""; -- 定义变量my_uname SET my_uname='smith'; -- 为变量my_uname赋值 -- 查询empno=7369的用户名,并将值赋给my_uname select ename into my

git 指令

让人想犯罪 __ 提交于 2021-02-20 02:58:45
git 命令行操作 参考网络上的总结和笔记,并亲身实践,稍作整合如下,送给你,希望有所帮助 ----------------先明确几个概念----------------- 工作区A、暂存区B、本地仓库C、远程仓库D 关系如下: 在IDE编辑文件属于工作区A add指令提交工作区A的更改到暂存区B commit指令提交暂存区B的内容到本地仓库C pull指令拉去远程仓库D的更改到本地仓库C并同步工作区A push指令推送本地仓库C的更改到远程仓库D ----------------一般的开发提交和冲突解决流程----------------- 1 将所有/指定文件由工作区A添加到暂存区B git add . git add client/App.vue 2 提交暂存区B到本地仓库区C git commit -m "更新全局通用组件" 3 取回远程仓库D变化,并与本地仓库C合并,同时更新工作区A git pull git pull = git fetch + git merge git pull --rebase = git fetch + git rebase 注意: 实际操作中为避免提交记录中的乱merge现象,这里一般选择 git pull --rebase, 在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决冲突,

数据库设计 Step by Step (2)——数据库生命周期

喜你入骨 提交于 2021-02-20 02:58:08
引言: 数据库设计 Step by Step (1)——扬帆启航 得到这么多朋友的关注着实出乎了我的意外。这也坚定了我把这一系列的博文写好的决心。近来工作上的事务比较繁重,加之我期望这个系列的文章能尽可能的系统、完整,需要花很多时间整理、思考数据库设计的各种资料,所以文章的更新速度可能会慢一些,也希望大家能够谅解。 系列的第二讲我们将站在高处俯瞰一下数据库的生命周期,了解数据库设计的整体流程 数据库生命周期 大家对软件生命周期较为熟悉,数据库也有其生命周期,如下图所示。 图(1)数据库生命周期 数据库的生命周期主要分为四个阶段:需求分析、逻辑设计、物理设计、实现维护。 这个系列的博文将主要关注数据库生命周期中的前两个阶段(需求分析、逻辑设计)。如图中红色框出的部分。 数据库的物理设计,包括索引的选择与优化、数据分区等内容。这些内容也非常丰富,而且可以自成体系,园子里也有很多好文章,故在本系列中不作主要关注。本文最后将给出一些链接供大家参考。 数据库生命周期的四个阶段又能细分为多个小步骤,我们配合图(1)来看看每一小步包含的内容。 阶段1 需求分析 数据库设计与软件设计一样首先需要进行需求分析。 我们需要与数据的创造者和使用者进行访谈。对访谈获得的信息进行整理、分析,并撰写正式的需求文档。 需求文档中需包含:需要处理的数据;数据的自然关系;数据库实现的硬件环境、软件平台等; 图(2)

Portainer实战

拜拜、爱过 提交于 2021-02-20 02:57:52
Portainer是一个轻量级的Docker环境管理UI,可以管理docker host和docker swarm(我主要看中了能管理swarm这个,毕竟市面上能管理swarm的平台不多)。之所以说是轻量级的,是因为部署只有一个container,也可以使用二进制程序直接部署,不像rancher的部署,部署了一大堆container,而且portainer是跨平台的,windows和linux都可以部署,废话不多说,直接开干.... 环境 ubuntu16.04-1 swarm manager portainer ubuntu16.04-2 swarm works portainer agent ubuntu16.04-3 swarm works portainer agent ps:环境还是之前文章的swarm集群环境 部署 独立容器启动 docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /path/on/host/data:/data portainer/portainer ps:portainer的数据存储在容器内部的/data目录,这样容器重启的时候数据会丢失,所以要确保数据持久化 docker run -d

UIBezierPath贝塞尔弧线常用方法记

前提是你 提交于 2021-02-20 02:57:28
//根据一个矩形画曲线 + ( UIBezierPath *)bezierPathWithRect:( CGRect )rect //根据矩形框的内切圆画曲线 + ( UIBezierPath *)bezierPathWithOvalInRect:( CGRect )rect //根据矩形画带圆角的曲线 + ( UIBezierPath *)bezierPathWithRoundedRect:( CGRect )rect cornerRadius:( CGFloat )cornerRadius //在矩形中,可以针对四角中的某个角加圆角 + ( UIBezierPath *)bezierPathWithRoundedRect:( CGRect )rect byRoundingCorners:( UIRectCorner )corners cornerRadii:( CGSize )cornerRadii 参数: corners :枚举值,可以选择某个角 cornerRadii :圆角的大小 //以某个中心点画弧线 + ( UIBezierPath *)bezierPathWithArcCenter:( CGPoint )center radius:( CGFloat )radius startAngle:( CGFloat )startAngle endAngle:(

MATLAB绘图

孤街浪徒 提交于 2021-02-20 02:57:05
一、直角坐标系中的连续函数 1.简单绘图 >>x=[0:0.1:5]; >>y=sin(x); >>plot(x,y),xlabel('x')/*横坐标*/,ylabel('y')/**纵坐标/; 2.更精确的图 fplot('exp(-1.2*x).*sin(x)',[0,4])/*在(0,4)上绘制图像*//*这里必须是点乘(矩阵相乘),直接*会报错*/,title('y=exp(-1.2x)*sin(x)的图像') 3.更多绘图选项 plot(x,y),grid on/*绘制网格*/,axis equal/*间距相同*/ /*axis auto是让MATLAB自动选择*/ 4.同时绘制多个函数 plot(x,y,t,f,'--')/*用默认实线绘制y=f(x),用'--'绘制f=f(t)*/ /*还有实线‘-’,虚线‘--’,虚点线‘-.’,点线‘:’*/ 还可以在图像旁添加图例用‘legend‘,即plot(x,yt,f,'--'),legend('sinh(x)','cosh(x)'),如下图: 5.个性化设置 (1)颜色 plot(x,y,'r--') /*用红色虚线绘制图像*/ (2)坐标比例 plot(x,y),axis([xmin xmax ymin ymax]) (3)一次显示两个坐标系 subplot(1,2,1) /*一行两列,当前函数在这行第一个*/ /

python web开发-flask中消息闪现flash的应用

巧了我就是萌 提交于 2021-02-20 02:55:32
Flash中的消息闪现,在官方的解释是用来给用户做出反馈。不过实际上这个功能只是一个记录消息的方法,在某一个请求中记录消息,在下一个请求中获取消息,然后做相应的处理,也就是说flask只存在于两个相邻的请求中“闪现”,第三次请求就不存在这个flash了。 下面我们用一个例子来说明一个是如何“闪”的。 首先引入flash和get_flashed_message方法 from flask import Flask,url_for,render_template,request,make_response,session, \ flash,get_flashed_messages 然后我们定义两个方法,一个用于记录flash,一个用于显示flash。 @app.route( "/addflash" ) def addFlash(): flash( "bling bling" ) return "added a flash" @app.route( "/getFlash/" ) def getFlash(): msgs = get_flashed_messages() msgStr = "" for msg in msgs: msgStr += msg+ "," return msgStr 然后我们运行程序,先访问/addflash这个地址,效果如下: 按代码的逻辑

Wemall的三级分销

别等时光非礼了梦想. 提交于 2021-02-20 02:54:54
 微信商城怎么开【wemall微信商城】微信的本质是什么?是个社交工具。还记得微信刚打开时的那句话---再小的个体也有自己的品牌。人们使用微信,是因为要建设自己的个体品牌,也就是自媒体品牌。用马斯洛的五层需求原理来说,就是自我实现的需求。   跟着微商崛起的微信商城,简称微商城。如果把所有的移动社交应用都看成是一个流量来源的入口,那么微商城的存在的意义就是把这些流量汇聚起来,引流到微商城实现成交。所以,就算朋友圈不能卖货,微商们还可以通过开通微商城,利用各种移动社交应用分享的方式引流到店里,达到营销目的。   不管是利用公众平台进行商品售卖还是朋友圈社交分享的方式引流到微商城,都不会像现在的单纯刷屏卖货。微商开微商城的目的,都是为了赚钱,但也需要监督、跟一套信用体系来进行市场规范,不管是对消费者还是对微商来说,都是十分重要的。微商城,就是扮演这一角色的重要人选。   而对于有线下实体店的零售企业来说,微商城也是企业进军O2O,打通线上线下的一个重要入口。   你需要了解的微商城功能:   1.新的销售渠道,增加销售额。 一个拥有8亿用户的社交平台微信,这8亿用户都极有可能是我们的潜在客户,而且用户人数还在不断以火箭的速度增长中,说明可挖掘资源是源源不断的。   2.快速拓展品牌的知名度。 微信不只是一个聊天工作,其中存在的传播能力是无法预料。跟互联网的传播方式不同