使用 ibatis 将字符串列表插入到多列中的表中
Posted
技术标签:
【中文标题】使用 ibatis 将字符串列表插入到多列中的表中【英文标题】:insert a list of strings to a table in multiple columns using ibatis 【发布时间】:2015-11-04 21:18:03 【问题描述】:我想使用 ibatis 将字符串列表插入到多行的数据库中。
ie) id = 1
[a,b,c,d] as list of strings.
该表应将值存储为
1 a
1 b
1 c
1 d.
我可以通过重复使用插入查询来实现。谁能告诉我这是否可以通过单个查询来实现?任何帮助或指针都会有所帮助。
【问题讨论】:
【参考方案1】:可以使用ibatis的iterate标签。
<insert id="" parameterClass="YourClass">
<iterate property="ListOfStrings">
INSERT
INTO table(colum1,colum2)
VALUES (#id, #listofStrings[]#)
</iterate>
</insert>
试试这个:-
<insert id="insert" parameterClass="">
INSERT INTO table
(col1, col2)
VALUES
<iterate property="list" conjunction=",">
(#id#, #list[]#)
</iterate>
</insert>
【讨论】:
你能告诉我现在有什么问题吗? 原因:java.lang.RuntimeException:发生错误。原因:com.ibatis.common.xml.NodeletException:解析 XML 时出错。原因:java.lang.RuntimeException:解析 XPath '/sqlMapConfig/sqlMap' 时出错。原因:com.ibatis.common.xml.NodeletException:解析 XML 时出错。原因:org.xml.sax.SAXParseException:元素类型“iterate”的内容必须匹配“(include|iterate|isParameterPresent|isNotParameterPresent|isEmpty|isNotEmpty|isNotNull|isNull|isNotEqual|isEqual|isGreaterThan|isGreaterEqual|isLessThan|isLessEqual| isPropertyAvailable|isNotPropertyAvailable)"。 能否验证一下您使用的ibatis版本,可能是您的DTD不支持迭代? 我用的是ibatis2.7.4以上是关于使用 ibatis 将字符串列表插入到多列中的表中的主要内容,如果未能解决你的问题,请参考以下文章
将 C# 对象列表中的多行数据插入 Oracle 12 数据库中的表中
使用 SqlBulkCopy,如何将数据插入到非默认数据库架构中的表中?