了解ORM映射框架实现原理

阅读之前我们带着几个小问题去阅读下面文中的内容,本文以Hibernate框架理解ORM框架映射的实现原理。

  1. ORM映射框架中的entity(实体类)名字和表名不一致是如何与数据库表名对应的?
  2. entity(实体类)中的属性采用驼峰命名,以:userName,和数据库表中user_Name是如何对应的?
  3. 为什么Hibernate通过entity(实体类)就能完整的得到SQL语句?

下面我们完成一个ORM框架中entity(实体类) 与表字段不一致,却能生成完整的SQL语句的案例。

在使用Hibernate框架时,我们会创建实体类,创建字段去对应数据库表以及字段会使用到核心的两个注解,@Table@Column,其他的@Entity@Id等注解我们就先忽略,重点在原理上。

@Table 注解
该注解在使用时让实体类与表名对应,@Table("user_table"),这个注解其实就相当于起了一个别名的作用,我们可以尝试自定义一个注解模仿还原该注解。

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTable {
   
	
	String value();
	
}

关于自定义注解,我就不做过多解释了。

@Column 注解
该注解用于实体类字段上,相当于该字段的别名,使其和数据库表中的列(Column即:列)对应。我们去自定义个和@Column注解相当的注解。

import java.lang.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值