课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > bug解决过程:数据迁移
  • bug解决过程:数据迁移

    发布:昆明Java培训      来源:达内新闻      时间:2016-09-23

  • 昆明Java培训班的老师今天给大家讲java中bug解决的过程:数据迁移

    一、总结

    昆明Java培训班的老师提醒同学们,不擅长语言表达的,要勤于沟通,多锻炼。

    调试MyBatis中SQL语法:foreach问题;缺少关键字VALUES。很遗憾:它的错误报的让人找不着北。

    二、BUG描述:MyBatis中批量插入数据异常

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

    <mapper amespace="com.wacai.datamigration.dao.adanos.ApplicationCorpInfoMapper">

    <insert id="insertApplicationCorpInfoBean" parameterType="java.util.List">

    INSERT approve_corp_info (

    id,

    operator,

    created_time,

    updated_time

    )

    <foreach item="item" collection="list" separator=",">

    (NULL,

    #{item.operator},

    NOW(),

    NOW())

    </foreach> 

    </insert>

    </mapper>

    如上所示,是正确的批量插入数据的写法,这个问题犯错误两次。在传入list,且使用foreach便利来批量插入数据的时候,一定要注意括号的使用,之前出错的代码释放如下:

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

    <mapper amespace="com.wacai.datamigration.dao.adanos.ApplicationCorpInfoMapper">

    <insert id="insertApplicationCorpInfoBean" parameterType="java.util.List">

    INSERT approve_corp_info (

    id,

    operator,

    created_time,

    updated_time

    )

    <foreach item="item" collection="list" separator="," open="(" close=")">

    (NULL,

    #{item.operator},

    NOW(),

    NOW())

    </foreach> 

    </insert>

    </mapper>

    这样的代码,会报错:Column count doesn't match value count at row 1,更多插入动作

    三、BUG描述:MyBatis中SQL语法错误跟踪

    昆明Java培训班的老师的解决方法:将批量动作改为一个插入动作,将SQL打印出来,看代码。查和插都改成一个数据来跟踪错误。

    推荐文章

上一篇:【昆明Java培训】java克隆

下一篇:【昆明java培训班】JAVA集合

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56