我要做的业务是上传文件(假上传),同时新增文件信息表和文件审核表,他们有共同的ID为文件ID(为了后面的关联查询)。
定义接口:
public interface UpFileMapper {
//上传文档
//1.插入文件信息表
Integer insertByFileInfo(@Param("fileInfo") FileInfo fileInfo);
//2.插入文件审核表
Integer insertByFileCheck(@Param("fileCheck") FileCheck fileCheck);
}
定义映射类:
<?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="mapper.UpFileMapper">
<!-- 上传文档 -->
<!-- 1.插入文档信息表 -->
<insert id="insertByFileInfo">
<selectKey order="BEFORE" keyProperty="fileInfo.fileId" resultType="long">
select seq_file_info.nextval from dual
</selectKey>
insert into file_info(file_id,file_name,up_ctime,file_state,type_id,user_id,admin_id,md5_code,file_size,save_path,file_score) values
(#{fileInfo.fileId},#{fileInfo.fileName},sysdate,0,#{fileInfo.typeId},#{fileInfo.userId},
101,'system',8,'home',#{fileInfo.fileScore})
</insert>
<!-- 2.插入文档审核表 -->
<insert id="insertByFileCheck">
insert into file_check_info(fc_id,file_id,check_state,check_ctime,admin_id) values
(seq_file_check_info.nextval,#{fileCheck.fileId},0,sysdate,101)
</insert>
</mapper>
当然,这不是最关键的,这selectKey标签官网上也有啊,关键是我要怎么去拿到上张表(文档信息表)的ID呢?这是官网上没有说的。
在Servlet中处理业务的时候,把上张表的ID得到,插入到下张表中。
就是这样,这一步不能少哦。