----创建自增序列
CREATE SEQUENCE cpuTi_seq;
第一步 创建实体bean:
@Data
@Entity
@Table(name="reptile_cpu_record",schema="appuser")
public class CPUTime {
@Id
@Column(name="row_id")
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private String rowId;
@Column
private String cpuTime;
@Column
private String executions;
@Column
private String cpuPerExec;
@Column
private String total;
@Column
private String elapsedTime;
@Column
private String cpu;
@Column
private String io;
@Column
private String sqlId;
@Column
private String sqlMoudle;
@Column
private String sqlText;
@Column
private Date createDate;
}
第二步 编写接口:
@Mapper
public interface ReptileRecordMapper {
void insertCpuRec(List<CPUTime> cpuTis);
}
第三步 编写service类:
@Service
@Slf4j
public class ReptileRecordService {
@Autowired
private ReptileRecordMapper recordMapper;
public void addCpuRec(List<CPUTime> cpuTis){
recordMapper.insertCpuRec(cpuTis);
}
sql 编写(mapper文件):
<?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="com.ctg.dtts.tasktracker.mapper.ReptileRecordMapper">
<insert id="insertCpuRec" parameterType="java.util.List">
insert into appuser.reptile_cpu_record
(row_Id,
cpuTime,
executions,
cpuPerExec,
total,
elapsedTime,
cpu,
io,
sqlId,
sqlMoudle,
sqlText,
createDate
)
select cpuTi_seq.nextval,cpu.* from(
<foreach collection="list" item="item" index="index" separator="union all">
(select
#{item.cpuTime},
#{item.executions},
#{item.cpuPerExec},
#{item.total},
#{item.elapsedTime},
#{item.cpu},
#{item.io},
#{item.sqlId},
#{item.sqlMoudle},
#{item.sqlText},
sysdate
from dual)
</foreach>
)cpu
</insert>
</mapper>
未将主键序列化,批量添加的代码如下:
<insert id="insertElapsRec" parameterType="java.util.List">
insert into appuser.reptile_elapsed_record
(row_Id,
elapsedTime,
executions,
elapsedTimePerExec,
total,
cpu,
io,
sqlId,
sqlMoudle,
sqlText,
createDate
)
<foreach collection="list" item="item" index="index" separator="union all">
select
'1',
#{item.elapsedTime},
#{item.executions},
#{item.elapsedTimePerExec},
#{item.total},
#{item.cpu},
#{item.io},
#{item.sqlId},
#{item.sqlMoudle},
#{item.sqlText},
sysdate
from dual
</foreach>
</insert>