1.1@Table 注解 注解
作用:建立实体类和数据库表之间的对应关系。
默认规则:实体类类名首字母小写作为表名。Employee 类→employee 表。

用法:在@Table 注解的 name 属性中指定目标数据库表的表名


1.2@Column 注解 注解
作用:建立实体类字段和数据库表字段之间的对应关系。
默认规则:
实体类字段:驼峰式命名
数据库表字段:使用“_”区分各个单词

用法:在@Column 注解的 name 属性中指定目标字段的字段名  用来解决和数据库字段不对应的情况    @Column  (" 数据库实际字段名 ")


1.3@Id 注解 注解
通用 Mapper 在执行 xxxByPrimaryKey(key)方法时,有两种情况。
情况 1:没有使用@Id 注解明确指定主键字段
SELECT emp_id,emp_name,emp_salary_apple,emp_age FROM tabple_emp WHERE emp_id = ?
AND emp_name = ? AND emp_salary_apple = ? AND emp_age = ?
之所以会生成上面这样的 WHERE 子句是因为通用 Mapper 将实体类中的所有
字段都拿来放在一起作为联合主键。

情况 2:使用@Id 主键明确标记和数据库表中主键字段对应的实体类字段


1.4@GeneratedValue 注解 注解
作用:让通用 Mapper 在执行 insert 操作之后将数据库自动生成的主键值回写到实
体类对象中。
自增主键用法:
序列主键用法:
应用场景:购物车结账
 增加商品销量...
 减少商品库存...
 生成订单数据→封装到 Order 对象中→保存 Order 对象→数据库自动生成主键
值→回写到实体类对象 Order 中
 生成一系列订单详情数据→List<OrderItem>→在每一个 OrderItem 中设置

Order 对象的主键值作为外键→批量保存 List<OrderItem>

@GeneratedValue(strategy = GenerationType.IDENTITY)
  • 根据底层数据库自动选择方式,需要底层数据库的设置
  • 如MySQL,会使用自增字段,需要将主键设置成auto_increment。

1.5@Transient 主键 主键
用于标记不与数据库表字段对应的实体类字段。
@Transient

private String otherThings; //非数据库表中字段

spring 通用mapper的一些注解的更多相关文章

  1. MyBatis 为什么需要通用 Mapper ?

    一.通用 Mapper 的用途 ? 我个人最早用 MyBatis 时,先是完全手写,然后用上了 MyBatis 代码生成器(简称为 MBG),在使用 MBG 过程中,发现一个很麻烦的问题,如果数据库字 ...

  2. 通用Mapper学习

    <通用Mapper>部分注解    @Table(name="tableName")用法: 这个注解写在实体类的上面 指定数据库表的名字作用: 建立实体类和数据库表之间 ...

  3. Spring Boot MyBatis 通用Mapper插件集成

    Mybatis在使用过程中需要三个东西,每张表对应一个XXMapper.java接口文件,每张表对应一个XXMapper.xml文件,每张表对应一个Entity的Java文件.   其中XXMappe ...

  4. Mybatis 通用 Mapper 和 Spring 集成

    依赖 正常情况下,在原有依赖基础上增加的 mapper-spring. <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spr ...

  5. Spring boot集成 MyBatis 通用Mapper

    配置 POM文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  6. Spring Boot从入门到实战:整合通用Mapper简化单表操作

    数据库访问是web应用必不可少的部分.现今最常用的数据库ORM框架有Hibernate与Mybatis,Hibernate貌似在传统IT企业用的较多,而Mybatis则在互联网企业应用较多.通用Map ...

  7. Spring Boot MyBatis 通用Mapper插件集成 good

    看本文之前,请确保你已经在SpringBoot中集成MyBatis,并能正常使用.如果没有,那么请先移步 http://blog.csdn.net/catoop/article/details/505 ...

  8. 从零搭建Spring Boot脚手架(4):手写Mybatis通用Mapper

    1. 前言 今天继续搭建我们的kono Spring Boot脚手架,上一文把国内最流行的ORM框架Mybatis也集成了进去.但是很多时候我们希望有一些开箱即用的通用Mapper来简化我们的开发.我 ...

  9. 【SSM 8】spring集成Mybatis通用Mapper

    上篇博客中介绍了关于Mybatis底层封装的思路问题,那么这篇博客,就介绍一下怎么引入通用的mapper插件. 备注:本项目通过maven管理 关键版本说明: spring:4.1.3.RELEASE ...

随机推荐

  1. RabbitMQ运转流程

    生产者发送消息的过程 生产者连接到RabbitMQ Broker(相当于是一个RabbitMQ服务器),建立一个连接(Connection),开启一个信道(Channel). 生产者声明一个交换器(E ...

  2. Java 代码快速注释 和 取消注释

    注释掉代码: 把要注释的代码选中: 加/* */ 形式的注释  ->  Ctrl+Shift+/ 加 //形式的形式的注释 ->  ctrl+/ 取消代码注释: 把要取消注释的代码选中: ...

  3. STM32F10xx(高容量)WiFi模块的初始化和使用

    本次实验是使用每次传输不超过200B的ESP8266芯片的WiFi模块,WiFi模块内部自有驱动,我们初始化它,只需要发送指定的指令给他就可以了,指定的指令其实是使用USART3的复用的PB10和PB ...

  4. Debezium系列随笔

    0.Debezium简介 1.Run Debezium for Mysql in docker step by step 2.Run Debezium for SQLServer in docker ...

  5. MongoTemplate 使用 _id 查询

    MongoTemplate mt; DBObject lisi = new BasicDBObject(); lisi.put("_id", new BasicDBObject(& ...

  6. codevs 1200:同余方程

    题目描述 Description 求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入描述 Input Description 输入只有一行,包含两个正整数 a, b,用 一个 空 ...

  7. js函数(5)

    函数属性方法和构造函数 length属性 函数体中,arguments.length表示传入函数的实参个数. prototype属性 指向一个对象的引用 call方法和apply方法 看作是某个对象的 ...

  8. poj2406(求字符串的周期,kmp算法next数组的应用)

    题目链接:https://vjudge.net/problem/POJ-2406 题意:求出给定字符串的周期,和poj1961类似. 思路:直接利用next数组的定义即可,当没有周期时,周期即为1. ...

  9. 【AtCoder】ARC065

    ARC065 C - 白昼夢 / Daydream 直接递推就好 #include <bits/stdc++.h> #define fi first #define se second # ...

  10. 【LOJ】#3103. 「JSOI2019」节日庆典

    LOJ#3103. 「JSOI2019」节日庆典 能当最小位置的值一定是一个最小后缀,而有用的最小后缀不超过\(\log n\)个 为什么不超过\(\log n\)个,看了一下zsy的博客.. 假如\ ...