通用

Mybatis通用Mapper介绍与使用

泄露秘密 提交于 2019-12-05 17:53:18
前言 使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中, 除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL 。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障。这时,通用Mapper便应运而生…… 什么是通用Mapper 通用Mapper就是 为了解决单表增删改查 ,基于Mybatis的插件。开发人员不需要编写SQL, 不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法 。 如何使用 以MySQL为例,假设存在这样一张表: CREATE TABLE `test_table` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT '', `create_time` datetime DEFAULT NULL, `create_user_id` varchar(32) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `update_user_id` varchar(32) DEFAULT NULL, `is_delete` int(8) DEFAULT NULL, PRIMARY KEY (`id

通用爬虫和聚焦爬虫概念

删除回忆录丶 提交于 2019-12-04 15:05:01
根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。 通用搜索引擎(Search Engine)工作原理 通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。 第一步:抓取网页 搜索引擎网络爬虫的基本工作流程如下: 首先选取一部分的种子URL,将这些URL放入待抓取URL队列; 取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进已抓取URL队列。 分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环.... 索引擎如何获取一个新网站的URL: 1. 新网站向搜索引擎主动提交网址:(如百度 http://zhanzhang.baidu.com/linksubmit/url ) 2. 在其他网站上设置新网站外链(尽可能处于搜索引擎爬虫爬取范围) 3. 搜索引擎和DNS解析服务商(如DNSPod等)合作,新网站域名将被迅速抓取。

定时器中断

南楼画角 提交于 2019-12-04 06:34:41
1.定时器介绍 STM32F1的定时器非常多,由2个基本定时器(TIM6、TIM7)、4个通 用定时器(TIM2-TIM5)和2个高级定时器(TIM1、TIM8)组成。基本定 时器的功能最为简单,类似于51单片机内定时器。通用定时器是在基本 定时器的基础上扩展而来,增加了输入捕获与输出比较等功能。高级定 时器又是在通用定时器基础上扩展而来,增加了可编程死区互补输出、 重复计数器、带刹车(断路)功能,这些功能主要针对工业电机控制方面 1.1 通用定时器简介 STM32F1的通用定时器包含一个 16 位自动重载计数器(CNT),该计数器由可编程预分频器(PSC)驱动。STM32F1的通用定时器可用于多种 用途,包括测量输入信号的脉冲宽度(输入捕获)或者生成输出波形(输出 比较和PWM)等。 使用定时器预分频器和 RCC 时钟控制器预分频器,脉 冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32F1 的每个 通用定时器都是完全独立的,没有互相共享的任何资源。 STM32F1的通用定时器TIMx (TIM2-TIM5 )具有如下功能: (1)16 位向上、向下、向上/向下自动装载计数器(TIMx_CNT)。 (2)16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535之间的任意数值。 (3)4个独立通道(TIMx_CH1-4)

使用IOS通用粘帖板

倖福魔咒の 提交于 2019-12-03 21:31:02
使用通用粘帖板 generalPasteboard类方法返回一个通用粘帖板的指针,例如: UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 常用属性 最常用的粘帖板操作包括获取/设置字符串,图像,URL和颜色。Apple提供了以下方便的方法: NSString *string = pasteboard.string; UIImage *image = pasteboard.image; NSURL *url = pasteboard.URL; UIColor *color = pasteboard.color; pasteboard.string = @"paste me somewhere"; 确定一种类型的表示是否存在 如果某种类型的条目不存在,那么getter方法将返回nil。这是一个很方便的方法可以预先知道特定类型的表示是否存在。使用containsPasteboardTypes: 方法检查: 1 2 if ([pasteboard containsPasteboardTypes: [NSArray arrayWithObject:@"public.utf8-plain-text"]]) NSLog(@"String representation present: %@", pasteboard

通用中小企业架构设计思路

走远了吗. 提交于 2019-12-03 20:55:00
在上一篇博客中( 浅谈微服务架构与.Net Core )我们谈到微服务架构与.Net Core,大体分析了下微服务架构的一些优势,在这边博客中,将谈谈架构设计的一些理念。 首先,代码要清晰明了,层次分明,模块间耦合度要尽量降低,代码并不是要越复杂越好,可能有人认为,代码写得越复杂、算法用的越高级,让别人越看不懂就越牛X,我认为恰恰相反,代码越是简单就能实现的就尽量做到简单,能用几行代码能解决的问题何必要写个牛X的算法来实现呢? 其次,能做到通用的模块需要单独提炼出来,不要在其他业务逻辑中混合实现,不利于代码的移植,以下简单说说常用的一些模块或逻辑需要特别注意的; 1、底层数据访问需要单独写,当我们数据库发生变化,比如我们这个项目用的是SqlServer,下个项目用的是MySQL,要做到很轻易的切换; 2、缓存管理需要独立出来,通常,我们开发都会用到缓存技术,能把缓存用好,系统性能也会得到大幅度提升,简单举个例子,比如我们开发一个系统,用的是MemoryCache,但是系统上线运行一段时间后,并发量增大,本机缓存已经不能满足需求,我们需要对系统进行集群,减轻服务器压力,此时需要用Redis来管理缓存,那么此时,我们需要做到很容易的从MemoryCache切换到Redis来做缓存管理,我们只需要改一下配置文件就能达到预期效果而不必在用到缓存的地方一个一个的去改再编译上线。 3

HTML基础入门学习

a 夏天 提交于 2019-12-03 14:21:03
什么是HTML? HTML: 超文本标记语言,标准通用标记语言下的一个应用。 “超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 教学课程: HTML基础入门学习 超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。 超级文本标记语言的定义又是什么? 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。 网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。

组件库通用样式设计总结

半世苍凉 提交于 2019-12-03 09:42:43
本文转载于: 猿2048 网站➪ https://www.mk2048.com/blog/blog.php?id=iah0c1102j 前言 作为前端UI组件库,从样式角度去看,应当满足两方面要求: 一致性 和 可定制 [1] 。 其实这两点也非常好理解,一致性保证了组件库视觉上保持一致,而不是东拼西凑,而且说得高大上一点可能还有规范可循。而可定制就需要组件库暴露接口,供开发者配置形成自己风格的组件库。 一致性 但是具体一致表现在哪些方面呢?对于设计师而言,会很清楚,但是对于我们前端开发人员而言,具体指的是哪些东西呢?我们又如何把这些东西转化为代码呢?这部分具体见 设计规范 部分。 可定制 根据可定制的粒度大小,可以分为组件层面的可定制和整套组件库的主题定制。有组件使用经验的同学都知道,使用具体组件时我们可以传入某些参数或主题参数,组件就可以呈现不同的表现。另外,一些有名的组件库也都提供了 主题定制 的相关方法,如 antd-mobile 、Vant 和 Element ,尤其是 Element ,提供了多种主题定制的方法。 设计规范先行 前面提到的一致性是由“设计规范”来保证的,其实这一块涉及到的内容非常多。可能在我们眼里就是组件库里的那套看似 杂乱无序 的 通用变量 (设计规范 ≠ 通用变量),但是其实里面还是有一些套路的,也建议多多和设计师沟通,产生思维碰撞

redis 通用键值操作

匿名 (未验证) 提交于 2019-12-03 00:44:02
一、redis 数据结构 丰富的数据结构 hash、链表、集合、有序集合等 1.通用键值操作 --字符串类型 set site www.zixue.it set age 29 --如何获取当前所有的key 值 keys * keys pattern 匹配模式;查询相应的key redis 允许模糊查询 --常用三个通配符 1.* 通配任意多个字符字符 2.?通配任意单个字符 3.[] 通配[]括号内的某一个字符 --精确查询 keys site ---模糊查询 keys s* keys sit* keys sit[ey] ---不确定最后的字符是 e 还是 y --类似正则表达式 ---中间字符记不清楚,并且只有一个字符 keys si?e --返回结果 site --随机拿一个key randomkey 返回随机key --判断key 类型 type age ---判断一个key 是否存在 exist age ---返回结果是1 表示有;0表示没有 ---删除key del age ---修改key site 名字 rename site wangzhi --renamenx 假如你修改的那个 key 的新名字,已经存在了呢? --测试一下 del wangzhi set site www.zixue.it set search www.so.com rename site

四个通用定时器(TIM2 TIM3 TIM4 TIM5)的四通道调用

匿名 (未验证) 提交于 2019-12-03 00:40:02
void TIM2_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);

Mybatis通用Mapper介绍与使用

匿名 (未验证) 提交于 2019-12-03 00:37:01
前言 使用过jpa后再使用mybatis就会反感重复写xml文件里面的简单增删改查sql,一些复杂的特殊的业务逻辑sql当然是不可避免的,但是 大量结构类似的增删改查SQL就是大大影响程序员的开发效率。而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改。这时,通用Mapper便应运而生…… 什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法。 Maven依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.3.7</version> <exclusions> <exclusion> <artifactId>persistence-api</artifactId> <groupId>javax.persistence</groupId> </exclusion> </exclusions> </dependency> 因为这个项目已经集成了jpa,javax.persistence的依赖已存在,故需要移除。如果项目没有这个jar,需要添加进来。 javax.persistence在实体类中会引用到其中的注解。