精华内容
下载资源
问答
  • 简单来说就是,写了required=false,就不要写验证是否,是否null。 如果required=true,就要写是否为空null...integer判null,String判,对于其他的,比如参数类型Date日期类型,那就不要写@Size注解,, ...

    简单来说就是,写了required=false,就不要写验证是否空,是否null。

    如果required=true,就要写是否为空,为null。integer判null,String判空,对于其他的,比如参数类型为Date日期类型,那就不要写@Size注解,,

    展开全文
  • 文章目录 简账(开源记账软件)-解决小程序扫码授权提示Token不能为空 前言 一、问题复现 二、问题分析定位 1.首先看一下正常的登录流程(部分细节已简化) 2.问题定位 三、解决问题 1.确保页面onload在onLaunch之后...


    简账(开源记账软件)-解决小程序扫码授权提示Token不能为空


    前言

    由于自己有记账的需求,在尝试使用过市面上的记账软件后,发现大多数都有以下几个问题

    • 广告比较多,主要分为信息流广告及金融类广告
    • 页面太痈肿,使用体验不好
    • 部分高级功能需要收费,如数据导出

    所以就萌生了自己做一个记账软件的想法,这个想法在2020年5月左右落地的,到目前也快有一年了。
    本着OpenSource的想法,已全部开源,也想借写博客的机会获得一些Star❤

    测试环境

    正式环境:

    • 小程序:微信搜索【简账】
    • PC端:简账PC端

    Github开源地址:

    后续要完成的功能(重要性至上而下)

    • 支持多账本,可自定义维护
    • 支持设置预算(年月预算)
    • 支持多账本间冲销
    • 支持Excel导出(年或月可自定义)
    • 支持多人记账及家庭账本

    待解决的Bug

    • 如用户未登录过小程序,小程序扫码授权会提示Token不能为空(提供者:喵了个小咪咪

    写在后面
    如果你有其他的想法或问题欢迎给我留言,或在Github上提Pr&Issue
    tips:如果你也想你写的东西被人使用,欢迎跟我一起维护简账~

    往期链接


    一、问题复现

    首先感谢一下喵了个小咪咪的反馈

    经测试,通过以下步骤可以复现

    1. 简账小程序退出
    2. 打开简账PC端
    3. 微信扫码
    4. 提示授权
    5. 点击授权后,会提示Token不能为空

    二、问题分析定位

    既然能复现问题,那么解决问题也不是什么难事了!

    1.首先看一下正常的登录流程(部分细节已简化)

    在这里插入图片描述

    2.问题定位

    通过Debug发现以下两种情况会出现授权时提示token不能为空

    • 用户还未登录就扫码授权
    • 用户网络环境较差时,还未获取到token就发起了授权

    综上所述,正确的授权流程图如下所示
    在这里插入图片描述

    三、解决问题

    tips:以下代码均可在Github中找到,代码请查看简账微信小程序

    1.确保页面onload在onLaunch之后执行

    在main.js中挂载$store

    Vue.prototype.$onLaunched = new Promise(resolve => {
        Vue.prototype.$isResolve = resolve
    })
    Vue.prototype.$store = store	// 挂载在Vue实例上
    

    2. 启动时尝试获取token

    如果有openId则请求到token再放行,如没有直接放行

    onLaunch: function() {
    	console.log('App Launch');
    	let userInfo = uni.getStorageSync("userInfo");
    	if(userInfo.openId) {
    		// 如果本地有存储的用户信息
    		this.$u.api.wxLogin({
    			openId : userInfo.openId,
    			username: userInfo.name,
    			nickname: userInfo.nike,
    			sex: userInfo.sex,
    			avatar: userInfo.avatarUrl
    		}).then(res => {
    			this.login(res);
    			this.$isResolve();
    		}).catch(e => {
    			console.log('login error');
    			this.$isResolve();
    		});
    	}else {
    		// tips:微信审核不通过,取消强制登录
    		// 立即跳转到登录页面
    		// uni.redirectTo({
    		//     url: '/pages/login/index'
    		// });
    		this.$isResolve();
    	}
    }
    

    3. 页面onload方法

    async onLoad(option) {
    	console.log('detail show');
    	//option为object类型,会序列化上个页面传递的参数
    	const uuid = option.scene
    	//等待登录成功	
    	await this.$onLaunched;
    	if(!this.hasLogin) {
    		this.show = true;
    	} else{
    		// 授权登录
    		if(uuid && uuid.length === 32) {
    			this.authInfo.uuid = uuid
    			// 获取用户信息
    			this.getUserToken()
    			await this.scannQrcode(uuid)
    			this.authInfo.showAuth = true
    		}
    	}
    }
    

    3. 结果

    经测试,已解决此Bug。
    如果感兴趣,你也可以自己试一下~
    在这里插入图片描述

    四、总结

    在社区中写了几篇简账的博客后,现已有110+用户。在此感谢注册了简账的各位,谢谢😊
    如果你觉我这个项目还不错的话,不妨给我的Github点个Star♥

    在这里插入图片描述

    展开全文
  • 1,'%'),1=1) 代表传入的参数name如果不为""(Spring类型是""而不是null)将参数传入name,如果为空时显示1=1 代表参数为真,对查询结果产生作用。IF 的语法满足mysql的基本语法,IF(expr1,expr2,expr3), 如果 ...

    JPA 基本查询

    Spring Data JPA提供的一个查询规范,查询语句关键字,简单的SQL可根据方法命名来即可,省略了写sql语句。

    关键字 方法命名 sql where字句

    And findByNameAndPwd where name= ? and pwd =?

    Or findByNameOrSex where name= ? or sex=?

    Is,Equals findById,findByIdEquals where id= ?

    Between findByIdBetween where id between ? and ?

    LessThan findByIdLessThan where id < ?

    LessThanEquals findByIdLessThanEquals where id <= ?

    GreaterThan findByIdGreaterThan where id > ?

    GreaterThanEquals findByIdGreaterThanEquals where id > = ?

    After findByIdAfter where id > ?

    Before findByIdBefore where id < ?

    IsNull findByNameIsNull where name is null

    isNotNull,NotNull findByNameNotNull where name is not null

    Like findByNameLike where name like ?

    NotLike findByNameNotLike where name not like ?

    StartingWith findByNameStartingWith where name like ‘?%’

    EndingWith findByNameEndingWith where name like ‘%?’

    Containing findByNameContaining where name like ‘%?%’

    OrderBy findByIdOrderByXDesc where id=? order by x desc

    Not findByNameNot where name <> ?

    In findByIdIn(Collection> c) where id in (?)

    NotIn findByIdNotIn(Collection> c) where id not in (?)

    True findByAaaTue where aaa = true

    False findByAaaFalse where aaa = false

    IgnoreCase findByNameIgnoreCase where UPPER(name)=UPPER(?)1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    JPA 多条件查询(参数为空判断)语句

    工作中遇到一个多条件查询的需求,需要根据名字,性别,年龄以及序号查询数据,名字需要模糊查询,参数有可能为空。

    @Query(value = "select * from people where if(?1 !='',name like concat('%',?1,'%'),1=1) and if(?2 !='',sex=?2,1=1)"+

    " and if(IFNULL(?3,'') !='',age=?3,1=1) and if(IFNULL(?4,'') !='',num=?4,1=1) ",nativeQuery = true)

    List find(String name,String sex,Integer age,Integer num);1

    2

    3

    tips:

    nativeQuery = true 的含义是使用原生SQL,即注解中的SQL语句会生效,false的话就不会生效。

    SQL语句中 ?1、?2、?3、?4 的意思是代表方法中的第几个参数。

    SQL中模糊查询的写法为 like concat('%', ?1, '%')

    if(?1 !='',name like concat('%',?1,'%'),1=1) 代表传入的参数name如果不为""(Spring类型空是""而不是null)将参数传入name,如果为空时显示1=1 代表参数为真,对查询结果不产生作用。IF 的语法满足mysql的基本语法,IF(expr1,expr2,expr3), 如果 expr1 为真(expr1 <> 0 以及 expr1 <> NULL),那么 IF() 返回 expr2,否则返回expr3

    if(IFNULL(?3,'') !='',age=?3,1=1) 表示如果传入的年龄是null,则替换成空字符串,然后判断是否为空,不为空则将参数传入age,否则忽略不对查询结果产生影响。IFNULL 是mysql中的一个函数,这个函数一般用来替换 NULL 值的。IFNULL(value1,value2),判断value1是否为null,如果为null则用value2替换。

    参数定义时,定义数值,应使用Integer,如果用int定义,当入参为NULL时,程序会报空指针错误。原因是JAVA 中 int 是值类型,非对象,不可以设置为 NULL,integer 是对象类型,可以设置为NULL

    展开全文
  • Consol.WriteLine(Regex.Replace(null, ...值不能为 null。 参数名: input System.Text.RegularExpressions.Regex.Replace(string, string) System.Text.RegularExpressions.Regex.Replace(string, string, string)

    最近在开发过程中犯了一个低级的错误,用正则表达式去操作一个null值数据,此处做个记录,以示警醒

    Consol.WriteLine(Regex.Replace(null, pattern, ""));
    
    值不能为 null。
    参数名: input
       System.Text.RegularExpressions.Regex.Replace(string, string)
       System.Text.RegularExpressions.Regex.Replace(string, string, string)
    
    展开全文
  • 好问题,平时只关注怎么实现...NullPointerException是运行时异常是有一定道理的假设Java支持这样的语法,使用注解:@NotNull标识参数不为空一个这样场景:用户登录成功后,更新用户的登录时间和ip。用户数据有:na...
  • 今天写了一个简单的记忆便笺小程序,但是却发现在判断添加数据不能为空的时候,自己的代码总是不起作用。String titleStr = addtitle.getText().toString();String contentStr = addcontent.getText().toString();if...
  • 我们还是以之前的 P 站例,我们点开一个接口,这个接口分为两部分,一个是请求的数据,一个是返回的数据,请求的信息主要在 Headers 里面,它主要有以下几部分,第 1 部分,General 里面主要包含了请求的链接 URL ...
  • 最近简单实现了一个springmvc文件上传功能,点了上传按钮一直报指针,问题解决了mark一下留作以后查阅,如有搜到这篇文章的仅供参考,
  • 我的意思是跟随.考虑以下代码:// Can be a Long or nullval data1= param1.toLongOrNull()val data2= param2.toLongOrNull()val dataN= paramN.toLongOrNull()// Proceed with the action if ALL of the data are ...
  • 确保它不为空就行了,这也是我们没有考虑程序的健壮性。 代码如下(示例): typedef struct BiTNode { TElemType data; struct BiTNode* lchild, * rchild; }BiTNode,*BiTree; void InOrderTraverse(BiTree T)
  • NullPointerException是当您尝试使用指向内存中空位置的引用(null)时发生的异常,就...在此示例中,变量x是一个整型变量,Java将您初始化为0。当您在第二行中将其分配给10时,值10将被写入x指向的内存中。但是,当...
  • 2.订单编号为空 3.金额“Null”或者“0” 4.AppID或者AppSecret不对 5.预支付id为空 ,API密钥不对(在商户后台设置) 看看提交给微信支付的参数有没有错误,如果没有那么在统一提交支付接口之后微信是会返回给...
  • 过量的参数在运行时知道一个函数有什么参数,通常是可能的。另一个情况是一个函数操作很多对象。更有甚者,调用自身的函数变成一种api提供给可用的应用。对于这些情况,python提供了两种特别的方法来定义函数的...
  • 正则文法分析器的特点是它是回溯的,所以实现很简单。如果一个变量以数字开头,那么分析器就必须在遇到第一个或第二个英文字符的时候回溯来确定是否是数字、变量名还是词法错误,这时候就变成了二型文法。二型文法...
  • :))最近我一直在考虑很多,但是不能提出一个好的理由 。 枚举常量是隐式静态的和最终的。 枚举的意思是-"我可以接受存在于我体内的常量之一的值"。 为什么要让Enum具有空值? 为什么不将Enum的值隐式默认为Enum....
  • 什么是python的类型

    2021-02-03 13:00:54
    什么是python的类型发布时间:2020-07-21 14:10:14来源:亿速云阅读...类型None,是一个特殊的值,不能说是0,也不是字符串的'',None表示什么也没有,是一个对象。None是一个特殊的常量。None和False不同。N...
  • mshtml.IHTMLDocument2 doc2 = (mshtml.IHTMLDocument2)Browser.Document; mshtml.IHTMLElementCollection inputs = (mshtml.... //可用 //element2.outerHTML = ""; //可用 element2.outerHTML = "";
  • 写了一个简单的webService 但是参数一直传递不过去,后来才知道 要写成arg0,arg1,arg2... call.addParameter("arg0", XMLType.XSD_DATE...就是红色位置,参数不能写具体的参数名, 要写: arg0 ,我在网上看到说...
  • 2019-02-17 09:21赖鹏华 客户经理1 均线指标选股普通金叉:函数CROSS(X,Y)的含义从函数表中可以得出指标线X向上穿过指标线Y。首先我们用两个中间表达式表达两条指标线X、Y分别5日均线和10日均线,最终使用CROSS...
  • 引言在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的...这种写法,在usernull时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法if(user!=nu...
  • python中的createheader什么意思%-*s代表输入一个字符串,-号代表左对齐、后补空白,*号代表对齐宽度由输入时确定%*s代表输入一个字符串,右对齐、前补空白,*号代表对齐宽度由输入时确定>>>'%-*s%*s'%(10,...
  • if是什么意思:if是什么意思?conj. 是否;如果;即使;每当n. 条件;设想if作为从属连词,可引导条件状语从句、让步状语从句和名词从句。if引导条件状语从句,从句可真实条件从句,也可虚拟条件从句。如真实条件...
  • in pickle是什么意思

    2020-12-20 12:08:22
    如果我准备好了,我要呼吁我的国会议员,也看看他们是否能不能帮助我,赞迪说。 19. And iemand in de pekel laten zitten, .let someone sit in the pickle.. 这大概是因为受了荷兰语中有短语坐在卤水中和让某人坐...
  • Q1:c语言中y=(x=a+b,b+c)代表什么意思x=a+b表达式使得x=6,其返回值X(x,b+c)是逗号表达式,逗号表达式的值最后一个子表达式的值所以 y=b+c y=10Q2:C语言中a!=b 什么意思呢!b在C语言中表示等于,你这句意思...
  • default_default是什么意思???

    千次阅读 2021-03-17 10:31:12
    default是什么意思???default的意思是:1、n. 违约,拖欠;系统默认值;常规做法;缺席2、v. 履行,拖欠,违约;默认,预设;(计算机等)自动转到(默认值);因未到场而取消……参赛资格;(未)到场;参加...
  • excel中int是什么意思

    千次阅读 2021-07-26 06:20:20
    上大学时,上计算机课时,对于Excel我们好歹也有接触过,但是具体int是什么意思呢?下面是学习啦小编给大家整理的excel中int是什么意思,供大家参阅!excel中int是什么意思将数字向下舍入到最接近的整数。语法INT...
  • average函数_函数Average是什么意思

    千次阅读 2021-03-18 14:47:09
    AVERAGE函数在对单元格中的数值求平均时,应牢记单元格与含零值单元格的区别,尤其在“选项”对话框中的“视图”选项卡上已经清除了“零值”复选框的条件下,单元格计算在内,但计算零值。若要查看“选项”...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 253,703
精华内容 101,481
热门标签
关键字:

参数不能为空什么意思