Spring 使用iBATIS进行一对多插入

Spring 使用iBATIS进行一对多插入,spring,insert,ibatis,Spring,Insert,Ibatis,我得到了一个带有属性主题的类型词,它是一个列表对象。数据库中有两个表:单词和主题。我想在Words表中写一个单词,并将每个主题及其对应的idWord存储在Topics中。对于单词的insert语句,我使用generatedKey和keyProperty获取mySQL分配给单词的idWord 但我不知道如何做到这一点,我已经阅读了iBATIS文档,但这对于INSERT语句来说太简短了,我可以用INSERT语句从单词和主题到单词类型获取数据,但不能取而代之 非常感谢 另外,您能推荐更多iBATIS文

我得到了一个带有属性主题的类型词,它是一个列表对象。数据库中有两个表:单词和主题。我想在Words表中写一个单词,并将每个主题及其对应的idWord存储在Topics中。对于单词的insert语句,我使用generatedKey和keyProperty获取mySQL分配给单词的idWord

但我不知道如何做到这一点,我已经阅读了iBATIS文档,但这对于INSERT语句来说太简短了,我可以用INSERT语句从单词和主题到单词类型获取数据,但不能取而代之

非常感谢


另外,您能推荐更多iBATIS文档吗?

您可以在第一个表惰性查询中使用selectKey标记;这将返回生成的标识列值。使用此id填充第二个表

 <insert id="InsertLineItem" parameterClass="LineItem">
  INSERT INTO [LinesItem] 
  (Order_Id, LineItem_LineNum, Item_Id, LineItem_Quantity, LineItem_UnitPrice)
  VALUES
  (#Order.Id#, #LineNumber#, #Item.Id#, #Quantity#, #Item.ListPrice#)

  <selectKey resultClass="int" keyProperty="id" >
    SELECT @@IDENTITY AS ID
  </selectKey>
  </insert>

插入到[LinesItem]
(订单编号、行项目编号、项目编号、行项目数量、行项目单价)
价值观
(#Order.Id#,#LineNumber#,#Item.Id#,#Quantity#,#Item.ListPrice#)
选择@标识作为ID
根据选择键在sql之前执行。请参见第3.3.3节,抱歉,在文本下方看到了您的示例。