当需要查询的时候,输入查询条件,数据库和SQL都是没问题的,数据库也有数据,但就是没有数据返回,这种情况一般来说很好解决,但对于初学者来说,这是很纠结的问题,一般来说,我们在做条件查询的时候,通常都会加一个判断,就是非空!那么问题来了,假如,我输入的是一个空的字符串呢?空字符串并不是空,而是一个值,所以,我们在查询的时候都是把值拼接起来的,所以会有空字符串的情况出现,故此,我们还需要在mybatis做个非空字符串判断
<if test="Phone!= null and Phone != ''">
and phone =
判断手机号是否非空字符串,这样就可以查询出数据了。
那么另一个问题又来了,如果我把传过来的数据进行了加密再进行对比查询呢?对比的时候就是对比的加密后的空字符串,除非先把数据拿出来解密然后再对比,那就打不到加密的效果,故此,我们在接收传过来的数据的时候就应该做非空字符串判断,在进行数据对比
String Phone = request.getParameter("Phone")
if (Phone != null && Phone.trim().length()>0) {
map.put("Phone", AES128.encrypt(Phone))
上面写的AES128是加密算法,有兴趣的朋友可以去了解一下。“Phone.trim().length()>0”就是我做的非空字符串判断,去空格后的长度大于0在执行。
每天一点经验积累,日积月累,成功之所在!
当需要查询的时候,输入查询条件,数据库和SQL都是没问题的,数据库也有数据,但就是没有数据返回,这种情况一般来说很好解决,但对于初学者来说,这是很纠结的问题,一般来说,我们在做条件查询的时候,通常都会加一个判断,就是非空!那么问题来了,假如,我输入的是一个空的字符串呢?空字符串并不是空,而是一个值,所以,我们在查询的时候都是把值拼接起来的,所以会有空字符串的情况出现。
SQL语句在数据库中处理过程是怎样的呢?执行顺序呢?在回答这个问题前,我们先来回顾一下:在ORACLE数据库架构下,SQL语句由用户进程产生,然后传到相对应的服务端进程,之后由服务器进程执行该SQL语句,如果是SELECT语句,服务器进程还需要将执行结果回传给用户进程。
SQL语句的执行过程一般如下:
解析(PARSE)—— 绑定(BIND)——执行(EXECUTE)——提取(FETCH 只有SELECT才需要这步)
服务器进程接收到一个SQL语句时,首先要将其转换成执行这个SQL语句的有效步骤,这些步骤被称为执行计划。
Step 1:检查共享池中是否有之前
我用的mysql数据库,sql语句查询也有也有数据,但是在mybatis中执行查询,部分想要查询的字段确显示为空,实体类字段也都对应的上(菜鸟踩坑之路)
这是我的sql查询语句:SELECT user.userName
AS name,express_info.address,express_info.create_time AS createTime, express_info.payMon...
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("id",1);
map.put("num", 2);
list.add(map);
map = new HashMap<>
POI导入Excel文件时,读取的数据总是少一行的问题
如果是使用 XSSFSheet 对象来获取行数的话,那获取行数的方法应该是:
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
int row = xssfSheet.getPhysicalNu...
由于在项目中有很多地方需要用到自增序列,但是有时候直接用数据库的自增序列又不太方便,比如有些需求中要求有记录的编码,编码的规则就是字母加上自定义序列的组合,如:BM0001 类似的这种自增,那我们用的数据库MySQL做自增序列实现起来相比用Redis的自增要麻烦不少,有需要的朋友可自行了解,这里不做多介绍,这篇文章需要对Spring Boot和Redis有一定的了解,不了解的朋友看不懂可自行百度。废话不多说,先引入Redis依赖:
<dependency>
<groupId&g..
在网上看到有很多关于redis的安装配置,都是千篇一律,不够详细,对于我们这些初学者来说要花上不少
时间来研究这些
问题,下面我就来讲讲我的redis安装过程!
1、首先是在网上下载redis的安装文件:
https://github.com/MSOpenTech/redis/releases
我们在写SQL的时候经常需要通过接口传递参数,传递参数的时候,可以有一个或多个参数,比如订单可以通过订单编号查询,也可以通过订单名称、日期等查询。
而传递参数的时候我们有多个方法
1.使用map接口传递多个参数
2.使用注解传递多个参数
3.通过Java Bean传递多个参数
function toNonExponential(num) {
var m = num.toExponential().match(/\d(?:\.(\d*))?e([+-]\d+)/);
console.log('value * num1-=-666=-' + JSON.stringify(m));
return num.toFixed(Math.max(0, (m[1] || '').length - m[2]));