亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述spring 通用mapper的一些注解相关的知识,希望能为你提供帮助。
【spring 通用mapper的一些注解】[email
protected] 注解 注解
作用:建立实体类和数据库表之间的对应关系。
默认规则:实体类类名首字母小写作为表名。Employee 类→employee 表。
用法:在@Table 注解的 name 属性中指定目标数据库表的表名
[email
protected] 注解 注解
作用:建立实体类字段和数据库表字段之间的对应关系。
默认规则:
实体类字段:驼峰式命名
数据库表字段:使用“_”区分各个单词
用法:在@Column 注解的 name 属性中指定目标字段的字段名
用来解决和数据库字段不对应的情况
@Column
(" 数据库实际字段名 ")
[email
protected] 注解 注解
通用 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 主键明确标记和数据库表中主键字段对应的实体类字段
[email
protected] 注解 注解
作用:让通用 Mapper 在执行 insert 操作之后将数据库自动生成的主键值回写到实
体类对象中。
自增主键用法:
序列主键用法:
应用场景:购物车结账
? 增加商品销量...
? 减少商品库存...
? 生成订单数据→封装到 Order 对象中→保存 Order 对象→数据库自动生成主键
值→回写到实体类对象 Order 中
? 生成一系列订单详情数据→List<
OrderItem>
→在每一个 OrderItem 中设置
Order 对象的主键值作为外键→批量保存 List<
OrderItem>
@GeneratedValue(strategy = GenerationType.IDENTITY)
- 根据底层数据库自动选择方式,需要底层数据库的设置
- 如mysql,会使用自增字段,需要将主键设置成auto_increment。
[email protected] 主键 主键
用于标记不与数据库表字段对应的实体类字段。
@Transient
private String otherThings; //非数据库表中字段
推荐阅读
- call,apply,bind
- 安卓活动的启动模式
- Android tabLayout+recyclerView实现锚点定位
- 阿里Android客户端一面经历
- 安卓六大布局
- Create an Android library
- 2获取APP CPU占用率
- ionic真机调试Android报错 - could not read ok from ADB Server * failed to start daemon * error: cannot conn
- html5 如何打包成apk,将H5封装成android应用APK文件的几种方法