MyBatis怎么同时新增两张表呢?(原来如此简单)

       我要做的业务是上传文件(假上传),同时新增文件信息表和文件审核表,他们有共同的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得到,插入到下张表中

就是这样,这一步不能少哦。

发布了163 篇原创文章 · 获赞 92 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42995083/article/details/105375090