在IDEA中连接腾讯云数据库之后,如何一次性往数据库中插入多条数据呢?
1. 接口dao层方法
@Repository
public interface SysUserDao {
//批量插入数据
public int insertSysUserBatch(List<SysUser> sysUserList);
}
2. service层方法
public interface SysUserService {
//批量插入数据
public int insertSysUserBatch(List<SysUser> sysUserList);
}
3. service实现类
@Service
public class SysUserServiceImpl implements SysUserService {
@Resource
private SysUserDao sysUserDao;
@Override
public int insertSysUserBatch(List<SysUser> sysUserList) {
return sysUserDao.insertSysUserBatch(sysUserList);
}
}
4. mapper的xml文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="zqq.trys.dao.SysUserDao">
<sql id="userField">
a.id as "id",
a.username as "username",
a.password as "password"
</sql>
<!-- 批量插入用户 -->
<insert id="insertSysUserBatch" parameterType="java.util.List">
insert into sys_user
(id,username,password)
values
<foreach collection="list" item="sysUser" separator=",">
(
#{sysUser.id},#{sysUser.username},#{sysUser.password}
)
</foreach>
</insert>
</mapper>
5. controller层方法
/**
* 批量插入用户
*/
@GetMapping("/insertSysUserBatch")
public String insertSysUserBatch() {
SysUser sysUser = new SysUser();
sysUser.setId(1);
sysUser.setUsername("xxx");
sysUser.setPassword("123");
SysUser sysUser2 = new SysUser();
sysUser2.setId(2);
sysUser2.setUsername("qqz");
sysUser2.setPassword("123");
List<SysUser> list = new ArrayList<SysUser>();
list.add(sysUser);
list.add(sysUser2);
int result = sysUserService.insertSysUserBatch(list);
if (result == list.size()) {
System.out.println("批量插入成功~");
} else {
System.out.println("批量插入失败~");
}
return "test/hello";
}
注意:“test/hello”返回的是具体的一个页面。
浏览器中访问http://localhost:8088/insertSysUserBatch,即跳转到hello.jsp页面;同时,数据库中成功插入两条数据~