昆明java培训
达内昆明广州春城路

18487146383

热门课程

bug解决过程:数据迁移

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

昆明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集合

AI初创企谷歌跑在前面了!达内java培训

‘资产荒’为什么这么说?【达内培训】

java集合-Iterator迭代

阿里云澳门战略携手创“城市大脑”——达内编程培训

选择城市和中心
贵州省

广西省

海南省

台湾