Foreach в основном используется в строительстве в условиях, он может итерации над коллекцией в заявлениях SQL. Атрибуты элемента Foreach в основном включают в себя элемент, индекс, коллекцию, открытый, сепаратор и закрытие. Элемент представляет псевдоним, когда каждый элемент в коллекции является итерацией. Индекс указывает имя, чтобы представить положение, до которой достигается каждая итерация во время итерационного процесса. Open представляет то, что начинается с утверждения, сепаратор представляет то, что символы используются в качестве разделителей между каждой итерацией, и закрыть представляет то, что заканчивается. Наиболее важной и наиболее подверженной ошибкам при использовании Foreach является атрибут коллекции. Этот атрибут должен быть указан, но в разных случаях значение атрибута отличается. Есть три основные ситуации:
1. Если передача в одном параметре и тип параметра является списком, значение атрибута коллекции - список
2. Если передача в одном параметре и тип параметра является массивом, значение свойства сбора - массив
3. Если есть несколько параметров, нам нужно инкапсулировать их в карту. Конечно, один параметр также может быть инкапсулен в карту. На самом деле, если вы проходите в параметрах, вы также инкапсулируете их в карту в груди. Ключ карты - это имя параметра, поэтому в настоящее время значение атрибута коллекции является ключом из пропущенного списка или объекта массива в карте, инкапсулированной сама по себе.
Давайте посмотрим на примеры кодов для трех вышеуказанных ситуаций:
1. Тип списка отдельных параметров:
<SELECT ID = "DynamicForeCHTEST" resultType = "blog"> select * From t_blog, где идентификатор в <foreach collection = "list" index = "index" item = "item" open = "(" seperator = "," close = ")">#{item} </foreach> </selet>Значение приведенной выше списка является списком, а соответствующий Mapper такой
public list <glog> dynamicforeachtest (list <Integer> ids);
Тестовый код:
@Testpublic void dynamicforeachtest () {sqlsession session = util.getSqlSessionFactory (). Arraylist <Integer> (); ids.add (1); ids.add (3); ids.add (6); list <wrogy> blogs = blogmapper.dynamicforeachtest (ids); Для (блог блог: блоги) System.out.println (блог); session.close ();}2. Тип массива отдельных параметров:
<SELECT ID = "DynamicForeACH2TEST" resultType = "blog"> select * From t_blog, где ID в <foreach collection = "array" index = "index" item = "item" open = "(" sepreator = "," close = ")">#{item} </foreach> </selet>Приведенная выше коллекция является массивом, соответствующий код Mapper:
public list <glog> dynamicforeach2test (int [] ids);
Соответствующий тестовый код:
@Testpublic void dynamicforeach2test () {sqlSession session = util.getSqlSessionFactory (). OpenSession (); BlogMapper blogmapper = session.getMapper (blogmapper.class); int [] ids = new int [] {1,3,6}; blogmapper.dynamicforeach2test (ids); для (блог блога: блог) System.out.println (блог); session.close ();}3. Инкапсулируйте параметры в тип карты самостоятельно
<SELECT ID = "DynamicForeACH3TEST" refultyPe = "blog"> select * From t_blog, где заголовок как «%»#{title} «%» и id в <foreach collection = "ids" index = "index" item = "item" open = "(" sepreator = "," close = ")">#{itex} </foreeach> </select>Значение приведенной выше коллекции - это идентификаторы, которая является ключом к карте параметров, и соответствующий код Mapper:
public List <loge> dynamicforeach3test (map <string, object> params);
Соответствующий тестовый код:
@Testpublic void dynamicforeach3test () {sqlsession session = util.getSqlSessionFactory (). Opensession (); blogmapper blogmapper = session.getmapper (blogmapper.class); окончательный список <Integer> ids = новый ArrayList <Integer> (); ids.add (1); ids.add (2); ids.add (3); ids.add (6); ids.add (7); ids.add (9); map <string> params = new hashmap <строка, объект> (); paramsput ("ids", ids); Params (with witch "warms); blogmapper.dynamicforeach3test (params); для (блог блога: блог) System.out.println (блог); session.close ();}Выше приведено соответствующее знание подробного объяснения заявления Форех Мибатиса, введенного вам редактором. Я надеюсь, что это будет полезно для вас!