wrapper

小书MybatisPlus第2篇-条件构造器的应用及总结

送分小仙女□ 提交于 2020-10-24 06:29:37
一、条件构造器Wrapper Mybatis Plus为我们提供了如下的一些条件构造器,我们可以利用它们实现查询条件、删除条件、更新条件的构造。 条件构造器用于给如下的Mapper方法传参,通常情况下: updateWrapper用于给update方法传条件参数 queryWrapper用于给delete和select方法传参 public interface BaseMapper<T> extends Mapper<T> { int delete(@Param("ew") Wrapper<T> wrapper); int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper); T selectOne(@Param("ew") Wrapper<T> queryWrapper); Integer selectCount(@Param("ew") Wrapper<T> queryWrapper); List<T> selectList(@Param("ew") Wrapper<T> queryWrapper); List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper); List<Object>

【一】基于open62541的OPC UA服务器和客户端

强颜欢笑 提交于 2020-10-23 04:52:24
OPC UA的好处就不说了,既然你找到了这篇文章,说明你对其已经有了一定的了解。 open62541是在Mozilla Public License v2.0下授权的一个开源的、可跨平台的OPC UA库,采用C(C99)实现。 open62541的官网地址: https://open62541.org/   github地址: https://github.com/open62541/open62541 在open62541的官网有详细的帮助文档,推荐直接查看该文档,作者也是根据其文档的帮助实现的基本功能。 在下方可根据需要自行下载相关文件 当然,你也可以去github下载最新文件,自行编译获得open62541的.c和.h文件,这是我编译的详细过程 【零】基于open62541项目编译单独的open62541源文件和头文件 环境:Windows 10 home、visual studio 2017 community 所需lib包: WS2_32.Lib 建立服务器 首先打开VS2017新建一个空项目,然后将open62541.c、open62541.h和WS2_32.Lib分别添加到项目中去,然后新建一个.c或者.cpp文件,主要用于编写服务器相关的代码,刚开始可以直接复制open62541提供的参考代码 server ,文后附有我所用的server代码

阿里面试题:请问Tomcat是一个Servlet容器吗?里面大有文章

蹲街弑〆低调 提交于 2020-10-22 10:36:40
前言 tomcat是一个Servlet容器 ,这句话对于JAVA程序员们应该都是耳熟能详。 但是就这么单纯的这么一句话被阿里面试官嘴里问出来之后,你觉得还那么简单吗? 好,单纯的思考一下这句话,我们可以抽象出来这么一段代码: class Tomcat { List < Servlet > sers ; } 但是如果Tomcat就长这样,那么它肯定是不能工作的, 所以,Tomcat理论上其实是这样才对: class Tomcat { Connector connector ; // 连接处理器 List < Servlet > sers ; } 我们这里先不考虑Connector的底层实现,我们只需知道Connector是负责处理请求的。 接下来我们还是来考虑下 容器 的问题。 Context 顾名思义,Servlet容器就是用来装载存储Servlet的。 一个Servlet表示一个运行在服务端的程序(servlet = server + applet)。用户想要使用这种程序,需要向该程序发送请求以及获取该程序的响应,也就是Servlet规范中的ServletRequest、ServletResponse。 所以Servlet其实就是Java中用来处理请求的一种规范,所以我们的项目中通常都会有一个或多个Servlet,由它来负责接收请求,或者将请求转交给其他业务逻辑。

了解Android Studio中的Gradle

我是研究僧i 提交于 2020-10-21 21:14:06
Gradle是啥? gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。 所谓的构建过程就是:编译,测试,依赖管理,打包,部署。以前我们开发是手动导入jar包的,类似于面向过程,一步一步来,缺什么包就导什么包,很麻烦,容易出错,jar包版本还不统一,需要关心jar包与jar包之间的依赖。通过采用gradle的构建方式,只需通过complie xxxxx引入一个jar包,然后这个jar包所依赖的其他jar包gradle会自动帮引入,无需关心jar包与jar包之间的依赖,在什么地方以什么形式引入外部jar包,都委托给gradle管理了,体现了面象对象的思想,无需关心内部实现过程,直接引入就可。(注意Gradle不是一种编程语言,它不能帮你实现软件中的任何实际功能) 自动化构建工具有哪些? Ant 2000年诞生,主要是编译代码,测试代码。 Maven 2007年诞生,主要是编译测试,依赖管理。 Gradle 2012年诞生 主要是是编译测试,依赖管理,DSL自定义扩展任务。 Android Studio中的默认工具是Gradle Android studio的默认插件是Gradle,或许是因为Gradle编译速度比Maven 快很多,而且Gradle完全兼容kotlin语言。当我们新建一个android 项目,gradle已经默认配置好了

gradle常见问题

有些话、适合烂在心里 提交于 2020-10-19 18:17:26
gradle常见问题 环境:win10/android studio3.6.3/jdk1.8.0 1.一查 项目使用的gradle版本是否下载完成,否则会提示zip包相关的错误, C:\Users\用户名.gradle\wrapper\dists 下有各种下载的版本,以我的gradle5.6.4-bin版本为例,下载好后bin目录下面有这两个文件,如果没有下载好也可以自己从官网下载然后放在dists目录下面,下载地址:https://downloads.gradle-dn.com/distributions/gradle-6.5-bin.zip 可以手动修改url下载自己需要的版本 all版跟bin版也要区分哦,关于他们的区别,从我这的文件夹来看少了例子和源码 2.两对应 android gradle版本与 项目gradle对应,我的android gradle插件版本3.5.2 gradle支持maven仓库,可以添加阿里云maven镜像仓库 我的项目gradle版本5.6.4,他好像会先从本地检测,没有就通过这个链接下载 对应关系如下,详情: gradle-plugin gradle的环境变量 与 项目gradle版本相同 注意 :最好设置为长期使用的gradle版本,并且确保JAVA_HOME已经配置 配置完可以运行gradle projects(在你的根项目目录下输入

《Java核心卷 I》第10版阅读笔记

眉间皱痕 提交于 2020-10-17 07:53:10
文章目录 1.java程序设计概述 2. java的基本程序设计结构 3 对象与类 4.继承 5 接口、lambda 表达式与内部类 5.1 接口 5.2 接口示例 5.3 lambda 表达式 5.4 内部类 5.4.1 使用内部类访问对象状态 5.4.2 内部类的特殊语法规则 5.5 代理 文章代码链接:https://horstmann.com/corejava/ 1.java程序设计概述 2. java的基本程序设计结构 1、区分大小写 2、注释: //;/* /;/ * */(可自动生成文档) 3、数据类型 整型 :byte,short,int,long(1,2,4,8个字节),都是有符号的 浮点型 :float,double(4,8个字节),浮点数值不适用于无法接受舍入误差的计算,( 2.0-1.1 ) 结果为 0.8999999999999999, 而不是 0.9。因为浮点数值采用二进制系统表示, 而在二进制系统中无法精确地表示分数 1/10。如果在数值计算中不允许有任何舍入误差, 就应该使用 BigDecimal类 char类型 :2个字节,描述了 UTF-16 编码中的一个代码单元。(参考-https://www.zhihu.com/question/27562173) boolean类型 :整型值和布尔值之间 不能进行相互转换,即0不代表false

pywinauto客户端自动化---窗口等待方法

我与影子孤独终老i 提交于 2020-10-10 04:17:56
  我们在做web和app的ui自动化过程中,常用到等待机制,那客户端自动化有这个方法吗?python这么强大,肯定是有方法解决的 等待机制 pywinauto等待有两种方法: 方法一: wait() wait_for:表示可以选择窗口状态 timeout:超时时间 retry_interval:表示重试间隔 def wait(self, wait_for, timeout=None, retry_interval= None): """ 等待窗口处于特定的状态 * 'exists' 表示窗口是一个有效的句柄 * 'visible' 表示窗口不隐藏 * 'enabled' 表示该窗口未被禁用 * 'ready' 表示窗口可见并已启用 * 'active' 表示窗口处于活动状态 timeout:表示超时 retry_interval:表示重试间隔 """ check_method_names, timeout, retry_interval = self. __parse_wait_args (wait_for, timeout, retry_interval) wait_until(timeout, retry_interval, lambda : self. __check_all_conditions (check_method_names, retry_interval))