zoukankan      html  css  js  c++  java
  • Mybatis 注入老是为null

    今天遇到个很弱智的问题,以此记录!时刻提醒自己

        public int delExhibion(List<String> ids){
            Integer result = null;
            ExhibitionManager exhibitionManager = new ExhibitionManager();
            for (String id : ids){
                exhibitionManager.setId(id);
                exhibitionManager.setDelFlag("1");
                 result += exhibitionManagerMapper.delete(id);
            }
            return result;
        }

    发现老是执行 delete 的时候 ,老是报 空指针异常

    然后尝试使用:  @Param  给参数加上命令     

    int delete(@Param("id") String id);  

    结果还是不行,

    然后在尝试使用:对象传参 ,  这样总该注入进去了吧 

            int delete(Object dx);

    结果还是不行,

    然后在尝试使用:Mybatis 单个参数动态语句引用:

    是当我们的参数为String时,在sql语句中#{id} 会去我们传进来的参数调getId()方法获取参数,很明显,String没有对应的方法,所以报错了,那我们这里要如何引用id呢,需要采用下面的写法:

    <delete id="delete" parameterType="java.lang.String" >  
             SELECT * FROM table
             <where>  
                       <if test="_parameter != null">  
                                AND id= #{id}  
                       </if>  
             </where>  
    </select>

    单Mybatis传参为单个参数时,在sql语句中需要使用  _parameter 来引用这个参数

    结果还是不行。  

    终于过了一会儿,看代码时突然顿悟。

        public int delExhibion(List<String> ids){
            Integer result = null;
            for (String id : ids){
                 result += exhibitionManagerMapper.delete(id);
            }
            return result;
        }

    Integer  result  我给他设置默认值  为null,   并且还让  reuslt  这个对象   result +=   

    加等于在执行数据库操作返回结果时 用 result 去接收。 这不就一定是空指针了吗。

    我给 Integer result = 0;  设置个默认值为0   那也不会出现这种情况!

    或者 result =   给result  初始化赋值     也不会报  空指针异常!  不过这样做在我的业务中是不对的哦。  只是不会报错. 但是获取不到我想要的执行成功条数

    Integer result = null;
    result =  exhibitionManagerMapper.delete(id);

    真的是被自己气到了。以此记录!时刻提醒自己   

     public int delExhibion(List<String> ids){
            Integer result = 0;
            for (String id : ids){
                 result += exhibitionManagerMapper.delete(id);
            }
            return result;
        }
  • 相关阅读:
    【c++】流状态的查询和控制
    【c++】iostreeam中的类为何不可以直接定义一个无参对象呢
    异步操作超出页面超时时间
    sql转Linq的工具
    用离职换来的领悟:人生没有最佳时机
    Log4Net日志记录两种方式
    C# FileStream复制大文件
    C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)
    C# 读取 timestamp 时间戳 值为byte[] 类型时转换为时间戳字符串
    IIS7错误:“Web服务器被配置为不列出此目录的内容”的解决办法
  • 原文地址:https://www.cnblogs.com/blogspring/p/10123264.html
Copyright © 2011-2022 走看看