注解以及手写一个ORM

本次主要内容:

1、注解

2、手写一个ORM

注解

注解就是一个标记。用来简化代码,提高开发效率。在框架的学习中,像spring,springboot中,注解的作用尤为明显。

注解分为两大类:内置注解和自定义的注解。

内置注解就是jdk自带的注解,本次主要介绍一些常见到的注解。

比如:

@override 作用就是标识重写正不正确

@SuppressWarnings() 去除警告

@Deprecated 标识方法过时

在我们自定义注解的时候,我们还要加两个内置注解:

@Target() 用来定义注解的应用场景,就是说定义的该注解可以放在哪里(

类ElementType.TYPE,方法ElementType.METHOD,属性ElementType.FIELD)

当可以放在多个地方的时候,同时传多个参数,写法为

@Target(value=)

@Retention() 表示注解的生命周期,注解在什么范围内有效,一般参数为RetentionPolicy.RUNTIME,运行时有效

@Retention(RetentionPolicy.RUNTIME) 必须要加的

自定义注解时,使用@interface 类名,声明为注解类,对于注解里面的参数,除数组以外,都可以设置默认值,有设置默认值的参数,在使用注解时,可以不用传参数,系统自动选择默认值。

手写ORM

下面我们利用注解和反射手写一个简单的ORM。

什么是ORM?学习过mybatis或者hibernate的都知道,我们在类中定义和数据库对应的属性,在上面加入@Propety("数据库字段名"),Java利用反射获取注解中的参数,给我们拼接成一个sql语句。这也是我们手写的一个思路。

需求是这样的:数据库中有一个学生表stu,表中有三个字段,学号stu_id,姓名stu_name,年龄stu_age,写一个ORM返回一个查询学生信息的sql语句。

stu有表名和字段,我们首先需要定义一个表格的注解,参数为表名,再定义一个属性的注解,参数对应数据库中的字段,同时还可以给字段传长度,然后定义一个实体类Student,里面有属性,并使用自定义的注解。

不要忘记注解的使用环境

接下来就是利用反射来获取注解中的参数进行拼接。

一个简单的ORM就写完了。输出结果为

反射代码中有相关的注释,后面也会更新详细的章节。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181025G02YXL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券