`
08284008
  • 浏览: 51459 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

mybatis使用,插入数据主从表的主表自增建如何赋值

 
阅读更多

在使用mybatis中我们经常需要插入数据。给主表插入一条数据,给从表插入若干条数据,但是从表需要插入主表里自增的Id来维持关系。

我知道的,mybatis做法有两种:

1.例如:注意这两个属性useGeneratedKeys="true" keyProperty="report.reportId"

 

useGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中
useGeneratedKeys 取值范围true|false 默认值是:false。 含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyPropert设置的领域模型属性中
 
<insert id="insertAvailableRateReport" useGeneratedKeys="true"
    keyProperty="report.reportId" parameterType="com.webank.ims.config.bean.availableRate.AvailableRateReport">
      REPLACE INTO webank_available_rate_report (report_id,report_name,event_id,start_time,end_time,status,creator,remark)
      VALUES (
        #{report.reportId},#{report.reportName},#{report.eventId},#{report.startTime},#{report.endTime},#{report.status},#{report.creator},#{report.remark}
        )
  </insert>

 

2.例如:注意

<selectKey resultType="java.lang.Long" keyProperty="groupId" order="AFTER">SELECT LAST_INSERT_ID() AS groupId</selectKey>

参考文章selectKey的使用

 <insert id="addBatchScheduleGroup" parameterType="com.webank.ims.config.bean.batch.ComBatchScheduleGroup">
        <selectKey resultType="java.lang.Long" keyProperty="groupId" order="AFTER">
            SELECT LAST_INSERT_ID() AS groupId
        </selectKey>
        INSERT INTO
        com_batch_schedule_group
        (
        group_id,
        group_name,
        domain_id
        )
        VALUES
        (
        #{groupId},
        #{groupName},
        #{domainId}
        )
    </insert>

 

分享到:
评论

相关推荐

    Java实现mybatis批量插入数据到Oracle

    本篇文章将详细介绍如何利用Java和MyBatis实现批量插入数据到Oracle数据库中。 首先,我们需要理解Oracle数据库的一些基本概念。Oracle是世界上最流行的商业关系型数据库管理系统之一,以其强大的功能和高可靠性而...

    springboot2.0+mybatis主从数据库双数据源。

    在IT行业中,构建高效、可扩展的分布式系统常常需要使用主从数据库架构,以实现读写分离,提高系统的并发处理能力和数据安全性。本项目基于SpringBoot 2.0框架和MyBatis持久层技术,实现了主从数据库双数据源的配置...

    spring +springmvc+mybatis+shiro+主从库+quartz

    在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring +springmvc+mybatis+shiro+主从库+quartz"的组合则提供了一个强大的基础架构。这个框架集成方案主要包含了以下几个核心组件,每个都有其独特的作用和...

    mybatis动态创建数据库表

    MyBatis提供了一种直观的方式来插入数据。首先,我们需要在Mapper接口中定义一个插入方法,并在XML配置文件中编写对应的SQL语句: ```java // Mapper接口 public interface MyTableMapper { void insertUser(User ...

    Mybatis实现多表联合查询和批量插入

    本文将详细介绍如何使用Mybatis实现多表联合查询和批量插入。 一、多表联合查询 在实际开发中,经常需要对多个表进行联合查询,例如,查询员工信息同时需要关联部门信息和职位信息。Mybatis提供了强大的联合查询...

    SpringBoot使用MyBatis Plus + 自动更新数据表

    至于自动更新数据表的功能,MyBatis Plus提供了实体类监听器(EntityListener),通过实现特定接口,可以在插入、更新或删除时执行自定义操作。创建一个监听器类,比如`AutoUpdateTableListener.java`: ```java ...

    MyBatis批量插入Update

    在XML配置文件中,我们可以使用foreach标签来批量插入数据。例如: ```xml insert into user(id,account,password,active,status,name,gender,active_date,expiry_date,type,remark,group_id,disable,exam_number,...

    Mybatis基于注解实现多表查询功能

    Mybatis基于注解实现多表查询功能是指使用Mybatis框架中的注解来实现多表查询的功能。这种方法可以简化配置,提高开发效率。下面我们将详细介绍如何使用Mybatis基于注解实现多表查询功能。 一、多表查询的概念 在...

    springmvc-mybatis 整合druid多数据源配置读写实现读写分离,windows上mysql主从复制

    主从复制是指一个MySQL实例作为主节点,其他实例作为从节点,从节点实时同步主节点的数据变化。这需要以下步骤: 1. **配置主节点**:在主节点的my.cnf文件中开启二进制日志,并设置server-id。 2. **配置从节点**...

    MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)

    MyBatis批量插入数据到Oracle数据库中的两种方式 MyBatis是一款流行的持久层框架,提供了批量插入数据到数据库的功能。本文将通过实例代码,分享MyBatis批量插入数据到Oracle数据库中的两种方式。 第一种方式:...

    SpringBoot 整合Mybatis 创建临时表

    这里我们使用Mybatis的注解来定义SQL语句,`@Insert`用于创建临时表,`@Select`用于查询临时表中的数据。注意,临时表在会话结束时会被自动删除,所以它们只对当前连接可见。 接着,我们需要创建一个对应的实体类`...

    详解MyBatis直接执行SQL查询及数据批量插入

    总结起来,MyBatis提供了一种灵活的方式,允许开发者直接执行SQL查询和批量插入数据。在使用时,需要注意SQL字符串的编写规范,理解#{}和${}的区别,以及合理利用`&lt;foreach&gt;`标签进行批量操作。这使得MyBatis不仅...

    SpringBoot整合mybatis实现自动创建数据库表自动建表,mybatis逆向生成数据库表.zip

    spring boot+mybatis 数据库文件(可选) 启动项目自动生成对应实体的数据库表,示例中自动生成SysUser,User实体对应的数据库表sys_user,user 依赖包文件(可选) maven管理依赖包,自动下载 链接:...

    Mybatis代码插入工具

    【Mybatis代码插入工具】是一种基于Java开发的实用工具,用于简化Mybatis框架中的SQL映射文件和Mapper接口的创建过程。它通过自动化的方式,帮助开发者快速生成与数据库表结构对应的实体类、Mapper接口以及XML配置...

    mybatis 存储数据对象数据自动加解密插件

    针对这一需求,"mybatis 存储数据对象数据自动加解密插件"应运而生,它旨在为Mybatis提供一个便捷的数据加解密解决方案,以确保数据在存储和检索过程中的安全性。 该插件的工作原理是在数据被持久化到数据库之前...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    在数据库操作中,批量插入(Batch Insert)是一种提高性能的有效方式,尤其是在处理大量数据时。本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database ...

    SpringBoot+MybatisPlus多数据源配置,主从库读写分离完整例子

    例如,我们可以定义主库为主数据源,从库为备用数据源。 ```yaml spring.datasource.primary.url=jdbc:mysql://localhost:3306/master_db?useUnicode=true&characterEncoding=utf8 spring.datasource.primary....

    MyBatis插入数据.txt

    添加映射—— &lt;!... PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&gt; insert into stu_tbl(name,age) values(#{name},#{age}) &lt;/mapper&gt;

    mybatis数据操作(增删改查+批量操作)

    在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...

    根据MyBatis或iBatis的SQLMapper文件反向生成数据库表

    解析SQLMapper文件: 首先需要解析SQLMapper文件,提取其中定义的SQL语句,包括创建表、修改表结构、插入数据等相关SQL语句。 解析SQL语句: 对于每一条SQL语句,需要解析其中的表名、字段名、数据类型、约束条件等...

Global site tag (gtag.js) - Google Analytics