废话少说,直接建项目上代码
先建一个springboot web项目或者模块,目录结构如下
在pom.xml中自行加入需要的依赖,application.properties的配置如下
server.port=8888
mybatis.mapper-locations=classpath*:mapper/*Mapper.xml
spring.datasource.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=Panbing936@
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
实体类User.java
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private int id;
private String name;
}
UserMapper.xml中
使用foreach接收list参数
使用foreach批量插入用户
insert into t_user(id,name)
values
(#{user.id},#{user.name})
使用foreach接收array数组
使用foreach接收Map
UserMapper.java
@Mapper
@Component
public interface UserMapper {
/**
* 多个参数查询user集合
*/
List getUsersByListParam(@Param("list") List list);
/**
* 使用foreach批量插入
*/
int insertMultiUsers(@Param("users") List users);
/**
* 使用foreach接收数组参数
*/
List getUserByArrayList(int[] ids);
/**
* 使用foreach接收map
*/
List getUserByMap(Map params);
}
测试代码
MybatisForeachApplicationTests.java 中的代码如下
@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisForeachApplicationTests {
@Test
public void contextLoads() {
}
/**
* 动态sql学习---foreach标签使用(查询)
*/
@Autowired
private UserMapper userMapper;
@Test
public void dynamicSQLToForeach() throws IOException {
List users = userMapper.getUsersByListParam(Arrays.asList(1,2,3,4));
for(User user:users) {
System.out.println(user);
}
}
/**
* 动态sql学习---foreach标签使用(新增)
*/
@Test
public void insertMultiUsers() throws IOException {
List users = new ArrayList();
users.add(new User(6,"陈大小姐"));
users.add(new User(7,"少主"));
users.add(new User(8,"天龙人"));
int count = userMapper.insertMultiUsers(users);
System.out.println("成功插入"+count+"条记录");
}
@Test
public void getUserByArrayList() {
int[] ids = new int[] {1,3,6,9};
List users = userMapper.getUserByArrayList(ids);
for (Object user:users)
{
System.out.println(user);
}
}
@Test
public void getUserByMapTest() {
final List ids = new ArrayList();
ids.add(1);
ids.add(2);
ids.add(3);
ids.add(6);
ids.add(7);
ids.add(9);
Map params = new HashMap();
params.put("ids", ids);
List users = userMapper.getUserByMap(params);
for (Object user : users)
System.out.println(user);
}
}
github代码
个人网站