如果xml仅仅只是这样写的话:

<insert id="insertUser" >insert into user(username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address})</insert>

并且执行以下代码的话

static void function2() throws IOException {String path  = "mybatis-config.xml";InputStream resourceAsStream = null;resourceAsStream = Resources.getResourceAsStream(path);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);SqlSession sqlSession = sqlSessionFactory.openSession(true);UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = new User();user.setUsername("大大大明");mapper.insertUser(user);System.out.println(user);}

结果如下

会发现返回得到的id值仍然是0,但是数据库中确实已经插入继续了。

出现这样的原因,猜测是因为虽然执行了插入操作,但是并没有读取数据操作。这里想要得到真正的更新后的数据的话,需要在xml中加入如下标签:

<insert id="insertUser" >
<!--        <selectKey resultType="int" keyProperty="id" order="AFTER">-->
<!--            select last_insert_id-->
<!--        </selectKey>>--><selectKey resultType="int" keyProperty="id" order="AFTER">select  last_insert_id()</selectKey>insert into user(username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address})</insert>

*记住这里的last_insert_id()是个方法而不是变量,我就是在这里出错,结果找了半天才发现没加上括号

最后顺利的拿到想要的结果了:

Mybatis--关于插入数据后返回id的操作相关推荐

  1. mybatis插入数据后返回自增主键ID详解

    1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...

  2. mysql插入数据后返回自增id

    mysql插入数据后返回自增id 使用<insert 中的useGeneratedKeys 和 keyProperty 两个属性 在Mybatis Mapper文件中添加属性 useGenera ...

  3. mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  4. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  5. 七种MYSQL插入数据后返回自增主键ID的方法

    我们都知道,mysql中的insert插入之后会有返回值,返回的是影响的行数,也就是说,成功插入一条数据之后返回的是1,失败则返回0.那么,很多时候我们都想要得到最后插入的id值,下面七种方法均可,结 ...

  6. mysql 插入数据后返回当前的自增ID方法

    存储过程的写法: mysql>create procedure test( ->in username varchar(50), ->in password varchar(50), ...

  7. Mybatis 插入数据后返回自增主键ID

    1 xml 映射文件中处理 在映射器中配置获取记录主键值 在xml中 insert 标签中定义 : useGeneratedKeys为true,用来设置返回主键id的值, keyProperty 代表 ...

  8. mysql 插入数据后返回该条数据id

    问题: 在做关联表插入操作时,需要根据主表的 主键id作详情表的属性值,最笨的方法就是,先插入主表,然后通过查询返回刚刚插入的 主键id,容易出现问题. 解决办法: 在mybatis的配置文件中,用k ...

  9. JDBC插入数据后返回新数据id

    使用jdbc向表中插入数据时,有时候需要返回新插入数据的id.比如现在要向两个表中分别插入一条数据,第一条数据插入后生成的id要作为第二条数据的一个字段值. 具体代码: PreparedStateme ...

  10. MYSQL插入数据后返回主键

    最近做项目,要求不能使用mybatis等框架,所以一切数据库访问操作都是用原生的JDBC. 用过mybatis的都知道,插入新数据后可以直接返回主键的值,但是使用JDBC不行,于是上网搜了一下,找到一 ...

最新文章

  1. 两大AI技术集于一身,有道词典笔3从0到1的飞跃
  2. Tomcat通过Redis实现session共享的完整部署记录
  3. 如何提高PyTorch“炼丹”速度?这位小哥总结了17种方法,可直接上手更改的那种...
  4. 【Android测试】【第十四节】Appium——简述
  5. JavaScript 复杂判断的更优雅写法
  6. 《NIOSII那些事儿》rev7.0 PDF版本发布
  7. C++map容器遍历删除:cannot increment value-initialized map/set iterator
  8. C语言中变量在内存中是如何存放的
  9. linux 监控命令iostat,Linux下 IO实时监控iostat命令详解
  10. java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术
  11. cassandra使用心得_使用Spring Data Cassandra缓存的预备语句
  12. 马斯克地球事务麻烦不断:Model 3又有一起严重事故曝光
  13. 微信内置浏览器调起外部浏览器打开指定网页连接
  14. Python入门--os.walk
  15. 关于360笔试部分题目小结
  16. linux动态库路径生效,Linux下如何解决动态库的链接问题
  17. windows 搭建Web服务器和连接局域网打印机
  18. PHP-FPM 性能优化
  19. 自然语言处理NLP概论
  20. 西门子PLC1200模拟量功能案例

热门文章

  1. CentOS+Subversion 配置Linux 下 SVN服务器
  2. 2017 ACM/ICPC(北京)总结
  3. 阿里无线11.11:手机淘宝移动端接入网关基础架构演进之路
  4. POJ - 1459 Power Network(最大流)(模板)
  5. WCF服务离线操作与消息队列MSMQ(转)
  6. 白鸦:我印象中的Keso
  7. gateway 过滤器执行顺序_Spring Boot实战之:轻松搞定拦截器与过滤器
  8. 拓端tecdat|R语言基于ARMA-GARCH过程的VaR拟合和预测
  9. php服务器启动错误,服务器意外重启之后PHP-FPM不能启动
  10. 【图像处理】canny和sobel边缘检测__python-opencv