对应自己的情况多试试看,总有一种方法可以解决吧!

1、如果报期望的返回值为null而原始返回值类型为int的错误

则将Dao/mapper接口中的函数的返回值类型改为Integer,在方法调用时使用.intValue()方法转换为int就可以了。

2、配置返回为修改影响条数

修改jdbc连接如下即可:添加useAffectedRows=true配置。

jdbc:mysql://jdbc.host/{jdbc.db}?useAffectedRows=true
如果是串接在后面,可以使用&或者&
连接符号依据文件类型而定。

3、查看自己的代码是否有问题

在面向接口编程的.xml文件,即Dao/Mapper接口类的实现类(即Mapper.xml文件)中,看看标签名是否正确,CRUD操作对应各自的标签名。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--namespace:绑定一个对应的Dao/Mapper接口,也可以说就是UserDao的实现类(面向接口编程)-->
<mapper namespace="com.kuang.dao.UserDao"><!--select查询语句--><select id="getUserList" resultType="com.kuang.pojo.User">select * from mybatis.user</select><select id="getUserById" parameterType="int" resultType="com.kuang.pojo.User">select * from mybatis.user where id=#{id}</select><!--insert插入语句--><insert id="addUser" parameterType="com.kuang.pojo.User" >insert into mybatis.user(id, name, pwd) VALUES (#{id},#{name},#{pwd});</insert><!--update更新语句--><update id="updateUser" parameterType="com.kuang.pojo.User">update mybatis.user set name=#{name} ,pwd=#{pwd} where id=#{id};</update><!--delete删除语句--><delete id="deleteUser" parameterType="int">delete from mybatis.user where id=#{id};</delete>
</mapper>

4、对上述.xml文件的解释说明

(1)namespace

namespace中的包名要和Dao/mapper接口的包名一致!

(2)CRUD标签中的属性说明

●id: 就是对应的namespace中的方法名;
●resultType: Sql语句执行的返回值!
●parameterType: 参数类型!

增删改的返回值类型默认为影响的行数,不用添加resultType

(3)mybatis增删改查的操作步骤

1.编写接口中的抽象方法

2.编写对应的mapper.xml中的sql语句

3.测试(注意增删改需要提交事务)
sqlSession.commit();

 //增删改需要提交事务@Testpublic void test3(){SqlSession sqlSession = MybatisUtils.getSqlSession();UserDao mapper = sqlSession.getMapper(UserDao.class);
//        mapper.addUser(new User(4, "西部开源", "254655"));//这样直接添加也是可以成功的,注意id值不能重复Integer res = mapper.addUser(new User(6, "西部开源", "254655"));//nullif(res.intValue()>0){System.out.println(res.intValue());System.out.println("插入成功");}//提交事务sqlSession.commit();sqlSession.close();}

mybatis进行CRUD操作时返回值不为影响的条数,为null相关推荐

  1. 使用mybatis插入数据(insert)时返回主键的问题

    使用mybatis做插入操作时,想要获取新增记录的主键,我发现现在的方式和以前的方式有所区别,即以前是直接通过方法返回,现在是将主键设置在数据实体对象中. 下面对mybatis进行insert时返回主 ...

  2. 【转载】mybaits的update、Insert、delete返回的是不是受影响的行数?

    转自:https://blog.csdn.net/benben683280/article/details/79645697 update操作 返回值 mybatis执行update()方法默认返回为 ...

  3. 使用MyBatis实现CRUD操作

    MyBatis 1.使用MyBatis实现CRUD操作 1.1 根据id查询信息 1.2 实现存入用户信息 1.3 更新用户信息 1.4 删除用户信息 1.5 模糊查询 1.6 #{}和${}的区别 ...

  4. 2021年3月8日:MyBatis框架学习笔记02:利用MyBatis实现CRUD操作

    MyBatis框架学习笔记02:利用MyBatis实现CRUD操作 在第一节课中我们在UserMapper.xml里定义了两个查询语句:findById和findAll,对应的在UserMapper接 ...

  5. Mybatis为什么查询结果为空时返回值为NULL或空集合?

    以下内容如有错误欢迎指出,有则改之无则加勉~ 一行数据记录如何映射成一个 Java 对象,这种映射机制是 MyBatis 作为 ORM 框架的核心功能之一,也是我们这篇文章需要学习的内容 开始前我们先 ...

  6. MyBatis在insert插入操作时返回主键ID的配置

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过Mapper.XML配置的方式来完成这个功能. 在 INSER ...

  7. MyBatis在insert插入操作时返回主键ID

    数据库为MySql时:  <insert id="insert" parameterType="com.test.User" keyProperty=&q ...

  8. 【转】Mybatis/Ibatis,数据库操作的返回值

    该问题,我百度了下,根本没发现什么有价值的文章:还是看源代码(详见最后附录)中的注释,最有效了! insert,返回值是:新插入行的主键(primary key):需要包含<selectKey& ...

  9. Mybatis/Ibatis,数据库操作的返回值

    该问题,我百度了下,根本没发现什么有价值的文章:还是看源代码(详见最后附录)中的注释,最有效了! insert,返回值是:新插入行的主键(primary key):需要包含<selectKey& ...

最新文章

  1. C#编程(十二)----------函数
  2. 基于深度学习的医学图像半监督分割
  3. 【干货】目标检测比赛中的trick
  4. Spring mvc3的ajax
  5. java输出数组中出现的次数最多的那个及次数
  6. Java synchronized解析
  7. 常考数据结构与算法:最长公共子串
  8. iOS开发之如何跳到系统设置里的各种设置界面
  9. Shell-11--for
  10. PTA —— 基础编程题目集 —— 编程题 —— 7-3 逆序的三位数 (10 分)
  11. ABP vNext微服务架构详细教程——分布式权限框架(上)
  12. 【今日CV 视觉论文速览】 Part2 25 Jan 2019
  13. php 天比较,php 计算距离天的时间还有多少天
  14. ASP.NET高级配置Web.config和Machine.Config
  15. 华为和谷歌在全球开发者眼里二选一,谁会获得胜利?
  16. [windows网络编程]tcp/udp编程初步详解-转
  17. 公司与公司保密协议范本
  18. 移动通信-抗衰落技术
  19. 安卓html 750px,移动端750px页面适配
  20. 回收站的文件删了怎么恢复,回收站文件恢复的两种方法

热门文章

  1. 6.04 从字符串中删除不需要的字符
  2. java写入文件的几种方法分享
  3. python_L2_operator
  4. NetBeans IDE 7.1 Window Layout Designer
  5. swft c 语言 数组,如何在swift中实现数组的深拷贝
  6. java 顺序栈_Java实现顺序栈
  7. 机器学习算法平台alink_Alink漫谈(十二) :在线学习算法FTRL 之 整体设计
  8. ajax预加载html seo,前端性能优化 — JS预加载和懒加载
  9. python日历模块_Python日历模块| prmonth()方法与示例
  10. python中doc=parased.getroot()_python中执行sed命令操作源文件时出现错误