The Iterate label of Ibatis can be used to traverse every element of the List cyclically to form an SQL file dynamically. But how can I use Iterate to traverse a nested List, after a lot of experiments, I finally found this method. The Code is as follows:
- <Iterate Property="CsvData">
- Insert into $ dbname $. K_XXX (CD, KNO, MSNO, data_no
- <Iterate Property="EntryMsItem" Close=")">
- , $ EntryMsItem [] $
- </Iterate>
- SELECT # Cd #, # kno #, # msNo #, ZEROIFNULL (MAX (DATA_NO) + 1
- <Iterate Property="CsvData []" >
- , # CsvData []. [] #
- </Iterate>
- FROM $ dbname $. K_XXX
- WHERECD= # Cd #
- ANDKNO= # Kno #
- ANDMSNO= # MsNo #
- ;
- </Iterate>
In the above Code, csvData is a nested List, that is, its content is still a List,
The important points of Iterate traversal methods are as follows:
- <Iterate Property="CsvData []" >
- , # CsvData []. [] #
- </Iterate>
CsvData [] indicates an element of the List, while # csvData []. [] # indicates an element of the List.
In this way, a List object with two layers can be traversed.