spring 通用mapper的一些注解
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; //非数据库表中字段
最新文章
- Javascript中call和apply的区别和用法
- vi 技巧和诀窍~转IBM
- HDU 3622 Bomb Game(二分+2SAT)
- ios 中怎么自定义(RGB)背景色
- UVA 550 Multiplying by Rotation (简单递推)
- RequireJS的简单应用
- oracle合并查询
- PHP静态成员变量和非静态成员变量
- SPOJ 8222 Substrings(后缀自动机)
- HDFS建筑与shell操作
- 性能测试培训:WebSocket协议的接口性能之Jmeter
- lucene全文搜索之二:创建索引器(创建IKAnalyzer分词器和索引目录管理)基于lucene5.5.3
- Prim最小生成树板子
- android组件化方案、二维码扫码、Kotlin新闻客户端、动画特效等源码
- CAS单点登陆/oAuth2授权登陆
- day15--JavaScript
- html5-label标签
- 学习stm32 让我们一起回顾一下C语言吧
- dubbo支持的注册中心
- 20165227 学习基础和C语言基础调查