精华内容
参与话题
问答
  • MySQL count去重并包括null

    万次阅读 2020-06-14 10:05:31
    版本 mysql 5.7.20 去重聚合获取count值 SELECT count(DISTINCT(字段)) FROM 表 带null去重聚合count值 SELECT count(DISTINCT(IFNULL(字段,1))) FROM 表

    版本

    mysql 5.7.20

    去重聚合获取count值

    SELECT count(DISTINCT(字段)) FROM

    带null去重聚合count值

    SELECT count(DISTINCT(IFNULL(字段,1))) FROM
    展开全文
  • Cause: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "fcityid") org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException:...
  • 判断是Null值是"IS null" 比如:SELECT COUNT(*) FROM 客户表 WHERE 电子邮件 IS NULL 判断不是null呢?怎么写?
  • Cannot convert undefined or null to object

    万次阅读 2017-01-03 15:25:02
    Object.keys()中传错了参数

    1、Object.keys()中传错了参数

    2、由于undefined和null无法转成对象,所以如果它们做为Object.assign()的参数(只有一个参数),也会报错

    展开全文
  • BeanUtils.copyProperties忽略null值/只拷贝非null属性

    万次阅读 热门讨论 2018-09-24 00:52:12
    问题场景 例如有个对象要提交,提交一次,第二次提交我们希望是对上次提交的完善。。那么用其他方式实现很麻烦,本身的BeanUtils.copyProperties也是不大支持。 解决方案 hutool开源库为我们提供了更为强大的Bean...

    问题场景

    例如有个对象要提交,提交一次,第二次提交我们希望是对上次提交的完善。。那么用其他方式实现很麻烦,本身的BeanUtils.copyProperties也是不大支持。

    解决方案

    hutool开源库为我们提供了更为强大的Bean工具-BeanUtil,

    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>4.1.14</version>
    </dependency>
    

    以上问题,只需要一句代码就搞定!!!

    BeanUtil.copyProperties(oldDetail.get(),userDetail,true, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));

    核心代码是CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true)

    详情可以参考官方文档 http://hutool.mydoc.io/#text_319433 。

    更详细的业务场景如下:

    public Object save(UserDetail userDetail){
            if(userDetail.getUserId()==0){
                return ApiReturnUtil.error("userId不能为空");
            }else{
            	//复制一个新的用于保存
             	UserDetail newDetail=new UserDetail();
                BeanUtil.copyProperties(userDetail,newDetail);
                Optional<UserDetail> oldDetail=userDetailRepository.findById(userDetail.getUserId());
                if (oldDetail.isPresent()){
                    System.out.println("copying");
                    //复制旧的属性过来,忽略null属性,忽略null值,有值的以新的为主,null的则以旧为主
                    BeanUtil.copyProperties(oldDetail.get(),userDetail,true, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
                }
                //复制新的所有非null来覆盖旧的
                BeanUtil.copyProperties(userDetail,newDetail,true, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
    
                userDetailRepository.save(newDetail);
                return  ApiReturnUtil.success("保存成功",newDetail);
            }
        }
    

    CopyOptions配置项:

    CopyOptions参数提供一些BeanUtils.copyProperties注入属性的选项。

    使用方法如下:
    BeanUtil.copyProperties(oldObject,newObject,true, CopyOptions.create().setXXXX(true));

    • editable 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类。
    • ignoreNullValue 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null
    • ignoreProperties 忽略的属性列表,设置一个属性列表,不拷贝这些属性值
    • ignoreError 是否忽略字段注入错误
      可以通过CopyOptions.create()方法创建一个默认的配置项,通过setXXX方法设置每个配置项。
    展开全文
  • [SysClass [id=null, name=小学二年级(1)班, schoolId=null, school=null, gradeId=null, remark=null, academicYear=null, status=null, chargeTeacherId=null, grade=null, chargeTeacher=null, students=null]...
  • c语言NULL和0区别及NULL详解

    万次阅读 多人点赞 2016-10-13 21:32:41
    转载于一位牛人:http://www.cnblogs.com/youxin/archive/2012/03/27/2420023.html ~谢谢。 先看下面一段代码输出什么: #include int main() ... int *p=NULL;...输出 ,单步调试可以看出执行int *p=NULL,p的值

    转载于一位牛人:http://www.cnblogs.com/youxin/archive/2012/03/27/2420023.html

    ~(翻译是我自己理解翻译的,嘻嘻,难免会有错误还请多多指点)谢谢~。

    先看下面一段代码输出什么:

    复制代码
    #include<stdo.h>
    int main()
    {
        int *p=NULL;
        printf("%s",p);
     
    }
    复制代码

    输出<null> ,单步调试可以看出执行int *p=NULL,p的值为0x00000000,可以看出,NULL在实际底层调用中就是0,

    在C语言中,

    NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值


    对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道这是字符串的结尾,不是指针,也不是普通的数值

    在不同的系统中,

    NULL并非总是和0等同,NULL仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将0作为不被使用的地址,所以就有了类似这样的定义

    #define NULL 0

    但并非总是如此,也有些系统不将0地址作为NULL,而是用其他的地址,所以说,千万别将NULL和0等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。

    看下面解释:

    问 0 '0' '\0' "\0"

     

    To me, when doing C/C++:

     

    0 would digit zero, that is, a numerical value.

    //0可能是数字0,也就是一个数值。

     

    '0' could be the character capital oh or the character zero. For example: char word[10] = "Oxford"; char number[10] = "01234";

     

    Depending on typeface used 'O' may look exactly like '0' making it difficult to tell them apart out of context.

     //上面两句要一起理解。0可能会被作为大写字母O或者字符0.仅仅根据字体使用“O”看起来就像' 0 '很难分辨他们。

    '\0' is the null character used to terminate strings in C/C++.

    //'\0'是null字符用于中止C/C++字符串

     

    "\0" is an empty string.

    //"\0"是一个空字符串

    NULL在stdio.h中定义:

    复制代码
    #if !defined(NULL) && defined(__NEEDS_NULL)
    #ifdef __cplusplus
    #define NULL    0
    #else
    #define NULL    ((void *)0)
    #endif
    #endif
    复制代码

    在c++定义为0,在c中定义为(void *)0;为什么,参考:http://stackoverflow.com/questions/7016861/null-pointer-in-c-and-c

    在探究的过程中找到下面的一个帖子。很是不错,COPY如下。
    转载自:http://blog.chinaunix.net/u/18517/showart_309917.html


        帖子里讨论了C语言中的空指针、空指针常量、NULL、0等概念及相互关系及区别。这里摘录whyglinux兄的总结。做个标签,呵呵^_^

    1. 什么是空指针常量(null pointer constant)?

      [6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant//一个整数常量表达式的值0,或这样的表达式类型void *,称为空指针常量
    2. 这里告诉我们:0、0L、'\0'、3 - 3、0 * 17 (它们都是“integer constant expression”)以及 (void*)0 (tyc: 我觉得(void*)0应该算是一个空指针吧,更恰当一点)等都是空指针常量(注意 (char*) 0 不叫空指针常量,只是一个空指针值)。至于系统选取哪种形式作为空指针常量使用,则是实现相关的。一般的 C 系统选择 (void*)0 或者 0 的居多(也有个别的选择 0L);至于 C++ 系统,由于存在严格的类型转化的要求,void* 不能象 C 中那样自由转换为其它指针类型,所以通常选 0 作为空指针常量(tyc: C++标准推荐),而不选择 (void*)0。

    3. 什么是空指针(null pointer)?

      [6.3.2.3-3] If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.//如果一个空指针常量被转换为一个指针类型,产生的指针,称为空指针,保证比作一个指针指向任何对象或函数是不平等的。
      char *p=0;此时p就是一个空指针,不指向任何实际对象。
      因此,如果 p 是一个指针变量,则 p = 0;、p = 0L;、p = '\0';、p = 3 - 3;、p = 0 * 17; 中的任何一种赋值操作之后(对于 C 来说还可以是 p = (void*)0;), p 都成为一个空指针,由系统保证空指针不指向任何实际的对象或者函数。反过来说,任何对象或者函数的地址都不可能是空指针。(tyc: 比如这里的(void*)0就是一个空指针。把它理解为null pointer还是null pointer constant会有微秒的不同,当然也不是紧要了

    4. 什么是 NULL?

      [6.3.2.3-Footnote] The macro NULL is defined in <stddef.h> (and other headers) as a null pointer constant//宏定义空< stddef.h >(和其他标题)作为一个空指针常量

      即 NULL 是一个标准规定的宏定义,用来表示空指针常量。因此,除了上面的各种赋值方式之外,还可以用 p = NULL; 来使 p 成为一个空指针。tyc:很多系统中的实现:#define NULL (void*)0,与这里的“a null pointer constant”并不是完全一致的

    5. 空指针(null pointer)指向了内存的什么地方(空指针的内部实现)?

      标准并没有对空指针指向内存中的什么地方这一个问题作出规定,也就是说用哪个具体的地址值(0x0 地址还是某一特定地址)表示空指针取决于系统的实现。我们常见的空指针一般指向 0 地址即空指针的内部用全 0 来表示(zero null pointer,零空指针);也有一些系统用一些特殊的地址值或者特殊的方式表示空指针(nonzero null pointer,非零空指针),具体请参见C FAQ

      幸运的是,在实际编程中不需要了解在我们的系统上空指针到底是一个 zero null pointer 还是 nonzero null pointer,我们只需要了解一个指针是否是空指针就可以了——编译器会自动实现其中的转换,为我们屏蔽其中的实现细节。注意:不要把空指针的内部表示等同于整数 0 的对象表示——如上所述,有时它们是不同的。

    6. 如何判断一个指针是否是一个空指针?

      这可以通过与空指针常量或者其它的空指针的比较来实现(注意与空指针的内部表示无关)。例如,假设 p 是一个指针变量,q 是一个同类型的空指针,要检查 p 是否是一个空指针,可以采用下列任意形式之一——它们在实现的功能上都是等价的,所不同的只是风格的差别。

      指针变量 p 是空指针的判断:
      if ( p == 0 )
      if ( p == '\0' )
      if ( p == 3 - 3 )
      if ( p == NULL )  /* 使用 NULL 必须包含相应的标准库的头文件 */
      if ( NULL == p )
      if ( !p )
      if ( p == q )
      ...

      指针变量 p 不是空指针的判断:
      if ( p != 0 )
      if ( p != '\0' )
      if ( p != 3 - 3 )
      if ( p != NULL )  /* 使用 NULL 必须包含相应的标准库的头文件 */
      if ( NULL != p )
      if ( p )
      if ( p != q )
      ...

    7. 可以用 memset 函数来得到一个空指针吗?

      这个问题等同于:如果 p 是一个指针变量,那么

      memset( &p, 0, sizeof(p) ); 和 p = 0;

      是等价的吗?

      答案是否定的,虽然在大多数系统上是等价的,但是因为有的系统存在着“非零空指针” (nonzero null pointer),所以这时两者不等价。由于这个原因,要注意当想将指针设置为空指针的时候不应该使用 memset,而应该用空指针常量或空指针对指针变量赋值或者初始化的方法。

    8. 可以定义自己的 NULL 的实现吗?兼答"NULL 的值可以是 1、2、3 等值吗?"类似问题

      [7.1.3-2] If the program declares or defines an identifier in a context in which it is reserved (other than as allowed by 7.1.4), or defines a reserved identifier as a macro name, the behavior is undefined.//如果程序声明或定义一个标识符在一个上下文的保留(7.1.4所允许的以外),或将保留标识符定义为宏名称,其行为是未定义的。

      NULL 是标准库中的一个符合上述条件的 reserved identifier (保留标识符)。所以,如果包含了相应的标准头文件而引入了 NULL 的话,则再在程序中重新定义 NULL 为不同的内容是非法的,其行为是未定义的。也就是说,如果是符合标准的程序,其 NULL 的值只能是 0,不可能是除 0 之外的其它值,比如 1、2、3 等。

    9. malloc 函数在分配内存失败时返回 0 还是 NULL?

      malloc 函数是标准 C 规定的库函数。在标准中明确规定了在其内存分配失败时返回的是一个 “null pointer”(空指针):

      [7.20.3-1] If the space cannot be allocated, a null pointer is returned.//如果无法分配空间,将返回一个空指针。

      对于空指针值,一般的文档(比如 man)中倾向于用 NULL 表示,而没有直接说成 0。但是我们应该清楚:对于指针类型来说,返回 NULL 和 返回 0 是完全等价的,因为 NULL 和 0 都表示 “null pointer”(空指针)。(tyc:一般系统中手册中都返回NULL,那我们就用NULL吧

    另外,附C FAQ上关于null pointer的解释:C FAQ:null pointer

    百度百科解释;

    \0是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放5个字符的字符串,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间,而一个汉字一般用两个字节表示,且c/c++中如一个数组cha[5],有5个变量,分别是 cha[0] , cha[1] , cha[2] , cha[3] , cha[4] , 所以cha[5]可以放5个字母或者放2个汉字(1个汉字占2个字节,1个字母占一个字节),cha[5]占5个字节内存空间.

      例如:

     
    复制代码
        char str[5];
        str[0]='a';
        str[1]='b';
        str[2]='c';
        str[3]='d';
        //str[4]='\0'; //abcd
        str[4]='e'; /*这样输出就是abcde和一堆乱码,甚至跳出系统错误,因为没有字符串结尾符*/
        printf("%s",str);
      
    复制代码

    展开全文
  • ImageIo.read() 返回null

    2016-02-04 08:26:35
    if (imgStr == null) { return ""; } BASE64Decoder decoder = new BASE64Decoder(); byte[] b = decoder.decodeBuffer(imgStr); for (int i = 0; i ; ++i) { if (b[i] ) {// 调整异常数据 b[i...
  • java判断字符串不为空和null的方法

    万次阅读 多人点赞 2018-03-22 14:32:37
    首先,区分空串和null串 1、 空串”“是长度为0的字符串,它有自己的串长度(0)和内容(空),判断一个字符串为空的方法: if (str.length() == 0); 或 if (str.equals("")); 2、 ...
  • 2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null

    万次阅读 2017-11-23 13:26:01
    Linux中的标准输入输出 标准输入0 从键盘获得输入 /proc/self/fd/0  标准输出1 输出到屏幕(即.../dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”  1、2>/dev/nu
  • {"userName":null," msgArr":[null],"numrow":0} //String result Gson: new Gson().fromJson(result, MyClass.class); MyClass: public String userName; public int[] msgArr; ... 错误stack...
  • |null |null |null |null |null |null |null |null |null | |null |null |null |null |null |null |null |null |null | |null |null |null |null |null |null |null |null |null | |null |null |null |null |null...
  • MySQL NULL 值处理

    万次阅读 2019-04-20 22:57:02
    我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL:当列的值是 ...
  • MySQL 中NULL和空值的区别?

    万次阅读 多人点赞 2019-07-03 12:04:57
    作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值。那你知道它们有什么区别吗? 学不动了,也不想知道它们有什么区别。大兄弟,不行啊,要面试! 前些天我的好朋友小木...
  • 我用的是mysql数据库 程序提示Column '列名' cannot be null错误 请问这个问题怎么解决我用的是mysql数据库 程序提示Column '列名' cannot be null错误 请问这个问题怎么解决 [b]问题补充:[/b] public void ...
  • 一般情况下,我是用字符串拼接的,因为可以很方便的去判断变量是否为null 如果不为null,我就开始拼接sql 但是这种操作貌似会有安全问题 于是乎我就把sql换成了下面这样 ``` public List,Object>> getEmpNo(Object ...
  • Mysql将某个字段修改为null(从不允许为空not null修改为 null
  • 我想把一个值从url中传递到服务中,但是在服务这边获得是null值。重新响应后server依然还是null值。我想传递代码中给出的url中的url、android_id和device。使用httpclient也还是返回的null值。谁知道怎么传递这个值...
  • Java进阶(二十一)java 空字符串与null区别

    万次阅读 多人点赞 2015-12-29 21:47:08
    java空字符串与null区别 1、类型 null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,Stringa=null; ""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串Stringstr=""; 2、内存...
  • 今天在写代码的时候,发现一个问题,代码如下: Object object_vehicleLocation = jObject_decodedValue.get("vehicleLocation"); 注意jObject_decodedValue这是一个Json对象,但是这个Json对象中有可能有key值...
  • service中mapper为null

    2017-10-30 04:57:36
    为什么我的mapper会为null,不用分布式拆开是可以的,拆开就为null了,感觉配置没有错啊 ![配置文件目录结构](https://img-ask.csdn.net/upload/201710/30/1509338449_782284.png) ![图片说明]...
  • 关于null

    千次阅读 2016-04-21 18:34:06
    19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System.out.println("haha");... public static void main(String[] args) { ((NULL)null).haha(); } }
  • 查询条件字段 都为 null 的话 不会返回带字段的空对象,而是直接返回个null 例如 ``` @Select(" SELECT name,age FROM t_student WHERE id = #{id} ") List,Object>> getList(String id); ``` ``` 假如...
  • public class MessageConverter extends AbstractHttpMessageConverter<Object> { @Override protected boolean supports... 直接返回null的话就不走writeInternal函数。 返回值之类为void时,也一样的
  • 1+Null 居然等于 Null

    千次阅读 2013-07-20 08:39:18
    因为以前基本上是用php对数据结果的同一行进行计算,居然没注意sql语言中 select1+Null 的结果会是Null, 好在测试细心发现了问题。本人看我的有关sql的书中都好像没有讲这一点,如果谁知道哪本书写了这点,希望能把...
  • 最近在解决问题时候发现,BeanUtils copyProperties 方法会将值为null的字段也进行复制, 这有时候会不能满足我们的需求,所以为了解决复制null问题, 小编对该方法就行了重写。 其中重要的代码就是加入null判断,...
  • MySql 里的IFNULL、NULLIF和ISNULL用法

    千次阅读 2013-07-12 09:39:56
    mysql中isnull,ifnull,nullif的用法如下: 1.ISNULL(expr) 如expr 为NULL,那么ISNULL() 的返回值为 1,否则返回值为 0。 2.IFNULL(expr1,expr2) 假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则...
  • spring 注解验证@NotNull等使用方法

    万次阅读 多人点赞 2018-05-04 17:45:40
    常用标签@Null 被注释的元素必须为null @NotNull 被注释的元素不能为null @AssertTrue 被注释的元素必须为true @AssertFalse 被注释的元素必须为false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于...
  • 为什么返回值是null

    2017-11-09 06:48:42
    var msgjson=null; mui.ajax({ url : 'http://192.168.30.123:32100/login.aspx', data : datas, dataType: 'json', type : 'get', timeout : 10000, ...
  • java 获取数据库表中的信息,为什么中文字段读出为null,其他字段为数字都读出来了 ``` JdbcUtil jdbcUtil = null; try{ jdbcUtil = new JdbcUtil(); //获取数据库连接 jdbcUtil.getConnection...

空空如也

1 2 3 4 5 ... 20
收藏数 600,285
精华内容 240,114
关键字:

null